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


-- | Google Mirror SDK.
--   
--   Interacts with Glass users via the timeline.
--   
--   <i>Warning:</i> This is an experimental prototype/preview release
--   which is still under exploratory development and not intended for
--   public use, caveat emptor!
--   
--   This library is compatible with version <tt>v1</tt> of the API.
--   
--   Labels:
--   
--   <ul>
--   <li>Limited Availability</li>
--   </ul>
@package gogol-mirror
@version 0.3.0


module Network.Google.Mirror.Types

-- | Default request referring to version <tt>v1</tt> of the Google Mirror
--   API. This contains the host and root path used as a starting point for
--   constructing service requests.
mirrorService :: ServiceConfig

-- | View and manage your Glass timeline
glassTimelineScope :: Proxy '["https://www.googleapis.com/auth/glass.timeline"]

-- | View your location
glassLocationScope :: Proxy '["https://www.googleapis.com/auth/glass.location"]

-- | Controls the order in which timeline items are returned.
data TimelineListOrderBy

-- | <tt>displayTime</tt> Results will be ordered by displayTime (default).
--   This is the same ordering as is used in the timeline on the device.
DisplayTime :: TimelineListOrderBy

-- | <tt>writeTime</tt> Results will be ordered by the time at which they
--   were last written to the data store.
WriteTime :: TimelineListOrderBy

-- | Controls how notifications for a timeline item are presented to the
--   user.
--   
--   <i>See:</i> <a>notificationConfig</a> smart constructor.
data NotificationConfig

-- | Creates a value of <a>NotificationConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ncDeliveryTime</a></li>
--   <li><a>ncLevel</a></li>
--   </ul>
notificationConfig :: NotificationConfig

-- | The time at which the notification should be delivered.
ncDeliveryTime :: Lens' NotificationConfig (Maybe UTCTime)

-- | Describes how important the notification is. Allowed values are: -
--   DEFAULT - Notifications of default importance. A chime will be played
--   to alert users.
ncLevel :: Lens' NotificationConfig (Maybe Text)

-- | A single menu command that is part of a Contact.
--   
--   <i>See:</i> <a>command</a> smart constructor.
data Command

-- | Creates a value of <a>Command</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cType</a></li>
--   </ul>
command :: Command

-- | The type of operation this command corresponds to. Allowed values are:
--   - TAKE_A_NOTE - Shares a timeline item with the transcription of user
--   speech from the "Take a note" voice menu command. - POST_AN_UPDATE -
--   Shares a timeline item with the transcription of user speech from the
--   "Post an update" voice menu command.
cType :: Lens' Command (Maybe Text)

-- | A list of Locations. This is the response from the server to GET
--   requests on the locations collection.
--   
--   <i>See:</i> <a>locationsListResponse</a> smart constructor.
data LocationsListResponse

-- | Creates a value of <a>LocationsListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>llrKind</a></li>
--   <li><a>llrItems</a></li>
--   </ul>
locationsListResponse :: LocationsListResponse

-- | The type of resource. This is always mirror#locationsList.
llrKind :: Lens' LocationsListResponse Text

-- | The list of locations.
llrItems :: Lens' LocationsListResponse [Location]

-- | A geographic location that can be associated with a timeline item.
--   
--   <i>See:</i> <a>location</a> smart constructor.
data Location

-- | Creates a value of <a>Location</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lKind</a></li>
--   <li><a>lLatitude</a></li>
--   <li><a>lAddress</a></li>
--   <li><a>lDisplayName</a></li>
--   <li><a>lId</a></li>
--   <li><a>lAccuracy</a></li>
--   <li><a>lLongitude</a></li>
--   <li><a>lTimestamp</a></li>
--   </ul>
location :: Location

-- | The type of resource. This is always mirror#location.
lKind :: Lens' Location Text

-- | The latitude, in degrees.
lLatitude :: Lens' Location (Maybe Double)

-- | The full address of the location.
lAddress :: Lens' Location (Maybe Text)

-- | The name to be displayed. This may be a business name or a
--   user-defined place, such as "Home".
lDisplayName :: Lens' Location (Maybe Text)

-- | The ID of the location.
lId :: Lens' Location (Maybe Text)

-- | The accuracy of the location fix in meters.
lAccuracy :: Lens' Location (Maybe Double)

-- | The longitude, in degrees.
lLongitude :: Lens' Location (Maybe Double)

-- | The time at which this location was captured, formatted according to
--   RFC 3339.
lTimestamp :: Lens' Location (Maybe UTCTime)

-- | A notification delivered by the API.
--   
--   <i>See:</i> <a>notification</a> smart constructor.
data Notification

-- | Creates a value of <a>Notification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nOperation</a></li>
--   <li><a>nItemId</a></li>
--   <li><a>nCollection</a></li>
--   <li><a>nUserActions</a></li>
--   <li><a>nVerifyToken</a></li>
--   <li><a>nUserToken</a></li>
--   </ul>
notification :: Notification

-- | The type of operation that generated the notification.
nOperation :: Lens' Notification (Maybe Text)

-- | The ID of the item that generated the notification.
nItemId :: Lens' Notification (Maybe Text)

-- | The collection that generated the notification.
nCollection :: Lens' Notification (Maybe Text)

-- | A list of actions taken by the user that triggered the notification.
nUserActions :: Lens' Notification [UserAction]

-- | The secret verify token provided by the service when it subscribed for
--   notifications.
nVerifyToken :: Lens' Notification (Maybe Text)

-- | The user token provided by the service when it subscribed for
--   notifications.
nUserToken :: Lens' Notification (Maybe Text)

-- | A person or group that can be used as a creator or a contact.
--   
--   <i>See:</i> <a>contact</a> smart constructor.
data Contact

-- | Creates a value of <a>Contact</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>conAcceptCommands</a></li>
--   <li><a>conSharingFeatures</a></li>
--   <li><a>conImageURLs</a></li>
--   <li><a>conPriority</a></li>
--   <li><a>conKind</a></li>
--   <li><a>conAcceptTypes</a></li>
--   <li><a>conPhoneNumber</a></li>
--   <li><a>conDisplayName</a></li>
--   <li><a>conSource</a></li>
--   <li><a>conId</a></li>
--   <li><a>conType</a></li>
--   <li><a>conSpeakableName</a></li>
--   </ul>
contact :: Contact

-- | A list of voice menu commands that a contact can handle. Glass shows
--   up to three contacts for each voice menu command. If there are more
--   than that, the three contacts with the highest priority are shown for
--   that particular command.
conAcceptCommands :: Lens' Contact [Command]

-- | A list of sharing features that a contact can handle. Allowed values
--   are: - ADD_CAPTION
conSharingFeatures :: Lens' Contact [Text]

-- | Set of image URLs to display for a contact. Most contacts will have a
--   single image, but a "group" contact may include up to 8 image URLs and
--   they will be resized and cropped into a mosaic on the client.
conImageURLs :: Lens' Contact [Text]

-- | Priority for the contact to determine ordering in a list of contacts.
--   Contacts with higher priorities will be shown before ones with lower
--   priorities.
conPriority :: Lens' Contact (Maybe Word32)

-- | The type of resource. This is always mirror#contact.
conKind :: Lens' Contact Text

-- | A list of MIME types that a contact supports. The contact will be
--   shown to the user if any of its acceptTypes matches any of the types
--   of the attachments on the item. If no acceptTypes are given, the
--   contact will be shown for all items.
conAcceptTypes :: Lens' Contact [Text]

-- | Primary phone number for the contact. This can be a fully-qualified
--   number, with country calling code and area code, or a local number.
conPhoneNumber :: Lens' Contact (Maybe Text)

-- | The name to display for this contact.
conDisplayName :: Lens' Contact (Maybe Text)

-- | The ID of the application that created this contact. This is populated
--   by the API
conSource :: Lens' Contact (Maybe Text)

-- | An ID for this contact. This is generated by the application and is
--   treated as an opaque token.
conId :: Lens' Contact (Maybe Text)

-- | The type for this contact. This is used for sorting in UIs. Allowed
--   values are: - INDIVIDUAL - Represents a single person. This is the
--   default. - GROUP - Represents more than a single person.
conType :: Lens' Contact (Maybe Text)

-- | Name of this contact as it should be pronounced. If this contact's
--   name must be spoken as part of a voice disambiguation menu, this name
--   is used as the expected pronunciation. This is useful for contact
--   names with unpronounceable characters or whose display spelling is
--   otherwise not phonetic.
conSpeakableName :: Lens' Contact (Maybe Text)
data AuthToken

-- | Creates a value of <a>AuthToken</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>atAuthToken</a></li>
--   <li><a>atType</a></li>
--   </ul>
authToken :: AuthToken
atAuthToken :: Lens' AuthToken (Maybe Text)
atType :: Lens' AuthToken (Maybe Text)

-- | A list of Attachments. This is the response from the server to GET
--   requests on the attachments collection.
--   
--   <i>See:</i> <a>attachmentsListResponse</a> smart constructor.
data AttachmentsListResponse

-- | Creates a value of <a>AttachmentsListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>alrKind</a></li>
--   <li><a>alrItems</a></li>
--   </ul>
attachmentsListResponse :: AttachmentsListResponse

-- | The type of resource. This is always mirror#attachmentsList.
alrKind :: Lens' AttachmentsListResponse Text

-- | The list of attachments.
alrItems :: Lens' AttachmentsListResponse [Attachment]

-- | A custom menu item that can be presented to the user by a timeline
--   item.
--   
--   <i>See:</i> <a>menuItem</a> smart constructor.
data MenuItem

-- | Creates a value of <a>MenuItem</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>miValues</a></li>
--   <li><a>miRemoveWhenSelected</a></li>
--   <li><a>miAction</a></li>
--   <li><a>miPayload</a></li>
--   <li><a>miContextualCommand</a></li>
--   <li><a>miId</a></li>
--   </ul>
menuItem :: MenuItem

-- | For CUSTOM items, a list of values controlling the appearance of the
--   menu item in each of its states. A value for the DEFAULT state must be
--   provided. If the PENDING or CONFIRMED states are missing, they will
--   not be shown.
miValues :: Lens' MenuItem [MenuValue]

-- | If set to true on a CUSTOM menu item, that item will be removed from
--   the menu after it is selected.
miRemoveWhenSelected :: Lens' MenuItem (Maybe Bool)

-- | Controls the behavior when the user picks the menu option. Allowed
--   values are: - CUSTOM - Custom action set by the service. When the user
--   selects this menuItem, the API triggers a notification to your
--   callbackUrl with the userActions.type set to CUSTOM and the
--   userActions.payload set to the ID of this menu item. This is the
--   default value. - Built-in actions: - REPLY - Initiate a reply to the
--   timeline item using the voice recording UI. The creator attribute must
--   be set in the timeline item for this menu to be available. - REPLY_ALL
--   - Same behavior as REPLY. The original timeline item's recipients will
--   be added to the reply item. - DELETE - Delete the timeline item. -
--   SHARE - Share the timeline item with the available contacts. -
--   READ_ALOUD - Read the timeline item's speakableText aloud; if this
--   field is not set, read the text field; if none of those fields are
--   set, this menu item is ignored. - GET_MEDIA_INPUT - Allow users to
--   provide media payloads to Glassware from a menu item (currently, only
--   transcribed text from voice input is supported). Subscribe to
--   notifications when users invoke this menu item to receive the timeline
--   item ID. Retrieve the media from the timeline item in the payload
--   property. - VOICE_CALL - Initiate a phone call using the timeline
--   item's creator.phoneNumber attribute as recipient. - NAVIGATE -
--   Navigate to the timeline item's location. - TOGGLE_PINNED - Toggle the
--   isPinned state of the timeline item. - OPEN_URI - Open the payload of
--   the menu item in the browser. - PLAY_VIDEO - Open the payload of the
--   menu item in the Glass video player. - SEND_MESSAGE - Initiate sending
--   a message to the timeline item's creator: - If the creator.phoneNumber
--   is set and Glass is connected to an Android phone, the message is an
--   SMS. - Otherwise, if the creator.email is set, the message is an
--   email.
miAction :: Lens' MenuItem (Maybe Text)

-- | A generic payload whose meaning changes depending on this MenuItem's
--   action. - When the action is OPEN_URI, the payload is the URL of the
--   website to view. - When the action is PLAY_VIDEO, the payload is the
--   streaming URL of the video - When the action is GET_MEDIA_INPUT, the
--   payload is the text transcription of a user's speech input
miPayload :: Lens' MenuItem (Maybe Text)

-- | The ContextualMenus.Command associated with this MenuItem (e.g.
--   READ_ALOUD). The voice label for this command will be displayed in the
--   voice menu and the touch label will be displayed in the touch menu.
--   Note that the default menu value's display name will be overriden if
--   you specify this property. Values that do not correspond to a
--   ContextualMenus.Command name will be ignored.
miContextualCommand :: Lens' MenuItem (Maybe Text)

-- | The ID for this menu item. This is generated by the application and is
--   treated as an opaque token.
miId :: Lens' MenuItem (Maybe Text)

-- | A setting for Glass.
--   
--   <i>See:</i> <a>setting</a> smart constructor.
data Setting

-- | Creates a value of <a>Setting</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sKind</a></li>
--   <li><a>sValue</a></li>
--   <li><a>sId</a></li>
--   </ul>
setting :: Setting

-- | The type of resource. This is always mirror#setting.
sKind :: Lens' Setting Text

-- | The setting value, as a string.
sValue :: Lens' Setting (Maybe Text)

-- | The setting's ID. The following IDs are valid: - locale - The key to
--   the user’s language/locale (BCP 47 identifier) that Glassware should
--   use to render localized content. - timezone - The key to the user’s
--   current time zone region as defined in the tz database. Example:
--   America/Los_Angeles.
sId :: Lens' Setting (Maybe Text)

-- | Represents media content, such as a photo, that can be attached to a
--   timeline item.
--   
--   <i>See:</i> <a>attachment</a> smart constructor.
data Attachment

-- | Creates a value of <a>Attachment</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aContentURL</a></li>
--   <li><a>aId</a></li>
--   <li><a>aIsProcessingContent</a></li>
--   <li><a>aContentType</a></li>
--   </ul>
attachment :: Attachment

-- | The URL for the content.
aContentURL :: Lens' Attachment (Maybe Text)

-- | The ID of the attachment.
aId :: Lens' Attachment (Maybe Text)

-- | Indicates that the contentUrl is not available because the attachment
--   content is still being processed. If the caller wishes to retrieve the
--   content, it should try again later.
aIsProcessingContent :: Lens' Attachment (Maybe Bool)

-- | The MIME type of the attachment.
aContentType :: Lens' Attachment (Maybe Text)

-- | Represents an account passed into the Account Manager on Glass.
--   
--   <i>See:</i> <a>account</a> smart constructor.
data Account

-- | Creates a value of <a>Account</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aAuthTokens</a></li>
--   <li><a>aUserData</a></li>
--   <li><a>aPassword</a></li>
--   <li><a>aFeatures</a></li>
--   </ul>
account :: Account
aAuthTokens :: Lens' Account [AuthToken]
aUserData :: Lens' Account [UserData]
aPassword :: Lens' Account (Maybe Text)
aFeatures :: Lens' Account [Text]
data UserData

-- | Creates a value of <a>UserData</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>udValue</a></li>
--   <li><a>udKey</a></li>
--   </ul>
userData :: UserData
udValue :: Lens' UserData (Maybe Text)
udKey :: Lens' UserData (Maybe Text)

-- | Represents an action taken by the user that triggered a notification.
--   
--   <i>See:</i> <a>userAction</a> smart constructor.
data UserAction

-- | Creates a value of <a>UserAction</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uaPayload</a></li>
--   <li><a>uaType</a></li>
--   </ul>
userAction :: UserAction

-- | An optional payload for the action. For actions of type CUSTOM, this
--   is the ID of the custom menu item that was selected.
uaPayload :: Lens' UserAction (Maybe Text)

-- | The type of action. The value of this can be: - SHARE - the user
--   shared an item. - REPLY - the user replied to an item. - REPLY_ALL -
--   the user replied to all recipients of an item. - CUSTOM - the user
--   selected a custom menu item on the timeline item. - DELETE - the user
--   deleted the item. - PIN - the user pinned the item. - UNPIN - the user
--   unpinned the item. - LAUNCH - the user initiated a voice command. In
--   the future, additional types may be added. UserActions with
--   unrecognized types should be ignored.
uaType :: Lens' UserAction (Maybe Text)

-- | A list of timeline items. This is the response from the server to GET
--   requests on the timeline collection.
--   
--   <i>See:</i> <a>timelineListResponse</a> smart constructor.
data TimelineListResponse

-- | Creates a value of <a>TimelineListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tlrNextPageToken</a></li>
--   <li><a>tlrKind</a></li>
--   <li><a>tlrItems</a></li>
--   </ul>
timelineListResponse :: TimelineListResponse

-- | The next page token. Provide this as the pageToken parameter in the
--   request to retrieve the next page of results.
tlrNextPageToken :: Lens' TimelineListResponse (Maybe Text)

-- | The type of resource. This is always mirror#timeline.
tlrKind :: Lens' TimelineListResponse Text

-- | Items in the timeline.
tlrItems :: Lens' TimelineListResponse [TimelineItem]

-- | A list of Contacts representing contacts. This is the response from
--   the server to GET requests on the contacts collection.
--   
--   <i>See:</i> <a>contactsListResponse</a> smart constructor.
data ContactsListResponse

-- | Creates a value of <a>ContactsListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clrKind</a></li>
--   <li><a>clrItems</a></li>
--   </ul>
contactsListResponse :: ContactsListResponse

-- | The type of resource. This is always mirror#contacts.
clrKind :: Lens' ContactsListResponse Text

-- | Contact list.
clrItems :: Lens' ContactsListResponse [Contact]

-- | A single value that is part of a MenuItem.
--   
--   <i>See:</i> <a>menuValue</a> smart constructor.
data MenuValue

-- | Creates a value of <a>MenuValue</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mvState</a></li>
--   <li><a>mvDisplayName</a></li>
--   <li><a>mvIconURL</a></li>
--   </ul>
menuValue :: MenuValue

-- | The state that this value applies to. Allowed values are: - DEFAULT -
--   Default value shown when displayed in the menuItems list. - PENDING -
--   Value shown when the menuItem has been selected by the user but can
--   still be cancelled. - CONFIRMED - Value shown when the menuItem has
--   been selected by the user and can no longer be cancelled.
mvState :: Lens' MenuValue (Maybe Text)

-- | The name to display for the menu item. If you specify this property
--   for a built-in menu item, the default contextual voice command for
--   that menu item is not shown.
mvDisplayName :: Lens' MenuValue (Maybe Text)

-- | URL of an icon to display with the menu item.
mvIconURL :: Lens' MenuValue (Maybe Text)

-- | A subscription to events on a collection.
--   
--   <i>See:</i> <a>subscription</a> smart constructor.
data Subscription

-- | Creates a value of <a>Subscription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>subCallbackURL</a></li>
--   <li><a>subOperation</a></li>
--   <li><a>subNotification</a></li>
--   <li><a>subKind</a></li>
--   <li><a>subCollection</a></li>
--   <li><a>subVerifyToken</a></li>
--   <li><a>subUserToken</a></li>
--   <li><a>subId</a></li>
--   <li><a>subUpdated</a></li>
--   </ul>
subscription :: Subscription

-- | The URL where notifications should be delivered (must start with
--   https://).
subCallbackURL :: Lens' Subscription (Maybe Text)

-- | A list of operations that should be subscribed to. An empty list
--   indicates that all operations on the collection should be subscribed
--   to. Allowed values are: - UPDATE - The item has been updated. - INSERT
--   - A new item has been inserted. - DELETE - The item has been deleted.
--   - MENU_ACTION - A custom menu item has been triggered by the user.
subOperation :: Lens' Subscription [Text]

-- | Container object for notifications. This is not populated in the
--   Subscription resource.
subNotification :: Lens' Subscription (Maybe Notification)

-- | The type of resource. This is always mirror#subscription.
subKind :: Lens' Subscription Text

-- | The collection to subscribe to. Allowed values are: - timeline -
--   Changes in the timeline including insertion, deletion, and updates. -
--   locations - Location updates. - settings - Settings updates.
subCollection :: Lens' Subscription (Maybe Text)

-- | A secret token sent to the subscriber in notifications so that it can
--   verify that the notification was generated by Google.
subVerifyToken :: Lens' Subscription (Maybe Text)

-- | An opaque token sent to the subscriber in notifications so that it can
--   determine the ID of the user.
subUserToken :: Lens' Subscription (Maybe Text)

-- | The ID of the subscription.
subId :: Lens' Subscription (Maybe Text)

-- | The time at which this subscription was last modified, formatted
--   according to RFC 3339.
subUpdated :: Lens' Subscription (Maybe UTCTime)

-- | Each item in the user's timeline is represented as a TimelineItem JSON
--   structure, described below.
--   
--   <i>See:</i> <a>timelineItem</a> smart constructor.
data TimelineItem

-- | Creates a value of <a>TimelineItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tiCreator</a></li>
--   <li><a>tiDisplayTime</a></li>
--   <li><a>tiEtag</a></li>
--   <li><a>tiIsDeleted</a></li>
--   <li><a>tiPinScore</a></li>
--   <li><a>tiAttachments</a></li>
--   <li><a>tiLocation</a></li>
--   <li><a>tiMenuItems</a></li>
--   <li><a>tiNotification</a></li>
--   <li><a>tiText</a></li>
--   <li><a>tiKind</a></li>
--   <li><a>tiCreated</a></li>
--   <li><a>tiSpeakableText</a></li>
--   <li><a>tiIsBundleCover</a></li>
--   <li><a>tiSpeakableType</a></li>
--   <li><a>tiBundleId</a></li>
--   <li><a>tiCanonicalURL</a></li>
--   <li><a>tiSelfLink</a></li>
--   <li><a>tiIsPinned</a></li>
--   <li><a>tiSourceItemId</a></li>
--   <li><a>tiId</a></li>
--   <li><a>tiHTML</a></li>
--   <li><a>tiUpdated</a></li>
--   <li><a>tiRecipients</a></li>
--   <li><a>tiTitle</a></li>
--   <li><a>tiInReplyTo</a></li>
--   </ul>
timelineItem :: TimelineItem

-- | The user or group that created this item.
tiCreator :: Lens' TimelineItem (Maybe Contact)

-- | The time that should be displayed when this item is viewed in the
--   timeline, formatted according to RFC 3339. This user's timeline is
--   sorted chronologically on display time, so this will also determine
--   where the item is displayed in the timeline. If not set by the
--   service, the display time defaults to the updated time.
tiDisplayTime :: Lens' TimelineItem (Maybe UTCTime)

-- | ETag for this item.
tiEtag :: Lens' TimelineItem (Maybe Text)

-- | When true, indicates this item is deleted, and only the ID property is
--   set.
tiIsDeleted :: Lens' TimelineItem (Maybe Bool)

-- | For pinned items, this determines the order in which the item is
--   displayed in the timeline, with a higher score appearing closer to the
--   clock. Note: setting this field is currently not supported.
tiPinScore :: Lens' TimelineItem (Maybe Int32)

-- | A list of media attachments associated with this item. As a
--   convenience, you can refer to attachments in your HTML payloads with
--   the attachment or cid scheme. For example: - attachment: where
--   attachment_index is the 0-based index of this array. - cid: where
--   attachment_id is the ID of the attachment.
tiAttachments :: Lens' TimelineItem [Attachment]

-- | The geographic location associated with this item.
tiLocation :: Lens' TimelineItem (Maybe Location)

-- | A list of menu items that will be presented to the user when this item
--   is selected in the timeline.
tiMenuItems :: Lens' TimelineItem [MenuItem]

-- | Controls how notifications for this item are presented on the device.
--   If this is missing, no notification will be generated.
tiNotification :: Lens' TimelineItem (Maybe NotificationConfig)

-- | Text content of this item.
tiText :: Lens' TimelineItem (Maybe Text)

-- | The type of resource. This is always mirror#timelineItem.
tiKind :: Lens' TimelineItem Text

-- | The time at which this item was created, formatted according to RFC
--   3339.
tiCreated :: Lens' TimelineItem (Maybe UTCTime)

-- | The speakable version of the content of this item. Along with the
--   READ_ALOUD menu item, use this field to provide text that would be
--   clearer when read aloud, or to provide extended information to what is
--   displayed visually on Glass. Glassware should also specify the
--   speakableType field, which will be spoken before this text in cases
--   where the additional context is useful, for example when the user
--   requests that the item be read aloud following a notification.
tiSpeakableText :: Lens' TimelineItem (Maybe Text)

-- | Whether this item is a bundle cover. If an item is marked as a bundle
--   cover, it will be the entry point to the bundle of items that have the
--   same bundleId as that item. It will be shown only on the main timeline
--   — not within the opened bundle. On the main timeline, items that are
--   shown are: - Items that have isBundleCover set to true - Items that do
--   not have a bundleId In a bundle sub-timeline, items that are shown
--   are: - Items that have the bundleId in question AND isBundleCover set
--   to false
tiIsBundleCover :: Lens' TimelineItem (Maybe Bool)

-- | A speakable description of the type of this item. This will be
--   announced to the user prior to reading the content of the item in
--   cases where the additional context is useful, for example when the
--   user requests that the item be read aloud following a notification.
--   This should be a short, simple noun phrase such as "Email", "Text
--   message", or "Daily Planet News Update". Glassware are encouraged to
--   populate this field for every timeline item, even if the item does not
--   contain speakableText or text so that the user can learn the type of
--   the item without looking at the screen.
tiSpeakableType :: Lens' TimelineItem (Maybe Text)

-- | The bundle ID for this item. Services can specify a bundleId to group
--   many items together. They appear under a single top-level item on the
--   device.
tiBundleId :: Lens' TimelineItem (Maybe Text)

-- | A canonical URL pointing to the canonical/high quality version of the
--   data represented by the timeline item.
tiCanonicalURL :: Lens' TimelineItem (Maybe Text)

-- | A URL that can be used to retrieve this item.
tiSelfLink :: Lens' TimelineItem (Maybe Text)

-- | When true, indicates this item is pinned, which means it's grouped
--   alongside "active" items like navigation and hangouts, on the opposite
--   side of the home screen from historical (non-pinned) timeline items.
--   You can allow the user to toggle the value of this property with the
--   TOGGLE_PINNED built-in menu item.
tiIsPinned :: Lens' TimelineItem (Maybe Bool)

-- | Opaque string you can use to map a timeline item to data in your own
--   service.
tiSourceItemId :: Lens' TimelineItem (Maybe Text)

-- | The ID of the timeline item. This is unique within a user's timeline.
tiId :: Lens' TimelineItem (Maybe Text)

-- | HTML content for this item. If both text and html are provided for an
--   item, the html will be rendered in the timeline. Allowed HTML elements
--   - You can use these elements in your timeline cards. - Headers: h1,
--   h2, h3, h4, h5, h6 - Images: img - Lists: li, ol, ul - HTML5
--   semantics: article, aside, details, figure, figcaption, footer,
--   header, nav, section, summary, time - Structural: blockquote, br, div,
--   hr, p, span - Style: b, big, center, em, i, u, s, small, strike,
--   strong, style, sub, sup - Tables: table, tbody, td, tfoot, th, thead,
--   tr Blocked HTML elements: These elements and their contents are
--   removed from HTML payloads. - Document headers: head, title - Embeds:
--   audio, embed, object, source, video - Frames: frame, frameset -
--   Scripting: applet, script Other elements: Any elements that aren't
--   listed are removed, but their contents are preserved.
tiHTML :: Lens' TimelineItem (Maybe Text)

-- | The time at which this item was last modified, formatted according to
--   RFC 3339.
tiUpdated :: Lens' TimelineItem (Maybe UTCTime)

-- | A list of users or groups that this item has been shared with.
tiRecipients :: Lens' TimelineItem [Contact]

-- | The title of this item.
tiTitle :: Lens' TimelineItem (Maybe Text)

-- | If this item was generated as a reply to another item, this field will
--   be set to the ID of the item being replied to. This can be used to
--   attach a reply to the appropriate conversation or post.
tiInReplyTo :: Lens' TimelineItem (Maybe Text)

-- | A list of Subscriptions. This is the response from the server to GET
--   requests on the subscription collection.
--   
--   <i>See:</i> <a>subscriptionsListResponse</a> smart constructor.
data SubscriptionsListResponse

-- | Creates a value of <a>SubscriptionsListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slrKind</a></li>
--   <li><a>slrItems</a></li>
--   </ul>
subscriptionsListResponse :: SubscriptionsListResponse

-- | The type of resource. This is always mirror#subscriptionsList.
slrKind :: Lens' SubscriptionsListResponse Text

-- | The list of subscriptions.
slrItems :: Lens' SubscriptionsListResponse [Subscription]


-- | Inserts a new account for a user
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.accounts.insert</tt>.
module Network.Google.Resource.Mirror.Accounts.Insert

-- | A resource alias for <tt>mirror.accounts.insert</tt> method which the
--   <a>AccountsInsert</a> request conforms to.
type AccountsInsertResource = "mirror" :> ("v1" :> ("accounts" :> (Capture "userToken" Text :> (Capture "accountType" Text :> (Capture "accountName" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Account :> Post '[JSON] Account)))))))

-- | Creates a value of <a>AccountsInsert</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aiAccountName</a></li>
--   <li><a>aiPayload</a></li>
--   <li><a>aiUserToken</a></li>
--   <li><a>aiAccountType</a></li>
--   </ul>
accountsInsert :: Text -> Account -> Text -> Text -> AccountsInsert

-- | Inserts a new account for a user
--   
--   <i>See:</i> <a>accountsInsert</a> smart constructor.
data AccountsInsert

-- | The name of the account to be passed to the Android Account Manager.
aiAccountName :: Lens' AccountsInsert Text

-- | Multipart request metadata.
aiPayload :: Lens' AccountsInsert Account

-- | The ID for the user.
aiUserToken :: Lens' AccountsInsert Text

-- | Account type to be passed to Android Account Manager.
aiAccountType :: Lens' AccountsInsert Text
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Accounts.Insert.AccountsInsert
instance Data.Data.Data Network.Google.Resource.Mirror.Accounts.Insert.AccountsInsert
instance GHC.Show.Show Network.Google.Resource.Mirror.Accounts.Insert.AccountsInsert
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Accounts.Insert.AccountsInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Accounts.Insert.AccountsInsert


-- | Deletes a contact.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.contacts.delete</tt>.
module Network.Google.Resource.Mirror.Contacts.Delete

-- | A resource alias for <tt>mirror.contacts.delete</tt> method which the
--   <a>ContactsDelete</a> request conforms to.
type ContactsDeleteResource = "mirror" :> ("v1" :> ("contacts" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))

-- | Creates a value of <a>ContactsDelete</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdId</a></li>
--   </ul>
contactsDelete :: Text -> ContactsDelete

-- | Deletes a contact.
--   
--   <i>See:</i> <a>contactsDelete</a> smart constructor.
data ContactsDelete

-- | The ID of the contact.
cdId :: Lens' ContactsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Contacts.Delete.ContactsDelete
instance Data.Data.Data Network.Google.Resource.Mirror.Contacts.Delete.ContactsDelete
instance GHC.Show.Show Network.Google.Resource.Mirror.Contacts.Delete.ContactsDelete
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Contacts.Delete.ContactsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Contacts.Delete.ContactsDelete


-- | Gets a single contact by ID.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.contacts.get</tt>.
module Network.Google.Resource.Mirror.Contacts.Get

-- | A resource alias for <tt>mirror.contacts.get</tt> method which the
--   <a>ContactsGet</a> request conforms to.
type ContactsGetResource = "mirror" :> ("v1" :> ("contacts" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Contact))))

-- | Creates a value of <a>ContactsGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cgId</a></li>
--   </ul>
contactsGet :: Text -> ContactsGet

-- | Gets a single contact by ID.
--   
--   <i>See:</i> <a>contactsGet</a> smart constructor.
data ContactsGet

-- | The ID of the contact.
cgId :: Lens' ContactsGet Text
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Contacts.Get.ContactsGet
instance Data.Data.Data Network.Google.Resource.Mirror.Contacts.Get.ContactsGet
instance GHC.Show.Show Network.Google.Resource.Mirror.Contacts.Get.ContactsGet
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Contacts.Get.ContactsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Contacts.Get.ContactsGet


-- | Inserts a new contact.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.contacts.insert</tt>.
module Network.Google.Resource.Mirror.Contacts.Insert

-- | A resource alias for <tt>mirror.contacts.insert</tt> method which the
--   <a>ContactsInsert</a> request conforms to.
type ContactsInsertResource = "mirror" :> ("v1" :> ("contacts" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Contact :> Post '[JSON] Contact))))

-- | Creates a value of <a>ContactsInsert</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ciPayload</a></li>
--   </ul>
contactsInsert :: Contact -> ContactsInsert

-- | Inserts a new contact.
--   
--   <i>See:</i> <a>contactsInsert</a> smart constructor.
data ContactsInsert

-- | Multipart request metadata.
ciPayload :: Lens' ContactsInsert Contact
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Contacts.Insert.ContactsInsert
instance Data.Data.Data Network.Google.Resource.Mirror.Contacts.Insert.ContactsInsert
instance GHC.Show.Show Network.Google.Resource.Mirror.Contacts.Insert.ContactsInsert
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Contacts.Insert.ContactsInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Contacts.Insert.ContactsInsert


-- | Retrieves a list of contacts for the authenticated user.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.contacts.list</tt>.
module Network.Google.Resource.Mirror.Contacts.List

-- | A resource alias for <tt>mirror.contacts.list</tt> method which the
--   <a>ContactsList</a> request conforms to.
type ContactsListResource = "mirror" :> ("v1" :> ("contacts" :> (QueryParam "alt" AltJSON :> Get '[JSON] ContactsListResponse)))

-- | Creates a value of <a>ContactsList</a> with the minimum fields
--   required to make a request.
contactsList :: ContactsList

-- | Retrieves a list of contacts for the authenticated user.
--   
--   <i>See:</i> <a>contactsList</a> smart constructor.
data ContactsList
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Contacts.List.ContactsList
instance Data.Data.Data Network.Google.Resource.Mirror.Contacts.List.ContactsList
instance GHC.Show.Show Network.Google.Resource.Mirror.Contacts.List.ContactsList
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Contacts.List.ContactsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Contacts.List.ContactsList


-- | Updates a contact in place. This method supports patch semantics.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.contacts.patch</tt>.
module Network.Google.Resource.Mirror.Contacts.Patch

-- | A resource alias for <tt>mirror.contacts.patch</tt> method which the
--   <a>ContactsPatch</a> request conforms to.
type ContactsPatchResource = "mirror" :> ("v1" :> ("contacts" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Contact :> Patch '[JSON] Contact)))))

-- | Creates a value of <a>ContactsPatch</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpPayload</a></li>
--   <li><a>cpId</a></li>
--   </ul>
contactsPatch :: Contact -> Text -> ContactsPatch

-- | Updates a contact in place. This method supports patch semantics.
--   
--   <i>See:</i> <a>contactsPatch</a> smart constructor.
data ContactsPatch

-- | Multipart request metadata.
cpPayload :: Lens' ContactsPatch Contact

-- | The ID of the contact.
cpId :: Lens' ContactsPatch Text
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Contacts.Patch.ContactsPatch
instance Data.Data.Data Network.Google.Resource.Mirror.Contacts.Patch.ContactsPatch
instance GHC.Show.Show Network.Google.Resource.Mirror.Contacts.Patch.ContactsPatch
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Contacts.Patch.ContactsPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Contacts.Patch.ContactsPatch


-- | Updates a contact in place.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.contacts.update</tt>.
module Network.Google.Resource.Mirror.Contacts.Update

-- | A resource alias for <tt>mirror.contacts.update</tt> method which the
--   <a>ContactsUpdate</a> request conforms to.
type ContactsUpdateResource = "mirror" :> ("v1" :> ("contacts" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Contact :> Put '[JSON] Contact)))))

-- | Creates a value of <a>ContactsUpdate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cuPayload</a></li>
--   <li><a>cuId</a></li>
--   </ul>
contactsUpdate :: Contact -> Text -> ContactsUpdate

-- | Updates a contact in place.
--   
--   <i>See:</i> <a>contactsUpdate</a> smart constructor.
data ContactsUpdate

-- | Multipart request metadata.
cuPayload :: Lens' ContactsUpdate Contact

-- | The ID of the contact.
cuId :: Lens' ContactsUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Contacts.Update.ContactsUpdate
instance Data.Data.Data Network.Google.Resource.Mirror.Contacts.Update.ContactsUpdate
instance GHC.Show.Show Network.Google.Resource.Mirror.Contacts.Update.ContactsUpdate
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Contacts.Update.ContactsUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Contacts.Update.ContactsUpdate


-- | Gets a single location by ID.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.locations.get</tt>.
module Network.Google.Resource.Mirror.Locations.Get

-- | A resource alias for <tt>mirror.locations.get</tt> method which the
--   <a>LocationsGet</a> request conforms to.
type LocationsGetResource = "mirror" :> ("v1" :> ("locations" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Location))))

-- | Creates a value of <a>LocationsGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lgId</a></li>
--   </ul>
locationsGet :: Text -> LocationsGet

-- | Gets a single location by ID.
--   
--   <i>See:</i> <a>locationsGet</a> smart constructor.
data LocationsGet

-- | The ID of the location or latest for the last known location.
lgId :: Lens' LocationsGet Text
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Locations.Get.LocationsGet
instance Data.Data.Data Network.Google.Resource.Mirror.Locations.Get.LocationsGet
instance GHC.Show.Show Network.Google.Resource.Mirror.Locations.Get.LocationsGet
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Locations.Get.LocationsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Locations.Get.LocationsGet


-- | Retrieves a list of locations for the user.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.locations.list</tt>.
module Network.Google.Resource.Mirror.Locations.List

-- | A resource alias for <tt>mirror.locations.list</tt> method which the
--   <a>LocationsList</a> request conforms to.
type LocationsListResource = "mirror" :> ("v1" :> ("locations" :> (QueryParam "alt" AltJSON :> Get '[JSON] LocationsListResponse)))

-- | Creates a value of <a>LocationsList</a> with the minimum fields
--   required to make a request.
locationsList :: LocationsList

-- | Retrieves a list of locations for the user.
--   
--   <i>See:</i> <a>locationsList</a> smart constructor.
data LocationsList
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Locations.List.LocationsList
instance Data.Data.Data Network.Google.Resource.Mirror.Locations.List.LocationsList
instance GHC.Show.Show Network.Google.Resource.Mirror.Locations.List.LocationsList
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Locations.List.LocationsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Locations.List.LocationsList


-- | Gets a single setting by ID.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.settings.get</tt>.
module Network.Google.Resource.Mirror.Settings.Get

-- | A resource alias for <tt>mirror.settings.get</tt> method which the
--   <a>SettingsGet</a> request conforms to.
type SettingsGetResource = "mirror" :> ("v1" :> ("settings" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Setting))))

-- | Creates a value of <a>SettingsGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sgId</a></li>
--   </ul>
settingsGet :: Text -> SettingsGet

-- | Gets a single setting by ID.
--   
--   <i>See:</i> <a>settingsGet</a> smart constructor.
data SettingsGet

-- | The ID of the setting. The following IDs are valid: - locale - The key
--   to the user’s language/locale (BCP 47 identifier) that Glassware
--   should use to render localized content. - timezone - The key to the
--   user’s current time zone region as defined in the tz database.
--   Example: America/Los_Angeles.
sgId :: Lens' SettingsGet Text
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Settings.Get.SettingsGet
instance Data.Data.Data Network.Google.Resource.Mirror.Settings.Get.SettingsGet
instance GHC.Show.Show Network.Google.Resource.Mirror.Settings.Get.SettingsGet
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Settings.Get.SettingsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Settings.Get.SettingsGet


-- | Deletes a subscription.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.subscriptions.delete</tt>.
module Network.Google.Resource.Mirror.Subscriptions.Delete

-- | A resource alias for <tt>mirror.subscriptions.delete</tt> method which
--   the <a>SubscriptionsDelete</a> request conforms to.
type SubscriptionsDeleteResource = "mirror" :> ("v1" :> ("subscriptions" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))

-- | Creates a value of <a>SubscriptionsDelete</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdId</a></li>
--   </ul>
subscriptionsDelete :: Text -> SubscriptionsDelete

-- | Deletes a subscription.
--   
--   <i>See:</i> <a>subscriptionsDelete</a> smart constructor.
data SubscriptionsDelete

-- | The ID of the subscription.
sdId :: Lens' SubscriptionsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Subscriptions.Delete.SubscriptionsDelete
instance Data.Data.Data Network.Google.Resource.Mirror.Subscriptions.Delete.SubscriptionsDelete
instance GHC.Show.Show Network.Google.Resource.Mirror.Subscriptions.Delete.SubscriptionsDelete
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Subscriptions.Delete.SubscriptionsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Subscriptions.Delete.SubscriptionsDelete


-- | Creates a new subscription.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.subscriptions.insert</tt>.
module Network.Google.Resource.Mirror.Subscriptions.Insert

-- | A resource alias for <tt>mirror.subscriptions.insert</tt> method which
--   the <a>SubscriptionsInsert</a> request conforms to.
type SubscriptionsInsertResource = "mirror" :> ("v1" :> ("subscriptions" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Subscription :> Post '[JSON] Subscription))))

-- | Creates a value of <a>SubscriptionsInsert</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siPayload</a></li>
--   </ul>
subscriptionsInsert :: Subscription -> SubscriptionsInsert

-- | Creates a new subscription.
--   
--   <i>See:</i> <a>subscriptionsInsert</a> smart constructor.
data SubscriptionsInsert

-- | Multipart request metadata.
siPayload :: Lens' SubscriptionsInsert Subscription
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Subscriptions.Insert.SubscriptionsInsert
instance Data.Data.Data Network.Google.Resource.Mirror.Subscriptions.Insert.SubscriptionsInsert
instance GHC.Show.Show Network.Google.Resource.Mirror.Subscriptions.Insert.SubscriptionsInsert
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Subscriptions.Insert.SubscriptionsInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Subscriptions.Insert.SubscriptionsInsert


-- | Retrieves a list of subscriptions for the authenticated user and
--   service.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.subscriptions.list</tt>.
module Network.Google.Resource.Mirror.Subscriptions.List

-- | A resource alias for <tt>mirror.subscriptions.list</tt> method which
--   the <a>SubscriptionsList</a> request conforms to.
type SubscriptionsListResource = "mirror" :> ("v1" :> ("subscriptions" :> (QueryParam "alt" AltJSON :> Get '[JSON] SubscriptionsListResponse)))

-- | Creates a value of <a>SubscriptionsList</a> with the minimum fields
--   required to make a request.
subscriptionsList :: SubscriptionsList

-- | Retrieves a list of subscriptions for the authenticated user and
--   service.
--   
--   <i>See:</i> <a>subscriptionsList</a> smart constructor.
data SubscriptionsList
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Subscriptions.List.SubscriptionsList
instance Data.Data.Data Network.Google.Resource.Mirror.Subscriptions.List.SubscriptionsList
instance GHC.Show.Show Network.Google.Resource.Mirror.Subscriptions.List.SubscriptionsList
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Subscriptions.List.SubscriptionsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Subscriptions.List.SubscriptionsList


-- | Updates an existing subscription in place.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.subscriptions.update</tt>.
module Network.Google.Resource.Mirror.Subscriptions.Update

-- | A resource alias for <tt>mirror.subscriptions.update</tt> method which
--   the <a>SubscriptionsUpdate</a> request conforms to.
type SubscriptionsUpdateResource = "mirror" :> ("v1" :> ("subscriptions" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Subscription :> Put '[JSON] Subscription)))))

-- | Creates a value of <a>SubscriptionsUpdate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>suPayload</a></li>
--   <li><a>suId</a></li>
--   </ul>
subscriptionsUpdate :: Subscription -> Text -> SubscriptionsUpdate

-- | Updates an existing subscription in place.
--   
--   <i>See:</i> <a>subscriptionsUpdate</a> smart constructor.
data SubscriptionsUpdate

-- | Multipart request metadata.
suPayload :: Lens' SubscriptionsUpdate Subscription

-- | The ID of the subscription.
suId :: Lens' SubscriptionsUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Subscriptions.Update.SubscriptionsUpdate
instance Data.Data.Data Network.Google.Resource.Mirror.Subscriptions.Update.SubscriptionsUpdate
instance GHC.Show.Show Network.Google.Resource.Mirror.Subscriptions.Update.SubscriptionsUpdate
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Subscriptions.Update.SubscriptionsUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Subscriptions.Update.SubscriptionsUpdate


-- | Deletes an attachment from a timeline item.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.timeline.attachments.delete</tt>.
module Network.Google.Resource.Mirror.Timeline.Attachments.Delete

-- | A resource alias for <tt>mirror.timeline.attachments.delete</tt>
--   method which the <a>TimelineAttachmentsDelete</a> request conforms to.
type TimelineAttachmentsDeleteResource = "mirror" :> ("v1" :> ("timeline" :> (Capture "itemId" Text :> ("attachments" :> (Capture "attachmentId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))

-- | Creates a value of <a>TimelineAttachmentsDelete</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tadItemId</a></li>
--   <li><a>tadAttachmentId</a></li>
--   </ul>
timelineAttachmentsDelete :: Text -> Text -> TimelineAttachmentsDelete

-- | Deletes an attachment from a timeline item.
--   
--   <i>See:</i> <a>timelineAttachmentsDelete</a> smart constructor.
data TimelineAttachmentsDelete

-- | The ID of the timeline item the attachment belongs to.
tadItemId :: Lens' TimelineAttachmentsDelete Text

-- | The ID of the attachment.
tadAttachmentId :: Lens' TimelineAttachmentsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Timeline.Attachments.Delete.TimelineAttachmentsDelete
instance Data.Data.Data Network.Google.Resource.Mirror.Timeline.Attachments.Delete.TimelineAttachmentsDelete
instance GHC.Show.Show Network.Google.Resource.Mirror.Timeline.Attachments.Delete.TimelineAttachmentsDelete
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Timeline.Attachments.Delete.TimelineAttachmentsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Timeline.Attachments.Delete.TimelineAttachmentsDelete


-- | Retrieves an attachment on a timeline item by item ID and attachment
--   ID.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.timeline.attachments.get</tt>.
module Network.Google.Resource.Mirror.Timeline.Attachments.Get

-- | A resource alias for <tt>mirror.timeline.attachments.get</tt> method
--   which the <a>TimelineAttachmentsGet</a> request conforms to.
type TimelineAttachmentsGetResource = ("mirror" :> ("v1" :> ("timeline" :> (Capture "itemId" Text :> ("attachments" :> (Capture "attachmentId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Attachment))))))) :<|> ("mirror" :> ("v1" :> ("timeline" :> (Capture "itemId" Text :> ("attachments" :> (Capture "attachmentId" Text :> (QueryParam "alt" AltMedia :> Get '[OctetStream] Stream)))))))

-- | Creates a value of <a>TimelineAttachmentsGet</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tagItemId</a></li>
--   <li><a>tagAttachmentId</a></li>
--   </ul>
timelineAttachmentsGet :: Text -> Text -> TimelineAttachmentsGet

-- | Retrieves an attachment on a timeline item by item ID and attachment
--   ID.
--   
--   <i>See:</i> <a>timelineAttachmentsGet</a> smart constructor.
data TimelineAttachmentsGet

-- | The ID of the timeline item the attachment belongs to.
tagItemId :: Lens' TimelineAttachmentsGet Text

-- | The ID of the attachment.
tagAttachmentId :: Lens' TimelineAttachmentsGet Text
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Timeline.Attachments.Get.TimelineAttachmentsGet
instance Data.Data.Data Network.Google.Resource.Mirror.Timeline.Attachments.Get.TimelineAttachmentsGet
instance GHC.Show.Show Network.Google.Resource.Mirror.Timeline.Attachments.Get.TimelineAttachmentsGet
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Timeline.Attachments.Get.TimelineAttachmentsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Timeline.Attachments.Get.TimelineAttachmentsGet
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaDownload Network.Google.Resource.Mirror.Timeline.Attachments.Get.TimelineAttachmentsGet)


-- | Adds a new attachment to a timeline item.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.timeline.attachments.insert</tt>.
module Network.Google.Resource.Mirror.Timeline.Attachments.Insert

-- | A resource alias for <tt>mirror.timeline.attachments.insert</tt>
--   method which the <a>TimelineAttachmentsInsert</a> request conforms to.
type TimelineAttachmentsInsertResource = ("mirror" :> ("v1" :> ("timeline" :> (Capture "itemId" Text :> ("attachments" :> (QueryParam "alt" AltJSON :> Post '[JSON] Attachment)))))) :<|> ("upload" :> ("mirror" :> ("v1" :> ("timeline" :> (Capture "itemId" Text :> ("attachments" :> (QueryParam "alt" AltJSON :> (QueryParam "uploadType" AltMedia :> (AltMedia :> Post '[JSON] Attachment)))))))))

-- | Creates a value of <a>TimelineAttachmentsInsert</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>taiItemId</a></li>
--   </ul>
timelineAttachmentsInsert :: Text -> TimelineAttachmentsInsert

-- | Adds a new attachment to a timeline item.
--   
--   <i>See:</i> <a>timelineAttachmentsInsert</a> smart constructor.
data TimelineAttachmentsInsert

-- | The ID of the timeline item the attachment belongs to.
taiItemId :: Lens' TimelineAttachmentsInsert Text
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Timeline.Attachments.Insert.TimelineAttachmentsInsert
instance Data.Data.Data Network.Google.Resource.Mirror.Timeline.Attachments.Insert.TimelineAttachmentsInsert
instance GHC.Show.Show Network.Google.Resource.Mirror.Timeline.Attachments.Insert.TimelineAttachmentsInsert
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Timeline.Attachments.Insert.TimelineAttachmentsInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Timeline.Attachments.Insert.TimelineAttachmentsInsert
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaUpload Network.Google.Resource.Mirror.Timeline.Attachments.Insert.TimelineAttachmentsInsert)


-- | Returns a list of attachments for a timeline item.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.timeline.attachments.list</tt>.
module Network.Google.Resource.Mirror.Timeline.Attachments.List

-- | A resource alias for <tt>mirror.timeline.attachments.list</tt> method
--   which the <a>TimelineAttachmentsList</a> request conforms to.
type TimelineAttachmentsListResource = "mirror" :> ("v1" :> ("timeline" :> (Capture "itemId" Text :> ("attachments" :> (QueryParam "alt" AltJSON :> Get '[JSON] AttachmentsListResponse)))))

-- | Creates a value of <a>TimelineAttachmentsList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>talItemId</a></li>
--   </ul>
timelineAttachmentsList :: Text -> TimelineAttachmentsList

-- | Returns a list of attachments for a timeline item.
--   
--   <i>See:</i> <a>timelineAttachmentsList</a> smart constructor.
data TimelineAttachmentsList

-- | The ID of the timeline item whose attachments should be listed.
talItemId :: Lens' TimelineAttachmentsList Text
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Timeline.Attachments.List.TimelineAttachmentsList
instance Data.Data.Data Network.Google.Resource.Mirror.Timeline.Attachments.List.TimelineAttachmentsList
instance GHC.Show.Show Network.Google.Resource.Mirror.Timeline.Attachments.List.TimelineAttachmentsList
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Timeline.Attachments.List.TimelineAttachmentsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Timeline.Attachments.List.TimelineAttachmentsList


-- | Deletes a timeline item.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.timeline.delete</tt>.
module Network.Google.Resource.Mirror.Timeline.Delete

-- | A resource alias for <tt>mirror.timeline.delete</tt> method which the
--   <a>TimelineDelete</a> request conforms to.
type TimelineDeleteResource = "mirror" :> ("v1" :> ("timeline" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))

-- | Creates a value of <a>TimelineDelete</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdId</a></li>
--   </ul>
timelineDelete :: Text -> TimelineDelete

-- | Deletes a timeline item.
--   
--   <i>See:</i> <a>timelineDelete</a> smart constructor.
data TimelineDelete

-- | The ID of the timeline item.
tdId :: Lens' TimelineDelete Text
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Timeline.Delete.TimelineDelete
instance Data.Data.Data Network.Google.Resource.Mirror.Timeline.Delete.TimelineDelete
instance GHC.Show.Show Network.Google.Resource.Mirror.Timeline.Delete.TimelineDelete
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Timeline.Delete.TimelineDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Timeline.Delete.TimelineDelete


-- | Gets a single timeline item by ID.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.timeline.get</tt>.
module Network.Google.Resource.Mirror.Timeline.Get

-- | A resource alias for <tt>mirror.timeline.get</tt> method which the
--   <a>TimelineGet</a> request conforms to.
type TimelineGetResource = "mirror" :> ("v1" :> ("timeline" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] TimelineItem))))

-- | Creates a value of <a>TimelineGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tgId</a></li>
--   </ul>
timelineGet :: Text -> TimelineGet

-- | Gets a single timeline item by ID.
--   
--   <i>See:</i> <a>timelineGet</a> smart constructor.
data TimelineGet

-- | The ID of the timeline item.
tgId :: Lens' TimelineGet Text
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Timeline.Get.TimelineGet
instance Data.Data.Data Network.Google.Resource.Mirror.Timeline.Get.TimelineGet
instance GHC.Show.Show Network.Google.Resource.Mirror.Timeline.Get.TimelineGet
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Timeline.Get.TimelineGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Timeline.Get.TimelineGet


-- | Inserts a new item into the timeline.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.timeline.insert</tt>.
module Network.Google.Resource.Mirror.Timeline.Insert

-- | A resource alias for <tt>mirror.timeline.insert</tt> method which the
--   <a>TimelineInsert</a> request conforms to.
type TimelineInsertResource = ("mirror" :> ("v1" :> ("timeline" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] TimelineItem :> Post '[JSON] TimelineItem))))) :<|> ("upload" :> ("mirror" :> ("v1" :> ("timeline" :> (QueryParam "alt" AltJSON :> (QueryParam "uploadType" Multipart :> (MultipartRelated '[JSON] TimelineItem :> Post '[JSON] TimelineItem)))))))

-- | Creates a value of <a>TimelineInsert</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tiPayload</a></li>
--   </ul>
timelineInsert :: TimelineItem -> TimelineInsert

-- | Inserts a new item into the timeline.
--   
--   <i>See:</i> <a>timelineInsert</a> smart constructor.
data TimelineInsert

-- | Multipart request metadata.
tiPayload :: Lens' TimelineInsert TimelineItem
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Timeline.Insert.TimelineInsert
instance Data.Data.Data Network.Google.Resource.Mirror.Timeline.Insert.TimelineInsert
instance GHC.Show.Show Network.Google.Resource.Mirror.Timeline.Insert.TimelineInsert
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Timeline.Insert.TimelineInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Timeline.Insert.TimelineInsert
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaUpload Network.Google.Resource.Mirror.Timeline.Insert.TimelineInsert)


-- | Retrieves a list of timeline items for the authenticated user.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.timeline.list</tt>.
module Network.Google.Resource.Mirror.Timeline.List

-- | A resource alias for <tt>mirror.timeline.list</tt> method which the
--   <a>TimelineList</a> request conforms to.
type TimelineListResource = "mirror" :> ("v1" :> ("timeline" :> (QueryParam "pinnedOnly" Bool :> (QueryParam "orderBy" TimelineListOrderBy :> (QueryParam "bundleId" Text :> (QueryParam "sourceItemId" Text :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "includeDeleted" Bool :> (QueryParam "alt" AltJSON :> Get '[JSON] TimelineListResponse))))))))))

-- | Creates a value of <a>TimelineList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tlPinnedOnly</a></li>
--   <li><a>tlOrderBy</a></li>
--   <li><a>tlBundleId</a></li>
--   <li><a>tlSourceItemId</a></li>
--   <li><a>tlPageToken</a></li>
--   <li><a>tlMaxResults</a></li>
--   <li><a>tlIncludeDeleted</a></li>
--   </ul>
timelineList :: TimelineList

-- | Retrieves a list of timeline items for the authenticated user.
--   
--   <i>See:</i> <a>timelineList</a> smart constructor.
data TimelineList

-- | If true, only pinned items will be returned.
tlPinnedOnly :: Lens' TimelineList (Maybe Bool)

-- | Controls the order in which timeline items are returned.
tlOrderBy :: Lens' TimelineList (Maybe TimelineListOrderBy)

-- | If provided, only items with the given bundleId will be returned.
tlBundleId :: Lens' TimelineList (Maybe Text)

-- | If provided, only items with the given sourceItemId will be returned.
tlSourceItemId :: Lens' TimelineList (Maybe Text)

-- | Token for the page of results to return.
tlPageToken :: Lens' TimelineList (Maybe Text)

-- | The maximum number of items to include in the response, used for
--   paging.
tlMaxResults :: Lens' TimelineList (Maybe Word32)

-- | If true, tombstone records for deleted items will be returned.
tlIncludeDeleted :: Lens' TimelineList (Maybe Bool)
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Timeline.List.TimelineList
instance Data.Data.Data Network.Google.Resource.Mirror.Timeline.List.TimelineList
instance GHC.Show.Show Network.Google.Resource.Mirror.Timeline.List.TimelineList
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Timeline.List.TimelineList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Timeline.List.TimelineList


-- | Updates a timeline item in place. This method supports patch
--   semantics.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.timeline.patch</tt>.
module Network.Google.Resource.Mirror.Timeline.Patch

-- | A resource alias for <tt>mirror.timeline.patch</tt> method which the
--   <a>TimelinePatch</a> request conforms to.
type TimelinePatchResource = "mirror" :> ("v1" :> ("timeline" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] TimelineItem :> Patch '[JSON] TimelineItem)))))

-- | Creates a value of <a>TimelinePatch</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tpPayload</a></li>
--   <li><a>tpId</a></li>
--   </ul>
timelinePatch :: TimelineItem -> Text -> TimelinePatch

-- | Updates a timeline item in place. This method supports patch
--   semantics.
--   
--   <i>See:</i> <a>timelinePatch</a> smart constructor.
data TimelinePatch

-- | Multipart request metadata.
tpPayload :: Lens' TimelinePatch TimelineItem

-- | The ID of the timeline item.
tpId :: Lens' TimelinePatch Text
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Timeline.Patch.TimelinePatch
instance Data.Data.Data Network.Google.Resource.Mirror.Timeline.Patch.TimelinePatch
instance GHC.Show.Show Network.Google.Resource.Mirror.Timeline.Patch.TimelinePatch
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Timeline.Patch.TimelinePatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Timeline.Patch.TimelinePatch


-- | Updates a timeline item in place.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a> for
--   <tt>mirror.timeline.update</tt>.
module Network.Google.Resource.Mirror.Timeline.Update

-- | A resource alias for <tt>mirror.timeline.update</tt> method which the
--   <a>TimelineUpdate</a> request conforms to.
type TimelineUpdateResource = ("mirror" :> ("v1" :> ("timeline" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] TimelineItem :> Put '[JSON] TimelineItem)))))) :<|> ("upload" :> ("mirror" :> ("v1" :> ("timeline" :> (Capture "id" Text :> (QueryParam "alt" AltJSON :> (QueryParam "uploadType" Multipart :> (MultipartRelated '[JSON] TimelineItem :> Put '[JSON] TimelineItem))))))))

-- | Creates a value of <a>TimelineUpdate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tuPayload</a></li>
--   <li><a>tuId</a></li>
--   </ul>
timelineUpdate :: TimelineItem -> Text -> TimelineUpdate

-- | Updates a timeline item in place.
--   
--   <i>See:</i> <a>timelineUpdate</a> smart constructor.
data TimelineUpdate

-- | Multipart request metadata.
tuPayload :: Lens' TimelineUpdate TimelineItem

-- | The ID of the timeline item.
tuId :: Lens' TimelineUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.Mirror.Timeline.Update.TimelineUpdate
instance Data.Data.Data Network.Google.Resource.Mirror.Timeline.Update.TimelineUpdate
instance GHC.Show.Show Network.Google.Resource.Mirror.Timeline.Update.TimelineUpdate
instance GHC.Classes.Eq Network.Google.Resource.Mirror.Timeline.Update.TimelineUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Mirror.Timeline.Update.TimelineUpdate
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaUpload Network.Google.Resource.Mirror.Timeline.Update.TimelineUpdate)


-- | Interacts with Glass users via the timeline.
--   
--   <i>See:</i> <a>Google Mirror API Reference</a>
module Network.Google.Mirror

-- | Default request referring to version <tt>v1</tt> of the Google Mirror
--   API. This contains the host and root path used as a starting point for
--   constructing service requests.
mirrorService :: ServiceConfig

-- | View and manage your Glass timeline
glassTimelineScope :: Proxy '["https://www.googleapis.com/auth/glass.timeline"]

-- | View your location
glassLocationScope :: Proxy '["https://www.googleapis.com/auth/glass.location"]

-- | Represents the entirety of the methods and resources available for the
--   Google Mirror API service.
type MirrorAPI = AccountsInsertResource :<|> (SettingsGetResource :<|> (SubscriptionsInsertResource :<|> (SubscriptionsListResource :<|> (SubscriptionsDeleteResource :<|> (SubscriptionsUpdateResource :<|> (TimelineAttachmentsInsertResource :<|> (TimelineAttachmentsListResource :<|> (TimelineAttachmentsGetResource :<|> (TimelineAttachmentsDeleteResource :<|> (TimelineInsertResource :<|> (TimelineListResource :<|> (TimelinePatchResource :<|> (TimelineGetResource :<|> (TimelineDeleteResource :<|> (TimelineUpdateResource :<|> (ContactsInsertResource :<|> (ContactsListResource :<|> (ContactsPatchResource :<|> (ContactsGetResource :<|> (ContactsDeleteResource :<|> (ContactsUpdateResource :<|> (LocationsListResource :<|> LocationsGetResource))))))))))))))))))))))

-- | Controls the order in which timeline items are returned.
data TimelineListOrderBy

-- | <tt>displayTime</tt> Results will be ordered by displayTime (default).
--   This is the same ordering as is used in the timeline on the device.
DisplayTime :: TimelineListOrderBy

-- | <tt>writeTime</tt> Results will be ordered by the time at which they
--   were last written to the data store.
WriteTime :: TimelineListOrderBy

-- | Controls how notifications for a timeline item are presented to the
--   user.
--   
--   <i>See:</i> <a>notificationConfig</a> smart constructor.
data NotificationConfig

-- | Creates a value of <a>NotificationConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ncDeliveryTime</a></li>
--   <li><a>ncLevel</a></li>
--   </ul>
notificationConfig :: NotificationConfig

-- | The time at which the notification should be delivered.
ncDeliveryTime :: Lens' NotificationConfig (Maybe UTCTime)

-- | Describes how important the notification is. Allowed values are: -
--   DEFAULT - Notifications of default importance. A chime will be played
--   to alert users.
ncLevel :: Lens' NotificationConfig (Maybe Text)

-- | A single menu command that is part of a Contact.
--   
--   <i>See:</i> <a>command</a> smart constructor.
data Command

-- | Creates a value of <a>Command</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cType</a></li>
--   </ul>
command :: Command

-- | The type of operation this command corresponds to. Allowed values are:
--   - TAKE_A_NOTE - Shares a timeline item with the transcription of user
--   speech from the "Take a note" voice menu command. - POST_AN_UPDATE -
--   Shares a timeline item with the transcription of user speech from the
--   "Post an update" voice menu command.
cType :: Lens' Command (Maybe Text)

-- | A list of Locations. This is the response from the server to GET
--   requests on the locations collection.
--   
--   <i>See:</i> <a>locationsListResponse</a> smart constructor.
data LocationsListResponse

-- | Creates a value of <a>LocationsListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>llrKind</a></li>
--   <li><a>llrItems</a></li>
--   </ul>
locationsListResponse :: LocationsListResponse

-- | The type of resource. This is always mirror#locationsList.
llrKind :: Lens' LocationsListResponse Text

-- | The list of locations.
llrItems :: Lens' LocationsListResponse [Location]

-- | A geographic location that can be associated with a timeline item.
--   
--   <i>See:</i> <a>location</a> smart constructor.
data Location

-- | Creates a value of <a>Location</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lKind</a></li>
--   <li><a>lLatitude</a></li>
--   <li><a>lAddress</a></li>
--   <li><a>lDisplayName</a></li>
--   <li><a>lId</a></li>
--   <li><a>lAccuracy</a></li>
--   <li><a>lLongitude</a></li>
--   <li><a>lTimestamp</a></li>
--   </ul>
location :: Location

-- | The type of resource. This is always mirror#location.
lKind :: Lens' Location Text

-- | The latitude, in degrees.
lLatitude :: Lens' Location (Maybe Double)

-- | The full address of the location.
lAddress :: Lens' Location (Maybe Text)

-- | The name to be displayed. This may be a business name or a
--   user-defined place, such as "Home".
lDisplayName :: Lens' Location (Maybe Text)

-- | The ID of the location.
lId :: Lens' Location (Maybe Text)

-- | The accuracy of the location fix in meters.
lAccuracy :: Lens' Location (Maybe Double)

-- | The longitude, in degrees.
lLongitude :: Lens' Location (Maybe Double)

-- | The time at which this location was captured, formatted according to
--   RFC 3339.
lTimestamp :: Lens' Location (Maybe UTCTime)

-- | A notification delivered by the API.
--   
--   <i>See:</i> <a>notification</a> smart constructor.
data Notification

-- | Creates a value of <a>Notification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nOperation</a></li>
--   <li><a>nItemId</a></li>
--   <li><a>nCollection</a></li>
--   <li><a>nUserActions</a></li>
--   <li><a>nVerifyToken</a></li>
--   <li><a>nUserToken</a></li>
--   </ul>
notification :: Notification

-- | The type of operation that generated the notification.
nOperation :: Lens' Notification (Maybe Text)

-- | The ID of the item that generated the notification.
nItemId :: Lens' Notification (Maybe Text)

-- | The collection that generated the notification.
nCollection :: Lens' Notification (Maybe Text)

-- | A list of actions taken by the user that triggered the notification.
nUserActions :: Lens' Notification [UserAction]

-- | The secret verify token provided by the service when it subscribed for
--   notifications.
nVerifyToken :: Lens' Notification (Maybe Text)

-- | The user token provided by the service when it subscribed for
--   notifications.
nUserToken :: Lens' Notification (Maybe Text)

-- | A person or group that can be used as a creator or a contact.
--   
--   <i>See:</i> <a>contact</a> smart constructor.
data Contact

-- | Creates a value of <a>Contact</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>conAcceptCommands</a></li>
--   <li><a>conSharingFeatures</a></li>
--   <li><a>conImageURLs</a></li>
--   <li><a>conPriority</a></li>
--   <li><a>conKind</a></li>
--   <li><a>conAcceptTypes</a></li>
--   <li><a>conPhoneNumber</a></li>
--   <li><a>conDisplayName</a></li>
--   <li><a>conSource</a></li>
--   <li><a>conId</a></li>
--   <li><a>conType</a></li>
--   <li><a>conSpeakableName</a></li>
--   </ul>
contact :: Contact

-- | A list of voice menu commands that a contact can handle. Glass shows
--   up to three contacts for each voice menu command. If there are more
--   than that, the three contacts with the highest priority are shown for
--   that particular command.
conAcceptCommands :: Lens' Contact [Command]

-- | A list of sharing features that a contact can handle. Allowed values
--   are: - ADD_CAPTION
conSharingFeatures :: Lens' Contact [Text]

-- | Set of image URLs to display for a contact. Most contacts will have a
--   single image, but a "group" contact may include up to 8 image URLs and
--   they will be resized and cropped into a mosaic on the client.
conImageURLs :: Lens' Contact [Text]

-- | Priority for the contact to determine ordering in a list of contacts.
--   Contacts with higher priorities will be shown before ones with lower
--   priorities.
conPriority :: Lens' Contact (Maybe Word32)

-- | The type of resource. This is always mirror#contact.
conKind :: Lens' Contact Text

-- | A list of MIME types that a contact supports. The contact will be
--   shown to the user if any of its acceptTypes matches any of the types
--   of the attachments on the item. If no acceptTypes are given, the
--   contact will be shown for all items.
conAcceptTypes :: Lens' Contact [Text]

-- | Primary phone number for the contact. This can be a fully-qualified
--   number, with country calling code and area code, or a local number.
conPhoneNumber :: Lens' Contact (Maybe Text)

-- | The name to display for this contact.
conDisplayName :: Lens' Contact (Maybe Text)

-- | The ID of the application that created this contact. This is populated
--   by the API
conSource :: Lens' Contact (Maybe Text)

-- | An ID for this contact. This is generated by the application and is
--   treated as an opaque token.
conId :: Lens' Contact (Maybe Text)

-- | The type for this contact. This is used for sorting in UIs. Allowed
--   values are: - INDIVIDUAL - Represents a single person. This is the
--   default. - GROUP - Represents more than a single person.
conType :: Lens' Contact (Maybe Text)

-- | Name of this contact as it should be pronounced. If this contact's
--   name must be spoken as part of a voice disambiguation menu, this name
--   is used as the expected pronunciation. This is useful for contact
--   names with unpronounceable characters or whose display spelling is
--   otherwise not phonetic.
conSpeakableName :: Lens' Contact (Maybe Text)
data AuthToken

-- | Creates a value of <a>AuthToken</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>atAuthToken</a></li>
--   <li><a>atType</a></li>
--   </ul>
authToken :: AuthToken
atAuthToken :: Lens' AuthToken (Maybe Text)
atType :: Lens' AuthToken (Maybe Text)

-- | A list of Attachments. This is the response from the server to GET
--   requests on the attachments collection.
--   
--   <i>See:</i> <a>attachmentsListResponse</a> smart constructor.
data AttachmentsListResponse

-- | Creates a value of <a>AttachmentsListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>alrKind</a></li>
--   <li><a>alrItems</a></li>
--   </ul>
attachmentsListResponse :: AttachmentsListResponse

-- | The type of resource. This is always mirror#attachmentsList.
alrKind :: Lens' AttachmentsListResponse Text

-- | The list of attachments.
alrItems :: Lens' AttachmentsListResponse [Attachment]

-- | A custom menu item that can be presented to the user by a timeline
--   item.
--   
--   <i>See:</i> <a>menuItem</a> smart constructor.
data MenuItem

-- | Creates a value of <a>MenuItem</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>miValues</a></li>
--   <li><a>miRemoveWhenSelected</a></li>
--   <li><a>miAction</a></li>
--   <li><a>miPayload</a></li>
--   <li><a>miContextualCommand</a></li>
--   <li><a>miId</a></li>
--   </ul>
menuItem :: MenuItem

-- | For CUSTOM items, a list of values controlling the appearance of the
--   menu item in each of its states. A value for the DEFAULT state must be
--   provided. If the PENDING or CONFIRMED states are missing, they will
--   not be shown.
miValues :: Lens' MenuItem [MenuValue]

-- | If set to true on a CUSTOM menu item, that item will be removed from
--   the menu after it is selected.
miRemoveWhenSelected :: Lens' MenuItem (Maybe Bool)

-- | Controls the behavior when the user picks the menu option. Allowed
--   values are: - CUSTOM - Custom action set by the service. When the user
--   selects this menuItem, the API triggers a notification to your
--   callbackUrl with the userActions.type set to CUSTOM and the
--   userActions.payload set to the ID of this menu item. This is the
--   default value. - Built-in actions: - REPLY - Initiate a reply to the
--   timeline item using the voice recording UI. The creator attribute must
--   be set in the timeline item for this menu to be available. - REPLY_ALL
--   - Same behavior as REPLY. The original timeline item's recipients will
--   be added to the reply item. - DELETE - Delete the timeline item. -
--   SHARE - Share the timeline item with the available contacts. -
--   READ_ALOUD - Read the timeline item's speakableText aloud; if this
--   field is not set, read the text field; if none of those fields are
--   set, this menu item is ignored. - GET_MEDIA_INPUT - Allow users to
--   provide media payloads to Glassware from a menu item (currently, only
--   transcribed text from voice input is supported). Subscribe to
--   notifications when users invoke this menu item to receive the timeline
--   item ID. Retrieve the media from the timeline item in the payload
--   property. - VOICE_CALL - Initiate a phone call using the timeline
--   item's creator.phoneNumber attribute as recipient. - NAVIGATE -
--   Navigate to the timeline item's location. - TOGGLE_PINNED - Toggle the
--   isPinned state of the timeline item. - OPEN_URI - Open the payload of
--   the menu item in the browser. - PLAY_VIDEO - Open the payload of the
--   menu item in the Glass video player. - SEND_MESSAGE - Initiate sending
--   a message to the timeline item's creator: - If the creator.phoneNumber
--   is set and Glass is connected to an Android phone, the message is an
--   SMS. - Otherwise, if the creator.email is set, the message is an
--   email.
miAction :: Lens' MenuItem (Maybe Text)

-- | A generic payload whose meaning changes depending on this MenuItem's
--   action. - When the action is OPEN_URI, the payload is the URL of the
--   website to view. - When the action is PLAY_VIDEO, the payload is the
--   streaming URL of the video - When the action is GET_MEDIA_INPUT, the
--   payload is the text transcription of a user's speech input
miPayload :: Lens' MenuItem (Maybe Text)

-- | The ContextualMenus.Command associated with this MenuItem (e.g.
--   READ_ALOUD). The voice label for this command will be displayed in the
--   voice menu and the touch label will be displayed in the touch menu.
--   Note that the default menu value's display name will be overriden if
--   you specify this property. Values that do not correspond to a
--   ContextualMenus.Command name will be ignored.
miContextualCommand :: Lens' MenuItem (Maybe Text)

-- | The ID for this menu item. This is generated by the application and is
--   treated as an opaque token.
miId :: Lens' MenuItem (Maybe Text)

-- | A setting for Glass.
--   
--   <i>See:</i> <a>setting</a> smart constructor.
data Setting

-- | Creates a value of <a>Setting</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sKind</a></li>
--   <li><a>sValue</a></li>
--   <li><a>sId</a></li>
--   </ul>
setting :: Setting

-- | The type of resource. This is always mirror#setting.
sKind :: Lens' Setting Text

-- | The setting value, as a string.
sValue :: Lens' Setting (Maybe Text)

-- | The setting's ID. The following IDs are valid: - locale - The key to
--   the user’s language/locale (BCP 47 identifier) that Glassware should
--   use to render localized content. - timezone - The key to the user’s
--   current time zone region as defined in the tz database. Example:
--   America/Los_Angeles.
sId :: Lens' Setting (Maybe Text)

-- | Represents media content, such as a photo, that can be attached to a
--   timeline item.
--   
--   <i>See:</i> <a>attachment</a> smart constructor.
data Attachment

-- | Creates a value of <a>Attachment</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aContentURL</a></li>
--   <li><a>aId</a></li>
--   <li><a>aIsProcessingContent</a></li>
--   <li><a>aContentType</a></li>
--   </ul>
attachment :: Attachment

-- | The URL for the content.
aContentURL :: Lens' Attachment (Maybe Text)

-- | The ID of the attachment.
aId :: Lens' Attachment (Maybe Text)

-- | Indicates that the contentUrl is not available because the attachment
--   content is still being processed. If the caller wishes to retrieve the
--   content, it should try again later.
aIsProcessingContent :: Lens' Attachment (Maybe Bool)

-- | The MIME type of the attachment.
aContentType :: Lens' Attachment (Maybe Text)

-- | Represents an account passed into the Account Manager on Glass.
--   
--   <i>See:</i> <a>account</a> smart constructor.
data Account

-- | Creates a value of <a>Account</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aAuthTokens</a></li>
--   <li><a>aUserData</a></li>
--   <li><a>aPassword</a></li>
--   <li><a>aFeatures</a></li>
--   </ul>
account :: Account
aAuthTokens :: Lens' Account [AuthToken]
aUserData :: Lens' Account [UserData]
aPassword :: Lens' Account (Maybe Text)
aFeatures :: Lens' Account [Text]
data UserData

-- | Creates a value of <a>UserData</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>udValue</a></li>
--   <li><a>udKey</a></li>
--   </ul>
userData :: UserData
udValue :: Lens' UserData (Maybe Text)
udKey :: Lens' UserData (Maybe Text)

-- | Represents an action taken by the user that triggered a notification.
--   
--   <i>See:</i> <a>userAction</a> smart constructor.
data UserAction

-- | Creates a value of <a>UserAction</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uaPayload</a></li>
--   <li><a>uaType</a></li>
--   </ul>
userAction :: UserAction

-- | An optional payload for the action. For actions of type CUSTOM, this
--   is the ID of the custom menu item that was selected.
uaPayload :: Lens' UserAction (Maybe Text)

-- | The type of action. The value of this can be: - SHARE - the user
--   shared an item. - REPLY - the user replied to an item. - REPLY_ALL -
--   the user replied to all recipients of an item. - CUSTOM - the user
--   selected a custom menu item on the timeline item. - DELETE - the user
--   deleted the item. - PIN - the user pinned the item. - UNPIN - the user
--   unpinned the item. - LAUNCH - the user initiated a voice command. In
--   the future, additional types may be added. UserActions with
--   unrecognized types should be ignored.
uaType :: Lens' UserAction (Maybe Text)

-- | A list of timeline items. This is the response from the server to GET
--   requests on the timeline collection.
--   
--   <i>See:</i> <a>timelineListResponse</a> smart constructor.
data TimelineListResponse

-- | Creates a value of <a>TimelineListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tlrNextPageToken</a></li>
--   <li><a>tlrKind</a></li>
--   <li><a>tlrItems</a></li>
--   </ul>
timelineListResponse :: TimelineListResponse

-- | The next page token. Provide this as the pageToken parameter in the
--   request to retrieve the next page of results.
tlrNextPageToken :: Lens' TimelineListResponse (Maybe Text)

-- | The type of resource. This is always mirror#timeline.
tlrKind :: Lens' TimelineListResponse Text

-- | Items in the timeline.
tlrItems :: Lens' TimelineListResponse [TimelineItem]

-- | A list of Contacts representing contacts. This is the response from
--   the server to GET requests on the contacts collection.
--   
--   <i>See:</i> <a>contactsListResponse</a> smart constructor.
data ContactsListResponse

-- | Creates a value of <a>ContactsListResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clrKind</a></li>
--   <li><a>clrItems</a></li>
--   </ul>
contactsListResponse :: ContactsListResponse

-- | The type of resource. This is always mirror#contacts.
clrKind :: Lens' ContactsListResponse Text

-- | Contact list.
clrItems :: Lens' ContactsListResponse [Contact]

-- | A single value that is part of a MenuItem.
--   
--   <i>See:</i> <a>menuValue</a> smart constructor.
data MenuValue

-- | Creates a value of <a>MenuValue</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mvState</a></li>
--   <li><a>mvDisplayName</a></li>
--   <li><a>mvIconURL</a></li>
--   </ul>
menuValue :: MenuValue

-- | The state that this value applies to. Allowed values are: - DEFAULT -
--   Default value shown when displayed in the menuItems list. - PENDING -
--   Value shown when the menuItem has been selected by the user but can
--   still be cancelled. - CONFIRMED - Value shown when the menuItem has
--   been selected by the user and can no longer be cancelled.
mvState :: Lens' MenuValue (Maybe Text)

-- | The name to display for the menu item. If you specify this property
--   for a built-in menu item, the default contextual voice command for
--   that menu item is not shown.
mvDisplayName :: Lens' MenuValue (Maybe Text)

-- | URL of an icon to display with the menu item.
mvIconURL :: Lens' MenuValue (Maybe Text)

-- | A subscription to events on a collection.
--   
--   <i>See:</i> <a>subscription</a> smart constructor.
data Subscription

-- | Creates a value of <a>Subscription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>subCallbackURL</a></li>
--   <li><a>subOperation</a></li>
--   <li><a>subNotification</a></li>
--   <li><a>subKind</a></li>
--   <li><a>subCollection</a></li>
--   <li><a>subVerifyToken</a></li>
--   <li><a>subUserToken</a></li>
--   <li><a>subId</a></li>
--   <li><a>subUpdated</a></li>
--   </ul>
subscription :: Subscription

-- | The URL where notifications should be delivered (must start with
--   https://).
subCallbackURL :: Lens' Subscription (Maybe Text)

-- | A list of operations that should be subscribed to. An empty list
--   indicates that all operations on the collection should be subscribed
--   to. Allowed values are: - UPDATE - The item has been updated. - INSERT
--   - A new item has been inserted. - DELETE - The item has been deleted.
--   - MENU_ACTION - A custom menu item has been triggered by the user.
subOperation :: Lens' Subscription [Text]

-- | Container object for notifications. This is not populated in the
--   Subscription resource.
subNotification :: Lens' Subscription (Maybe Notification)

-- | The type of resource. This is always mirror#subscription.
subKind :: Lens' Subscription Text

-- | The collection to subscribe to. Allowed values are: - timeline -
--   Changes in the timeline including insertion, deletion, and updates. -
--   locations - Location updates. - settings - Settings updates.
subCollection :: Lens' Subscription (Maybe Text)

-- | A secret token sent to the subscriber in notifications so that it can
--   verify that the notification was generated by Google.
subVerifyToken :: Lens' Subscription (Maybe Text)

-- | An opaque token sent to the subscriber in notifications so that it can
--   determine the ID of the user.
subUserToken :: Lens' Subscription (Maybe Text)

-- | The ID of the subscription.
subId :: Lens' Subscription (Maybe Text)

-- | The time at which this subscription was last modified, formatted
--   according to RFC 3339.
subUpdated :: Lens' Subscription (Maybe UTCTime)

-- | Each item in the user's timeline is represented as a TimelineItem JSON
--   structure, described below.
--   
--   <i>See:</i> <a>timelineItem</a> smart constructor.
data TimelineItem

-- | Creates a value of <a>TimelineItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tiCreator</a></li>
--   <li><a>tiDisplayTime</a></li>
--   <li><a>tiEtag</a></li>
--   <li><a>tiIsDeleted</a></li>
--   <li><a>tiPinScore</a></li>
--   <li><a>tiAttachments</a></li>
--   <li><a>tiLocation</a></li>
--   <li><a>tiMenuItems</a></li>
--   <li><a>tiNotification</a></li>
--   <li><a>tiText</a></li>
--   <li><a>tiKind</a></li>
--   <li><a>tiCreated</a></li>
--   <li><a>tiSpeakableText</a></li>
--   <li><a>tiIsBundleCover</a></li>
--   <li><a>tiSpeakableType</a></li>
--   <li><a>tiBundleId</a></li>
--   <li><a>tiCanonicalURL</a></li>
--   <li><a>tiSelfLink</a></li>
--   <li><a>tiIsPinned</a></li>
--   <li><a>tiSourceItemId</a></li>
--   <li><a>tiId</a></li>
--   <li><a>tiHTML</a></li>
--   <li><a>tiUpdated</a></li>
--   <li><a>tiRecipients</a></li>
--   <li><a>tiTitle</a></li>
--   <li><a>tiInReplyTo</a></li>
--   </ul>
timelineItem :: TimelineItem

-- | The user or group that created this item.
tiCreator :: Lens' TimelineItem (Maybe Contact)

-- | The time that should be displayed when this item is viewed in the
--   timeline, formatted according to RFC 3339. This user's timeline is
--   sorted chronologically on display time, so this will also determine
--   where the item is displayed in the timeline. If not set by the
--   service, the display time defaults to the updated time.
tiDisplayTime :: Lens' TimelineItem (Maybe UTCTime)

-- | ETag for this item.
tiEtag :: Lens' TimelineItem (Maybe Text)

-- | When true, indicates this item is deleted, and only the ID property is
--   set.
tiIsDeleted :: Lens' TimelineItem (Maybe Bool)

-- | For pinned items, this determines the order in which the item is
--   displayed in the timeline, with a higher score appearing closer to the
--   clock. Note: setting this field is currently not supported.
tiPinScore :: Lens' TimelineItem (Maybe Int32)

-- | A list of media attachments associated with this item. As a
--   convenience, you can refer to attachments in your HTML payloads with
--   the attachment or cid scheme. For example: - attachment: where
--   attachment_index is the 0-based index of this array. - cid: where
--   attachment_id is the ID of the attachment.
tiAttachments :: Lens' TimelineItem [Attachment]

-- | The geographic location associated with this item.
tiLocation :: Lens' TimelineItem (Maybe Location)

-- | A list of menu items that will be presented to the user when this item
--   is selected in the timeline.
tiMenuItems :: Lens' TimelineItem [MenuItem]

-- | Controls how notifications for this item are presented on the device.
--   If this is missing, no notification will be generated.
tiNotification :: Lens' TimelineItem (Maybe NotificationConfig)

-- | Text content of this item.
tiText :: Lens' TimelineItem (Maybe Text)

-- | The type of resource. This is always mirror#timelineItem.
tiKind :: Lens' TimelineItem Text

-- | The time at which this item was created, formatted according to RFC
--   3339.
tiCreated :: Lens' TimelineItem (Maybe UTCTime)

-- | The speakable version of the content of this item. Along with the
--   READ_ALOUD menu item, use this field to provide text that would be
--   clearer when read aloud, or to provide extended information to what is
--   displayed visually on Glass. Glassware should also specify the
--   speakableType field, which will be spoken before this text in cases
--   where the additional context is useful, for example when the user
--   requests that the item be read aloud following a notification.
tiSpeakableText :: Lens' TimelineItem (Maybe Text)

-- | Whether this item is a bundle cover. If an item is marked as a bundle
--   cover, it will be the entry point to the bundle of items that have the
--   same bundleId as that item. It will be shown only on the main timeline
--   — not within the opened bundle. On the main timeline, items that are
--   shown are: - Items that have isBundleCover set to true - Items that do
--   not have a bundleId In a bundle sub-timeline, items that are shown
--   are: - Items that have the bundleId in question AND isBundleCover set
--   to false
tiIsBundleCover :: Lens' TimelineItem (Maybe Bool)

-- | A speakable description of the type of this item. This will be
--   announced to the user prior to reading the content of the item in
--   cases where the additional context is useful, for example when the
--   user requests that the item be read aloud following a notification.
--   This should be a short, simple noun phrase such as "Email", "Text
--   message", or "Daily Planet News Update". Glassware are encouraged to
--   populate this field for every timeline item, even if the item does not
--   contain speakableText or text so that the user can learn the type of
--   the item without looking at the screen.
tiSpeakableType :: Lens' TimelineItem (Maybe Text)

-- | The bundle ID for this item. Services can specify a bundleId to group
--   many items together. They appear under a single top-level item on the
--   device.
tiBundleId :: Lens' TimelineItem (Maybe Text)

-- | A canonical URL pointing to the canonical/high quality version of the
--   data represented by the timeline item.
tiCanonicalURL :: Lens' TimelineItem (Maybe Text)

-- | A URL that can be used to retrieve this item.
tiSelfLink :: Lens' TimelineItem (Maybe Text)

-- | When true, indicates this item is pinned, which means it's grouped
--   alongside "active" items like navigation and hangouts, on the opposite
--   side of the home screen from historical (non-pinned) timeline items.
--   You can allow the user to toggle the value of this property with the
--   TOGGLE_PINNED built-in menu item.
tiIsPinned :: Lens' TimelineItem (Maybe Bool)

-- | Opaque string you can use to map a timeline item to data in your own
--   service.
tiSourceItemId :: Lens' TimelineItem (Maybe Text)

-- | The ID of the timeline item. This is unique within a user's timeline.
tiId :: Lens' TimelineItem (Maybe Text)

-- | HTML content for this item. If both text and html are provided for an
--   item, the html will be rendered in the timeline. Allowed HTML elements
--   - You can use these elements in your timeline cards. - Headers: h1,
--   h2, h3, h4, h5, h6 - Images: img - Lists: li, ol, ul - HTML5
--   semantics: article, aside, details, figure, figcaption, footer,
--   header, nav, section, summary, time - Structural: blockquote, br, div,
--   hr, p, span - Style: b, big, center, em, i, u, s, small, strike,
--   strong, style, sub, sup - Tables: table, tbody, td, tfoot, th, thead,
--   tr Blocked HTML elements: These elements and their contents are
--   removed from HTML payloads. - Document headers: head, title - Embeds:
--   audio, embed, object, source, video - Frames: frame, frameset -
--   Scripting: applet, script Other elements: Any elements that aren't
--   listed are removed, but their contents are preserved.
tiHTML :: Lens' TimelineItem (Maybe Text)

-- | The time at which this item was last modified, formatted according to
--   RFC 3339.
tiUpdated :: Lens' TimelineItem (Maybe UTCTime)

-- | A list of users or groups that this item has been shared with.
tiRecipients :: Lens' TimelineItem [Contact]

-- | The title of this item.
tiTitle :: Lens' TimelineItem (Maybe Text)

-- | If this item was generated as a reply to another item, this field will
--   be set to the ID of the item being replied to. This can be used to
--   attach a reply to the appropriate conversation or post.
tiInReplyTo :: Lens' TimelineItem (Maybe Text)

-- | A list of Subscriptions. This is the response from the server to GET
--   requests on the subscription collection.
--   
--   <i>See:</i> <a>subscriptionsListResponse</a> smart constructor.
data SubscriptionsListResponse

-- | Creates a value of <a>SubscriptionsListResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slrKind</a></li>
--   <li><a>slrItems</a></li>
--   </ul>
subscriptionsListResponse :: SubscriptionsListResponse

-- | The type of resource. This is always mirror#subscriptionsList.
slrKind :: Lens' SubscriptionsListResponse Text

-- | The list of subscriptions.
slrItems :: Lens' SubscriptionsListResponse [Subscription]
