-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Twitter JSON types (lens powered)
--   
--   Twitter JSON types (lens powered)
@package twitter-types-lens
@version 0.7.2

module Web.Twitter.Types.Lens
class AsStatus s
status_id :: AsStatus s => Lens' s StatusId
text :: AsStatus s => Lens' s Text
user :: AsStatus s => Lens' s User
geolocation :: AsStatus s => Lens' s (Maybe Coordinates)
class AsUser u
user_id :: AsUser u => Lens' u UserId
name :: AsUser u => Lens' u UserName
screen_name :: AsUser u => Lens' u Text
class HasCreatedAt a
created_at :: HasCreatedAt a => Lens' a UTCTime
class AsImageSize a
width :: AsImageSize a => Lens' a Int
height :: AsImageSize a => Lens' a Int

-- | This type represents a Twitter tweet structure. See
--   <a>https://dev.twitter.com/docs/platform-objects/tweets</a>.
data Status
statusContributors :: Lens' Status (Maybe [Contributor])
statusCoordinates :: Lens' Status (Maybe Coordinates)
statusCreatedAt :: Lens' Status UTCTime
statusCurrentUserRetweet :: Lens' Status (Maybe StatusId)
statusEntities :: Lens' Status (Maybe Entities)
statusExtendedEntities :: Lens' Status (Maybe Entities)
statusFavoriteCount :: Lens' Status Integer
statusFavorited :: Lens' Status (Maybe Bool)
statusFilterLevel :: Lens' Status (Maybe Text)
statusId :: Lens' Status StatusId
statusInReplyToScreenName :: Lens' Status (Maybe Text)
statusInReplyToStatusId :: Lens' Status (Maybe StatusId)
statusInReplyToUserId :: Lens' Status (Maybe UserId)
statusLang :: Lens' Status (Maybe LanguageCode)
statusPlace :: Lens' Status (Maybe Place)
statusPossiblySensitive :: Lens' Status (Maybe Bool)
statusScopes :: Lens' Status (Maybe Object)
statusQuotedStatusId :: Lens' Status (Maybe StatusId)
statusQuotedStatus :: Lens' Status (Maybe Status)
statusRetweetCount :: Lens' Status Integer
statusRetweeted :: Lens' Status (Maybe Bool)
statusRetweetedStatus :: Lens' Status (Maybe Status)
statusSource :: Lens' Status Text
statusText :: Lens' Status Text
statusTruncated :: Lens' Status Bool
statusUser :: Lens' Status User
statusWithheldCopyright :: Lens' Status (Maybe Bool)
statusWithheldInCountries :: Lens' Status (Maybe [Text])
statusWithheldScope :: Lens' Status (Maybe Text)
data SearchResult body
searchResultStatuses :: forall body_aie2 body_aieb. Lens (SearchResult body_aie2) (SearchResult body_aieb) body_aie2 body_aieb
searchResultSearchMetadata :: forall body_aie2. Lens' (SearchResult body_aie2) SearchMetadata
data SearchStatus
searchStatusCreatedAt :: Lens' SearchStatus UTCTime
searchStatusId :: Lens' SearchStatus StatusId
searchStatusText :: Lens' SearchStatus Text
searchStatusSource :: Lens' SearchStatus Text
searchStatusUser :: Lens' SearchStatus User
searchStatusCoordinates :: Lens' SearchStatus (Maybe Coordinates)
data SearchMetadata
searchMetadataMaxId :: Lens' SearchMetadata StatusId
searchMetadataSinceId :: Lens' SearchMetadata StatusId
searchMetadataRefreshURL :: Lens' SearchMetadata URIString
searchMetadataNextResults :: Lens' SearchMetadata (Maybe URIString)
searchMetadataCount :: Lens' SearchMetadata Int
searchMetadataCompletedIn :: Lens' SearchMetadata (Maybe Float)
searchMetadataSinceIdStr :: Lens' SearchMetadata String
searchMetadataQuery :: Lens' SearchMetadata String
searchMetadataMaxIdStr :: Lens' SearchMetadata String
data RetweetedStatus
rsCreatedAt :: Lens' RetweetedStatus UTCTime
rsId :: Lens' RetweetedStatus StatusId
rsText :: Lens' RetweetedStatus Text
rsSource :: Lens' RetweetedStatus Text
rsTruncated :: Lens' RetweetedStatus Bool
rsEntities :: Lens' RetweetedStatus (Maybe Entities)
rsUser :: Lens' RetweetedStatus User
rsRetweetedStatus :: Lens' RetweetedStatus Status
rsCoordinates :: Lens' RetweetedStatus (Maybe Coordinates)
data DirectMessage
dmCreatedAt :: Lens' DirectMessage UTCTime
dmSenderScreenName :: Lens' DirectMessage Text
dmSender :: Lens' DirectMessage User
dmText :: Lens' DirectMessage Text
dmRecipientScreeName :: Lens' DirectMessage Text
dmId :: Lens' DirectMessage StatusId
dmRecipient :: Lens' DirectMessage User
dmRecipientId :: Lens' DirectMessage UserId
dmSenderId :: Lens' DirectMessage UserId
dmCoordinates :: Lens' DirectMessage (Maybe Coordinates)
data Event
evCreatedAt :: Lens' Event UTCTime
evTargetObject :: Lens' Event (Maybe EventTarget)
evEvent :: Lens' Event Text
evTarget :: Lens' Event EventTarget
evSource :: Lens' Event EventTarget
data Delete
delId :: Lens' Delete StatusId
delUserId :: Lens' Delete UserId

-- | This type represents the Twitter user. See
--   <a>https://dev.twitter.com/docs/platform-objects/users</a>.
data User
userContributorsEnabled :: Lens' User Bool
userCreatedAt :: Lens' User UTCTime
userDefaultProfile :: Lens' User Bool
userDefaultProfileImage :: Lens' User Bool
userDescription :: Lens' User (Maybe Text)
userFavoritesCount :: Lens' User Int
userFollowRequestSent :: Lens' User (Maybe Bool)
userFollowing :: Lens' User (Maybe Bool)
userFollowersCount :: Lens' User Int
userFriendsCount :: Lens' User Int
userGeoEnabled :: Lens' User Bool
userId :: Lens' User UserId
userIsTranslator :: Lens' User Bool
userLang :: Lens' User LanguageCode
userListedCount :: Lens' User Int
userLocation :: Lens' User (Maybe Text)
userName :: Lens' User Text
userNotifications :: Lens' User (Maybe Bool)
userProfileBackgroundColor :: Lens' User (Maybe Text)
userProfileBackgroundImageURL :: Lens' User (Maybe URIString)
userProfileBackgroundImageURLHttps :: Lens' User (Maybe URIString)
userProfileBackgroundTile :: Lens' User (Maybe Bool)
userProfileBannerURL :: Lens' User (Maybe URIString)
userProfileImageURL :: Lens' User (Maybe URIString)
userProfileImageURLHttps :: Lens' User (Maybe URIString)
userProfileLinkColor :: Lens' User Text
userProfileSidebarBorderColor :: Lens' User Text
userProfileSidebarFillColor :: Lens' User Text
userProfileTextColor :: Lens' User Text
userProfileUseBackgroundImage :: Lens' User Bool
userProtected :: Lens' User Bool
userScreenName :: Lens' User Text
userShowAllInlineMedia :: Lens' User (Maybe Bool)
userStatusesCount :: Lens' User Int
userTimeZone :: Lens' User (Maybe Text)
userURL :: Lens' User (Maybe URIString)
userUtcOffset :: Lens' User (Maybe Int)
userVerified :: Lens' User Bool
userWithheldInCountries :: Lens' User (Maybe [Text])
userWithheldScope :: Lens' User (Maybe Text)
data List
listId :: Lens' List Int
listName :: Lens' List Text
listFullName :: Lens' List Text
listMemberCount :: Lens' List Int
listSubscriberCount :: Lens' List Int
listMode :: Lens' List Text
listUser :: Lens' List User

-- | Entity handling. See
--   <a>https://dev.twitter.com/docs/platform-objects/entities</a>.
data Entities
enHashTags :: Lens' Entities [Entity HashTagEntity]
enUserMentions :: Lens' Entities [Entity UserEntity]
enURLs :: Lens' Entities [Entity URLEntity]
enMedia :: Lens' Entities [Entity MediaEntity]
data Entity a
entityBody :: forall a_ajjv a_ajlF. Lens (Entity a_ajjv) (Entity a_ajlF) a_ajjv a_ajlF
entityIndices :: forall a_ajjv. Lens' (Entity a_ajjv) EntityIndices

-- | Hashtag entity. See
--   <a>https://dev.twitter.com/docs/platform-objects/entities#obj-hashtags</a>.
data HashTagEntity
hashTagText :: Iso' HashTagEntity Text

-- | User mention entity. See
--   <a>https://dev.twitter.com/docs/platform-objects/entities#obj-usermention</a>.
data UserEntity
userEntityUserId :: Lens' UserEntity UserId
userEntityUserName :: Lens' UserEntity UserName
userEntityUserScreenName :: Lens' UserEntity Text

-- | URL entity. See
--   <a>https://dev.twitter.com/docs/platform-objects/entities#obj-url</a>.
data URLEntity
ueURL :: Lens' URLEntity URIString
ueExpanded :: Lens' URLEntity URIString
ueDisplay :: Lens' URLEntity Text
data MediaEntity
meType :: Lens' MediaEntity Text
meId :: Lens' MediaEntity StatusId
meSizes :: Lens' MediaEntity (HashMap Text MediaSize)
meMediaURL :: Lens' MediaEntity URIString
meMediaURLHttps :: Lens' MediaEntity URIString
meURL :: Lens' MediaEntity URLEntity

-- | Size entity. See
--   <a>https://dev.twitter.com/docs/platform-objects/entities#obj-size</a>.
data MediaSize
msWidth :: Lens' MediaSize Int
msHeight :: Lens' MediaSize Int
msResize :: Lens' MediaSize Text
data Coordinates
coordinates :: Lens' Coordinates [Double]
coordinatesType :: Lens' Coordinates Text

-- | This type represents a place, named locations with corresponding geo
--   coordinates. See
--   <a>https://dev.twitter.com/docs/platform-objects/places</a>.
data Place
placeAttributes :: Lens' Place (HashMap Text Text)
placeBoundingBox :: Lens' Place (Maybe BoundingBox)
placeCountry :: Lens' Place Text
placeCountryCode :: Lens' Place Text
placeFullName :: Lens' Place Text
placeId :: Lens' Place Text
placeName :: Lens' Place Text
placeType :: Lens' Place Text
placeURL :: Lens' Place Text

-- | A bounding box of coordinates which encloses the place. See
--   <a>https://dev.twitter.com/docs/platform-objects/places#obj-boundingbox</a>.
data BoundingBox
boundingBoxCoordinates :: Lens' BoundingBox [[[Double]]]
boundingBoxType :: Lens' BoundingBox Text
data Contributor
contributorId :: Lens' Contributor UserId
contributorScreenName :: Lens' Contributor (Maybe Text)

-- | This type is represents the API response of "/1.1/media/upload.json".
--   See
--   <a>https://dev.twitter.com/docs/api/multiple-media-extended-entities</a>.
data UploadedMedia
uploadedMediaId :: Lens' UploadedMedia Integer
uploadedMediaSize :: Lens' UploadedMedia Integer
uploadedMediaImage :: Lens' UploadedMedia ImageSizeType

-- | Image size type. This type is included in the API response of
--   "/1.1/media/upload.json".
data ImageSizeType
imageSizeTypeWidth :: Lens' ImageSizeType Int
imageSizeTypeHeight :: Lens' ImageSizeType Int
imageSizeTypeType :: Lens' ImageSizeType Text
type UserId = Integer
type Friends = [UserId]
type URIString = Text
type UserName = Text
type StatusId = Integer
type LanguageCode = String
data StreamingAPI
SStatus :: Status -> StreamingAPI
SRetweetedStatus :: RetweetedStatus -> StreamingAPI
SEvent :: Event -> StreamingAPI
SDelete :: Delete -> StreamingAPI

-- | SScrubGeo ScrubGeo
SFriends :: Friends -> StreamingAPI
SDirectMessage :: DirectMessage -> StreamingAPI
SUnknown :: Value -> StreamingAPI
data EventTarget
ETUser :: User -> EventTarget
ETStatus :: Status -> EventTarget
ETList :: List -> EventTarget
ETUnknown :: Value -> EventTarget

-- | The character positions the Entity was extracted from
--   
--   This is experimental implementation. This may be replaced by more
--   definite types.
type EntityIndices = [Int]
_SStatus :: Prism' StreamingAPI Status
_SRetweetedStatus :: Prism' StreamingAPI RetweetedStatus
_SEvent :: Prism' StreamingAPI Event
_SDelete :: Prism' StreamingAPI Delete
_SFriends :: Prism' StreamingAPI Friends
_SDirectMessage :: Prism' StreamingAPI DirectMessage
_SUnknown :: Prism' StreamingAPI Value
_ETUser :: Prism' EventTarget User
_ETStatus :: Prism' EventTarget Status
_ETList :: Prism' EventTarget List
_ETUnknown :: Prism' EventTarget Value
instance Web.Twitter.Types.Lens.AsImageSize Web.Twitter.Types.MediaSize
instance Web.Twitter.Types.Lens.AsImageSize Web.Twitter.Types.ImageSizeType
instance Web.Twitter.Types.Lens.HasCreatedAt Web.Twitter.Types.Status
instance Web.Twitter.Types.Lens.HasCreatedAt Web.Twitter.Types.SearchStatus
instance Web.Twitter.Types.Lens.HasCreatedAt Web.Twitter.Types.RetweetedStatus
instance Web.Twitter.Types.Lens.HasCreatedAt Web.Twitter.Types.DirectMessage
instance Web.Twitter.Types.Lens.HasCreatedAt Web.Twitter.Types.User
instance Web.Twitter.Types.Lens.AsUser Web.Twitter.Types.User
instance Web.Twitter.Types.Lens.AsUser Web.Twitter.Types.UserEntity
instance Web.Twitter.Types.Lens.AsUser (Web.Twitter.Types.Entity Web.Twitter.Types.UserEntity)
instance Web.Twitter.Types.Lens.AsStatus Web.Twitter.Types.Status
instance Web.Twitter.Types.Lens.AsStatus Web.Twitter.Types.SearchStatus
instance Web.Twitter.Types.Lens.AsStatus Web.Twitter.Types.RetweetedStatus
instance Web.Twitter.Types.Lens.AsStatus Web.Twitter.Types.DirectMessage
