-- 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_arTL body_arTS. Lens (SearchResult body_arTL) (SearchResult body_arTS) body_arTL body_arTS
searchResultSearchMetadata :: forall body_arTL. Lens' (SearchResult body_arTL) 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_asUB a_asWx. Lens (Entity a_asUB) (Entity a_asWx) a_asUB a_asWx
entityIndices :: forall a_asUB. Lens' (Entity a_asUB) 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.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
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.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.AsImageSize Web.Twitter.Types.MediaSize
instance Web.Twitter.Types.Lens.AsImageSize Web.Twitter.Types.ImageSizeType
