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

-- | Twitter JSON types (lens powered)
--   
--   Please see the README on Github at
--   https://github.com/himura/twitter-types#readme
@package twitter-types-lens
@version 0.11.0

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
--   https://dev.twitter.com/docs/platform-objects/tweets.
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 ExtendedEntities)
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)
statusDisplayTextRange :: Lens' Status (Maybe DisplayTextRange)
data () => SearchResult body
searchResultStatuses :: forall body_acw8 body_acwc. Lens (SearchResult body_acw8) (SearchResult body_acwc) body_acw8 body_acwc
searchResultSearchMetadata :: forall body_acw8. Lens' (SearchResult body_acw8) 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
dmId :: Lens' DirectMessage EventId
dmCreatedTimestamp :: Lens' DirectMessage UTCTime
dmTargetRecipientId :: Lens' DirectMessage UserId
dmSenderId :: Lens' DirectMessage UserId
dmText :: Lens' DirectMessage Text
dmEntities :: Lens' DirectMessage Entities
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
--   https://dev.twitter.com/docs/platform-objects/users.
data () => User
userContributorsEnabled :: Lens' User Bool
userCreatedAt :: Lens' User UTCTime
userDefaultProfile :: Lens' User Bool
userDefaultProfileImage :: Lens' User Bool
userEmail :: Lens' User (Maybe Text)
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 (Maybe 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
--   https://dev.twitter.com/docs/platform-objects/entities.
data () => Entities
enHashTags :: Lens' Entities [Entity HashTagEntity]
enUserMentions :: Lens' Entities [Entity UserEntity]
enURLs :: Lens' Entities [Entity URLEntity]
enMedia :: Lens' Entities [Entity MediaEntity]
data () => ExtendedEntities
exeMedia :: Iso' ExtendedEntities [Entity ExtendedEntity]
data () => ExtendedEntity
exeID :: Lens' ExtendedEntity StatusId
exeMediaUrl :: Lens' ExtendedEntity URIString
exeMediaUrlHttps :: Lens' ExtendedEntity URIString
exeURL :: Lens' ExtendedEntity URLEntity
exeSizes :: Lens' ExtendedEntity (HashMap Text MediaSize)
exeType :: Lens' ExtendedEntity Text
exeVideoInfo :: Lens' ExtendedEntity (Maybe VideoInfo)
exeDurationMillis :: Lens' ExtendedEntity (Maybe Double)
exeExtAltText :: Lens' ExtendedEntity (Maybe String)
data () => Entity a
entityBody :: forall a_aeb5 a_aerG. Lens (Entity a_aeb5) (Entity a_aerG) a_aeb5 a_aerG
entityIndices :: forall a_aeb5. Lens' (Entity a_aeb5) EntityIndices

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

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

-- | URL entity. See
--   https://dev.twitter.com/docs/platform-objects/entities#obj-url.
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
--   https://dev.twitter.com/docs/platform-objects/entities#obj-size.
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
--   https://dev.twitter.com/docs/platform-objects/places.
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
--   https://dev.twitter.com/docs/platform-objects/places#obj-boundingbox.
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
--   https://dev.twitter.com/docs/api/multiple-media-extended-entities.
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

-- | unicode code point indices, identifying the inclusive start and
--   exclusive end of the displayable content of the Tweet.
data () => DisplayTextRange
displayTextRangeStart :: Lens' DisplayTextRange Int
displayTextRangeEnd :: Lens' DisplayTextRange Int
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
