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


-- | Google Drive SDK.
--   
--   Manages files in Drive including uploading, downloading, searching,
--   detecting changes, and updating sharing permissions.
--   
--   <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>v3</tt> of the API.
@package gogol-drive
@version 0.3.0


module Network.Google.Drive.Types

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

-- | View metadata for files in your Google Drive
driveMetadataReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/drive.metadata.readonly"]

-- | View the photos, videos and albums in your Google Photos
drivePhotosReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/drive.photos.readonly"]

-- | View and manage its own configuration data in your Google Drive
driveAppDataScope :: Proxy '["https://www.googleapis.com/auth/drive.appdata"]

-- | View the files in your Google Drive
driveReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/drive.readonly"]

-- | View and manage the files in your Google Drive
driveScope :: Proxy '["https://www.googleapis.com/auth/drive"]

-- | View and manage Google Drive files and folders that you have opened or
--   created with this app
driveFileScope :: Proxy '["https://www.googleapis.com/auth/drive.file"]

-- | View and manage metadata of files in your Google Drive
driveMetadataScope :: Proxy '["https://www.googleapis.com/auth/drive.metadata"]

-- | Modify your Google Apps Script scripts' behavior
driveScriptsScope :: Proxy '["https://www.googleapis.com/auth/drive.scripts"]

-- | A list of files.
--   
--   <i>See:</i> <a>fileList</a> smart constructor.
data FileList

-- | Creates a value of <a>FileList</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>flNextPageToken</a></li>
--   <li><a>flKind</a></li>
--   <li><a>flFiles</a></li>
--   </ul>
fileList :: FileList

-- | The page token for the next page of files. This will be absent if the
--   end of the files list has been reached. If the token is rejected for
--   any reason, it should be discarded, and pagination should be restarted
--   from the first page of results.
flNextPageToken :: Lens' FileList (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#fileList".
flKind :: Lens' FileList Text

-- | The list of files. If nextPageToken is populated, then this list may
--   be incomplete and an additional page of results should be fetched.
flFiles :: Lens' FileList [File]

-- | The source of files to list.
data FilesListCorpus

-- | <tt>domain</tt> Files shared to the user's domain.
FLCDomain :: FilesListCorpus

-- | <tt>user</tt> Files owned by or shared to the user.
FLCUser :: FilesListCorpus

-- | The file content to which the comment refers, typically within the
--   anchor region. For a text file, for example, this would be the text at
--   the location of the comment.
--   
--   <i>See:</i> <a>commentQuotedFileContent</a> smart constructor.
data CommentQuotedFileContent

-- | Creates a value of <a>CommentQuotedFileContent</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>cqfcValue</a></li>
--   <li><a>cqfcMimeType</a></li>
--   </ul>
commentQuotedFileContent :: CommentQuotedFileContent

-- | The quoted content itself. This is interpreted as plain text if set
--   through the API.
cqfcValue :: Lens' CommentQuotedFileContent (Maybe Text)

-- | The MIME type of the quoted content.
cqfcMimeType :: Lens' CommentQuotedFileContent (Maybe Text)

-- | The user's storage quota limits and usage. All fields are measured in
--   bytes.
--   
--   <i>See:</i> <a>aboutStorageQuota</a> smart constructor.
data AboutStorageQuota

-- | Creates a value of <a>AboutStorageQuota</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>asqUsageInDriveTrash</a></li>
--   <li><a>asqLimit</a></li>
--   <li><a>asqUsage</a></li>
--   <li><a>asqUsageInDrive</a></li>
--   </ul>
aboutStorageQuota :: AboutStorageQuota

-- | The usage by trashed files in Google Drive.
asqUsageInDriveTrash :: Lens' AboutStorageQuota (Maybe Int64)

-- | The usage limit, if applicable. This will not be present if the user
--   has unlimited storage.
asqLimit :: Lens' AboutStorageQuota (Maybe Int64)

-- | The total usage across all services.
asqUsage :: Lens' AboutStorageQuota (Maybe Int64)

-- | The usage by all files in Google Drive.
asqUsageInDrive :: Lens' AboutStorageQuota (Maybe Int64)

-- | A reply to a comment on a file.
--   
--   <i>See:</i> <a>reply</a> smart constructor.
data Reply

-- | Creates a value of <a>Reply</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>rHTMLContent</a></li>
--   <li><a>rModifiedTime</a></li>
--   <li><a>rCreatedTime</a></li>
--   <li><a>rKind</a></li>
--   <li><a>rAction</a></li>
--   <li><a>rContent</a></li>
--   <li><a>rAuthor</a></li>
--   <li><a>rId</a></li>
--   <li><a>rDeleted</a></li>
--   </ul>
reply :: Reply

-- | The content of the reply with HTML formatting.
rHTMLContent :: Lens' Reply (Maybe Text)

-- | The last time the reply was modified (RFC 3339 date-time).
rModifiedTime :: Lens' Reply (Maybe UTCTime)

-- | The time at which the reply was created (RFC 3339 date-time).
rCreatedTime :: Lens' Reply (Maybe UTCTime)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#reply".
rKind :: Lens' Reply Text

-- | The action the reply performed to the parent comment. Valid values
--   are: - resolve - reopen
rAction :: Lens' Reply (Maybe Text)

-- | The plain text content of the reply. This field is used for setting
--   the content, while htmlContent should be displayed. This is required
--   on creates if no action is specified.
rContent :: Lens' Reply (Maybe Text)

-- | The user who created the reply.
rAuthor :: Lens' Reply (Maybe User)

-- | The ID of the reply.
rId :: Lens' Reply (Maybe Text)

-- | Whether the reply has been deleted. A deleted reply has no content.
rDeleted :: Lens' Reply (Maybe Bool)

-- | A map of source MIME type to possible targets for all supported
--   imports.
--   
--   <i>See:</i> <a>aboutImportFormats</a> smart constructor.
data AboutImportFormats

-- | Creates a value of <a>AboutImportFormats</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>aifAddtional</a></li>
--   </ul>
aboutImportFormats :: HashMap Text [Text] -> AboutImportFormats
aifAddtional :: Lens' AboutImportFormats (HashMap Text [Text])

-- | Capabilities the current user has on the file.
--   
--   <i>See:</i> <a>fileCapabilities</a> smart constructor.
data FileCapabilities

-- | Creates a value of <a>FileCapabilities</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>fcCanComment</a></li>
--   <li><a>fcCanEdit</a></li>
--   <li><a>fcCanReadRevisions</a></li>
--   <li><a>fcCanCopy</a></li>
--   <li><a>fcCanShare</a></li>
--   </ul>
fileCapabilities :: FileCapabilities

-- | Whether the user can comment on the file.
fcCanComment :: Lens' FileCapabilities (Maybe Bool)

-- | Whether the user can edit the file's content.
fcCanEdit :: Lens' FileCapabilities (Maybe Bool)

-- | Whether the current user has read access to the Revisions resource of
--   the file.
fcCanReadRevisions :: Lens' FileCapabilities (Maybe Bool)

-- | Whether the user can copy the file.
fcCanCopy :: Lens' FileCapabilities (Maybe Bool)

-- | Whether the user can modify the file's permissions and sharing
--   settings.
fcCanShare :: Lens' FileCapabilities (Maybe Bool)

-- | A list of replies to a comment on a file.
--   
--   <i>See:</i> <a>replyList</a> smart constructor.
data ReplyList

-- | Creates a value of <a>ReplyList</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>rlNextPageToken</a></li>
--   <li><a>rlKind</a></li>
--   <li><a>rlReplies</a></li>
--   </ul>
replyList :: ReplyList

-- | The page token for the next page of replies. This will be absent if
--   the end of the replies list has been reached. If the token is rejected
--   for any reason, it should be discarded, and pagination should be
--   restarted from the first page of results.
rlNextPageToken :: Lens' ReplyList (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#replyList".
rlKind :: Lens' ReplyList Text

-- | The list of replies. If nextPageToken is populated, then this list may
--   be incomplete and an additional page of results should be fetched.
rlReplies :: Lens' ReplyList [Reply]

-- | A thumbnail for the file. This will only be used if Drive cannot
--   generate a standard thumbnail.
--   
--   <i>See:</i> <a>fileContentHintsThumbnail</a> smart constructor.
data FileContentHintsThumbnail

-- | Creates a value of <a>FileContentHintsThumbnail</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>fchtImage</a></li>
--   <li><a>fchtMimeType</a></li>
--   </ul>
fileContentHintsThumbnail :: FileContentHintsThumbnail

-- | The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
fchtImage :: Lens' FileContentHintsThumbnail (Maybe ByteString)

-- | The MIME type of the thumbnail.
fchtMimeType :: Lens' FileContentHintsThumbnail (Maybe Text)

-- | An notification channel used to watch for resource changes.
--   
--   <i>See:</i> <a>channel</a> smart constructor.
data Channel

-- | Creates a value of <a>Channel</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>cResourceURI</a></li>
--   <li><a>cResourceId</a></li>
--   <li><a>cKind</a></li>
--   <li><a>cExpiration</a></li>
--   <li><a>cToken</a></li>
--   <li><a>cAddress</a></li>
--   <li><a>cPayload</a></li>
--   <li><a>cParams</a></li>
--   <li><a>cId</a></li>
--   <li><a>cType</a></li>
--   </ul>
channel :: Channel

-- | A version-specific identifier for the watched resource.
cResourceURI :: Lens' Channel (Maybe Text)

-- | An opaque ID that identifies the resource being watched on this
--   channel. Stable across different API versions.
cResourceId :: Lens' Channel (Maybe Text)

-- | Identifies this as a notification channel used to watch for changes to
--   a resource. Value: the fixed string "api#channel".
cKind :: Lens' Channel Text

-- | Date and time of notification channel expiration, expressed as a Unix
--   timestamp, in milliseconds. Optional.
cExpiration :: Lens' Channel (Maybe Int64)

-- | An arbitrary string delivered to the target address with each
--   notification delivered over this channel. Optional.
cToken :: Lens' Channel (Maybe Text)

-- | The address where notifications are delivered for this channel.
cAddress :: Lens' Channel (Maybe Text)

-- | A Boolean value to indicate whether payload is wanted. Optional.
cPayload :: Lens' Channel (Maybe Bool)

-- | Additional parameters controlling delivery channel behavior. Optional.
cParams :: Lens' Channel (Maybe ChannelParams)

-- | A UUID or similar unique string that identifies this channel.
cId :: Lens' Channel (Maybe Text)

-- | The type of delivery mechanism used for this channel.
cType :: Lens' Channel (Maybe Text)

-- | Additional metadata about video media. This may not be available
--   immediately upon upload.
--   
--   <i>See:</i> <a>fileVideoMediaMetadata</a> smart constructor.
data FileVideoMediaMetadata

-- | Creates a value of <a>FileVideoMediaMetadata</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>fvmmHeight</a></li>
--   <li><a>fvmmWidth</a></li>
--   <li><a>fvmmDurationMillis</a></li>
--   </ul>
fileVideoMediaMetadata :: FileVideoMediaMetadata

-- | The height of the video in pixels.
fvmmHeight :: Lens' FileVideoMediaMetadata (Maybe Int32)

-- | The width of the video in pixels.
fvmmWidth :: Lens' FileVideoMediaMetadata (Maybe Int32)

-- | The duration of the video in milliseconds.
fvmmDurationMillis :: Lens' FileVideoMediaMetadata (Maybe Int64)

-- | A collection of arbitrary key-value pairs which are private to the
--   requesting app. Entries with null values are cleared in update and
--   copy requests.
--   
--   <i>See:</i> <a>fileAppProperties</a> smart constructor.
data FileAppProperties

-- | Creates a value of <a>FileAppProperties</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>fapAddtional</a></li>
--   </ul>
fileAppProperties :: HashMap Text Text -> FileAppProperties
fapAddtional :: Lens' FileAppProperties (HashMap Text Text)

-- | A change to a file.
--   
--   <i>See:</i> <a>change</a> smart constructor.
data Change

-- | Creates a value of <a>Change</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>chaRemoved</a></li>
--   <li><a>chaTime</a></li>
--   <li><a>chaKind</a></li>
--   <li><a>chaFileId</a></li>
--   <li><a>chaFile</a></li>
--   </ul>
change :: Change

-- | Whether the file has been removed from the view of the changes list,
--   for example by deletion or lost access.
chaRemoved :: Lens' Change (Maybe Bool)

-- | The time of this change (RFC 3339 date-time).
chaTime :: Lens' Change (Maybe UTCTime)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#change".
chaKind :: Lens' Change Text

-- | The ID of the file which has changed.
chaFileId :: Lens' Change (Maybe Text)

-- | The updated state of the file. Present if the file has not been
--   removed.
chaFile :: Lens' Change (Maybe File)

-- | A map of source MIME type to possible targets for all supported
--   exports.
--   
--   <i>See:</i> <a>aboutExportFormats</a> smart constructor.
data AboutExportFormats

-- | Creates a value of <a>AboutExportFormats</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>aefAddtional</a></li>
--   </ul>
aboutExportFormats :: HashMap Text [Text] -> AboutExportFormats
aefAddtional :: Lens' AboutExportFormats (HashMap Text [Text])

-- | Information about a Drive user.
--   
--   <i>See:</i> <a>user</a> smart constructor.
data User

-- | Creates a value of <a>User</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>uPhotoLink</a></li>
--   <li><a>uMe</a></li>
--   <li><a>uKind</a></li>
--   <li><a>uEmailAddress</a></li>
--   <li><a>uDisplayName</a></li>
--   <li><a>uPermissionId</a></li>
--   </ul>
user :: User

-- | A link to the user's profile photo, if available.
uPhotoLink :: Lens' User (Maybe Text)

-- | Whether this user is the requesting user.
uMe :: Lens' User (Maybe Bool)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#user".
uKind :: Lens' User Text

-- | The email address of the user. This may not be present in certain
--   contexts if the user has not made their email address visible to the
--   requester.
uEmailAddress :: Lens' User (Maybe Text)

-- | A plain text displayable name for this user.
uDisplayName :: Lens' User (Maybe Text)

-- | The user's ID as visible in Permission resources.
uPermissionId :: Lens' User (Maybe Text)

-- | A list of changes for a user.
--   
--   <i>See:</i> <a>changeList</a> smart constructor.
data ChangeList

-- | Creates a value of <a>ChangeList</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>clNewStartPageToken</a></li>
--   <li><a>clNextPageToken</a></li>
--   <li><a>clChanges</a></li>
--   <li><a>clKind</a></li>
--   </ul>
changeList :: ChangeList

-- | The starting page token for future changes. This will be present only
--   if the end of the current changes list has been reached.
clNewStartPageToken :: Lens' ChangeList (Maybe Text)

-- | The page token for the next page of changes. This will be absent if
--   the end of the changes list has been reached. If the token is rejected
--   for any reason, it should be discarded, and pagination should be
--   restarted from the first page of results.
clNextPageToken :: Lens' ChangeList (Maybe Text)

-- | The list of changes. If nextPageToken is populated, then this list may
--   be incomplete and an additional page of results should be fetched.
clChanges :: Lens' ChangeList [Change]

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#changeList".
clKind :: Lens' ChangeList Text

-- | Additional information about the content of the file. These fields are
--   never populated in responses.
--   
--   <i>See:</i> <a>fileContentHints</a> smart constructor.
data FileContentHints

-- | Creates a value of <a>FileContentHints</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>fchThumbnail</a></li>
--   <li><a>fchIndexableText</a></li>
--   </ul>
fileContentHints :: FileContentHints

-- | A thumbnail for the file. This will only be used if Drive cannot
--   generate a standard thumbnail.
fchThumbnail :: Lens' FileContentHints (Maybe FileContentHintsThumbnail)

-- | Text to be indexed for the file to improve fullText queries. This is
--   limited to 128KB in length and may contain HTML elements.
fchIndexableText :: Lens' FileContentHints (Maybe Text)

-- | Additional parameters controlling delivery channel behavior. Optional.
--   
--   <i>See:</i> <a>channelParams</a> smart constructor.
data ChannelParams

-- | Creates a value of <a>ChannelParams</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>cpAddtional</a></li>
--   </ul>
channelParams :: HashMap Text Text -> ChannelParams

-- | Declares a new parameter by name.
cpAddtional :: Lens' ChannelParams (HashMap Text Text)

-- | A collection of arbitrary key-value pairs which are visible to all
--   apps. Entries with null values are cleared in update and copy
--   requests.
--   
--   <i>See:</i> <a>fileProperties</a> smart constructor.
data FileProperties

-- | Creates a value of <a>FileProperties</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>fpAddtional</a></li>
--   </ul>
fileProperties :: HashMap Text Text -> FileProperties
fpAddtional :: Lens' FileProperties (HashMap Text Text)

-- | A map of maximum import sizes by MIME type, in bytes.
--   
--   <i>See:</i> <a>aboutMaxImportSizes</a> smart constructor.
data AboutMaxImportSizes

-- | Creates a value of <a>AboutMaxImportSizes</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>amisAddtional</a></li>
--   </ul>
aboutMaxImportSizes :: HashMap Text Int64 -> AboutMaxImportSizes
amisAddtional :: Lens' AboutMaxImportSizes (HashMap Text Int64)

-- | Information about the user, the user's Drive, and system capabilities.
--   
--   <i>See:</i> <a>about</a> smart constructor.
data About

-- | Creates a value of <a>About</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>aExportFormats</a></li>
--   <li><a>aMaxImportSizes</a></li>
--   <li><a>aImportFormats</a></li>
--   <li><a>aKind</a></li>
--   <li><a>aAppInstalled</a></li>
--   <li><a>aUser</a></li>
--   <li><a>aStorageQuota</a></li>
--   <li><a>aMaxUploadSize</a></li>
--   <li><a>aFolderColorPalette</a></li>
--   </ul>
about :: About

-- | A map of source MIME type to possible targets for all supported
--   exports.
aExportFormats :: Lens' About (Maybe AboutExportFormats)

-- | A map of maximum import sizes by MIME type, in bytes.
aMaxImportSizes :: Lens' About (Maybe AboutMaxImportSizes)

-- | A map of source MIME type to possible targets for all supported
--   imports.
aImportFormats :: Lens' About (Maybe AboutImportFormats)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#about".
aKind :: Lens' About Text

-- | Whether the user has installed the requesting app.
aAppInstalled :: Lens' About (Maybe Bool)

-- | The authenticated user.
aUser :: Lens' About (Maybe User)

-- | The user's storage quota limits and usage. All fields are measured in
--   bytes.
aStorageQuota :: Lens' About (Maybe AboutStorageQuota)

-- | The maximum upload size in bytes.
aMaxUploadSize :: Lens' About (Maybe Int64)

-- | The currently supported folder colors as RGB hex strings.
aFolderColorPalette :: Lens' About [Text]

-- | Geographic location information stored in the image.
--   
--   <i>See:</i> <a>fileImageMediaMetadataLocation</a> smart constructor.
data FileImageMediaMetadataLocation

-- | Creates a value of <a>FileImageMediaMetadataLocation</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>fimmlLatitude</a></li>
--   <li><a>fimmlAltitude</a></li>
--   <li><a>fimmlLongitude</a></li>
--   </ul>
fileImageMediaMetadataLocation :: FileImageMediaMetadataLocation

-- | The latitude stored in the image.
fimmlLatitude :: Lens' FileImageMediaMetadataLocation (Maybe Double)

-- | The altitude stored in the image.
fimmlAltitude :: Lens' FileImageMediaMetadataLocation (Maybe Double)

-- | The longitude stored in the image.
fimmlLongitude :: Lens' FileImageMediaMetadataLocation (Maybe Double)
data StartPageToken

-- | Creates a value of <a>StartPageToken</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>sptKind</a></li>
--   <li><a>sptStartPageToken</a></li>
--   </ul>
startPageToken :: StartPageToken

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#startPageToken".
sptKind :: Lens' StartPageToken Text

-- | The starting page token for listing changes.
sptStartPageToken :: Lens' StartPageToken (Maybe Text)

-- | Additional metadata about image media, if available.
--   
--   <i>See:</i> <a>fileImageMediaMetadata</a> smart constructor.
data FileImageMediaMetadata

-- | Creates a value of <a>FileImageMediaMetadata</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>fimmRotation</a></li>
--   <li><a>fimmHeight</a></li>
--   <li><a>fimmSubjectDistance</a></li>
--   <li><a>fimmMaxApertureValue</a></li>
--   <li><a>fimmIsoSpeed</a></li>
--   <li><a>fimmTime</a></li>
--   <li><a>fimmLocation</a></li>
--   <li><a>fimmAperture</a></li>
--   <li><a>fimmFocalLength</a></li>
--   <li><a>fimmCameraMake</a></li>
--   <li><a>fimmWidth</a></li>
--   <li><a>fimmExposureTime</a></li>
--   <li><a>fimmCameraModel</a></li>
--   <li><a>fimmWhiteBalance</a></li>
--   <li><a>fimmLens</a></li>
--   <li><a>fimmFlashUsed</a></li>
--   <li><a>fimmExposureBias</a></li>
--   <li><a>fimmMeteringMode</a></li>
--   <li><a>fimmExposureMode</a></li>
--   <li><a>fimmSensor</a></li>
--   <li><a>fimmColorSpace</a></li>
--   </ul>
fileImageMediaMetadata :: FileImageMediaMetadata

-- | The rotation in clockwise degrees from the image's original
--   orientation.
fimmRotation :: Lens' FileImageMediaMetadata (Maybe Int32)

-- | The height of the image in pixels.
fimmHeight :: Lens' FileImageMediaMetadata (Maybe Int32)

-- | The distance to the subject of the photo, in meters.
fimmSubjectDistance :: Lens' FileImageMediaMetadata (Maybe Int32)

-- | The smallest f-number of the lens at the focal length used to create
--   the photo (APEX value).
fimmMaxApertureValue :: Lens' FileImageMediaMetadata (Maybe Double)

-- | The ISO speed used to create the photo.
fimmIsoSpeed :: Lens' FileImageMediaMetadata (Maybe Int32)

-- | The date and time the photo was taken (EXIF DateTime).
fimmTime :: Lens' FileImageMediaMetadata (Maybe Text)

-- | Geographic location information stored in the image.
fimmLocation :: Lens' FileImageMediaMetadata (Maybe FileImageMediaMetadataLocation)

-- | The aperture used to create the photo (f-number).
fimmAperture :: Lens' FileImageMediaMetadata (Maybe Double)

-- | The focal length used to create the photo, in millimeters.
fimmFocalLength :: Lens' FileImageMediaMetadata (Maybe Double)

-- | The make of the camera used to create the photo.
fimmCameraMake :: Lens' FileImageMediaMetadata (Maybe Text)

-- | The width of the image in pixels.
fimmWidth :: Lens' FileImageMediaMetadata (Maybe Int32)

-- | The length of the exposure, in seconds.
fimmExposureTime :: Lens' FileImageMediaMetadata (Maybe Double)

-- | The model of the camera used to create the photo.
fimmCameraModel :: Lens' FileImageMediaMetadata (Maybe Text)

-- | The white balance mode used to create the photo.
fimmWhiteBalance :: Lens' FileImageMediaMetadata (Maybe Text)

-- | The lens used to create the photo.
fimmLens :: Lens' FileImageMediaMetadata (Maybe Text)

-- | Whether a flash was used to create the photo.
fimmFlashUsed :: Lens' FileImageMediaMetadata (Maybe Bool)

-- | The exposure bias of the photo (APEX value).
fimmExposureBias :: Lens' FileImageMediaMetadata (Maybe Double)

-- | The metering mode used to create the photo.
fimmMeteringMode :: Lens' FileImageMediaMetadata (Maybe Text)

-- | The exposure mode used to create the photo.
fimmExposureMode :: Lens' FileImageMediaMetadata (Maybe Text)

-- | The type of sensor used to create the photo.
fimmSensor :: Lens' FileImageMediaMetadata (Maybe Text)

-- | The color space of the photo.
fimmColorSpace :: Lens' FileImageMediaMetadata (Maybe Text)

-- | A comment on a file.
--   
--   <i>See:</i> <a>comment</a> smart constructor.
data Comment

-- | Creates a value of <a>Comment</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>comHTMLContent</a></li>
--   <li><a>comModifiedTime</a></li>
--   <li><a>comCreatedTime</a></li>
--   <li><a>comKind</a></li>
--   <li><a>comResolved</a></li>
--   <li><a>comQuotedFileContent</a></li>
--   <li><a>comAnchor</a></li>
--   <li><a>comContent</a></li>
--   <li><a>comReplies</a></li>
--   <li><a>comAuthor</a></li>
--   <li><a>comId</a></li>
--   <li><a>comDeleted</a></li>
--   </ul>
comment :: Comment

-- | The content of the comment with HTML formatting.
comHTMLContent :: Lens' Comment (Maybe Text)

-- | The last time the comment or any of its replies was modified (RFC 3339
--   date-time).
comModifiedTime :: Lens' Comment (Maybe UTCTime)

-- | The time at which the comment was created (RFC 3339 date-time).
comCreatedTime :: Lens' Comment (Maybe UTCTime)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#comment".
comKind :: Lens' Comment Text

-- | Whether the comment has been resolved by one of its replies.
comResolved :: Lens' Comment (Maybe Bool)

-- | The file content to which the comment refers, typically within the
--   anchor region. For a text file, for example, this would be the text at
--   the location of the comment.
comQuotedFileContent :: Lens' Comment (Maybe CommentQuotedFileContent)

-- | A region of the document represented as a JSON string. See anchor
--   documentation for details on how to define and interpret anchor
--   properties.
comAnchor :: Lens' Comment (Maybe Text)

-- | The plain text content of the comment. This field is used for setting
--   the content, while htmlContent should be displayed.
comContent :: Lens' Comment (Maybe Text)

-- | The full list of replies to the comment in chronological order.
comReplies :: Lens' Comment [Reply]

-- | The user who created the comment.
comAuthor :: Lens' Comment (Maybe User)

-- | The ID of the comment.
comId :: Lens' Comment (Maybe Text)

-- | Whether the comment has been deleted. A deleted comment has no
--   content.
comDeleted :: Lens' Comment (Maybe Bool)

-- | The metadata for a revision to a file.
--   
--   <i>See:</i> <a>revision</a> smart constructor.
data Revision

-- | Creates a value of <a>Revision</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>revModifiedTime</a></li>
--   <li><a>revSize</a></li>
--   <li><a>revOriginalFilename</a></li>
--   <li><a>revKind</a></li>
--   <li><a>revPublished</a></li>
--   <li><a>revLastModifyingUser</a></li>
--   <li><a>revPublishAuto</a></li>
--   <li><a>revMD5Checksum</a></li>
--   <li><a>revKeepForever</a></li>
--   <li><a>revMimeType</a></li>
--   <li><a>revPublishedOutsideDomain</a></li>
--   <li><a>revId</a></li>
--   </ul>
revision :: Revision

-- | The last time the revision was modified (RFC 3339 date-time).
revModifiedTime :: Lens' Revision (Maybe UTCTime)

-- | The size of the revision's content in bytes. This is only applicable
--   to files with binary content in Drive.
revSize :: Lens' Revision (Maybe Int64)

-- | The original filename used to create this revision. This is only
--   applicable to files with binary content in Drive.
revOriginalFilename :: Lens' Revision (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#revision".
revKind :: Lens' Revision Text

-- | Whether this revision is published. This is only applicable to Google
--   Docs.
revPublished :: Lens' Revision (Maybe Bool)

-- | The last user to modify this revision.
revLastModifyingUser :: Lens' Revision (Maybe User)

-- | Whether subsequent revisions will be automatically republished. This
--   is only applicable to Google Docs.
revPublishAuto :: Lens' Revision (Maybe Bool)

-- | The MD5 checksum of the revision's content. This is only applicable to
--   files with binary content in Drive.
revMD5Checksum :: Lens' Revision (Maybe Text)

-- | Whether to keep this revision forever, even if it is no longer the
--   head revision. If not set, the revision will be automatically purged
--   30 days after newer content is uploaded. This can be set on a maximum
--   of 200 revisions for a file. This field is only applicable to files
--   with binary content in Drive.
revKeepForever :: Lens' Revision (Maybe Bool)

-- | The MIME type of the revision.
revMimeType :: Lens' Revision (Maybe Text)

-- | Whether this revision is published outside the domain. This is only
--   applicable to Google Docs.
revPublishedOutsideDomain :: Lens' Revision (Maybe Bool)

-- | The ID of the revision.
revId :: Lens' Revision (Maybe Text)

-- | A permission for a file. A permission grants a user, group, domain or
--   the world access to a file or a folder hierarchy.
--   
--   <i>See:</i> <a>permission</a> smart constructor.
data Permission

-- | Creates a value of <a>Permission</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>pPhotoLink</a></li>
--   <li><a>pKind</a></li>
--   <li><a>pDomain</a></li>
--   <li><a>pRole</a></li>
--   <li><a>pEmailAddress</a></li>
--   <li><a>pAllowFileDiscovery</a></li>
--   <li><a>pDisplayName</a></li>
--   <li><a>pId</a></li>
--   <li><a>pType</a></li>
--   <li><a>pExpirationTime</a></li>
--   </ul>
permission :: Permission

-- | A link to the user's profile photo, if available.
pPhotoLink :: Lens' Permission (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#permission".
pKind :: Lens' Permission Text

-- | The domain to which this permission refers.
pDomain :: Lens' Permission (Maybe Text)

-- | The role granted by this permission. Valid values are: - owner -
--   writer - commenter - reader
pRole :: Lens' Permission (Maybe Text)

-- | The email address of the user or group to which this permission
--   refers.
pEmailAddress :: Lens' Permission (Maybe Text)

-- | Whether the permission allows the file to be discovered through
--   search. This is only applicable for permissions of type domain or
--   anyone.
pAllowFileDiscovery :: Lens' Permission (Maybe Bool)

-- | A displayable name for users, groups or domains.
pDisplayName :: Lens' Permission (Maybe Text)

-- | The ID of this permission. This is a unique identifier for the
--   grantee, and is published in User resources as permissionId.
pId :: Lens' Permission (Maybe Text)

-- | The type of the grantee. Valid values are: - user - group - domain -
--   anyone
pType :: Lens' Permission (Maybe Text)

-- | The time at which this permission will expire (RFC 3339 date-time).
pExpirationTime :: Lens' Permission (Maybe UTCTime)

-- | The metadata for a file.
--   
--   <i>See:</i> <a>file</a> smart constructor.
data File

-- | Creates a value of <a>File</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>fOwnedByMe</a></li>
--   <li><a>fThumbnailLink</a></li>
--   <li><a>fFullFileExtension</a></li>
--   <li><a>fModifiedTime</a></li>
--   <li><a>fModifiedByMeTime</a></li>
--   <li><a>fFileExtension</a></li>
--   <li><a>fViewedByMe</a></li>
--   <li><a>fOwners</a></li>
--   <li><a>fViewedByMeTime</a></li>
--   <li><a>fModifiedByMe</a></li>
--   <li><a>fSize</a></li>
--   <li><a>fTrashed</a></li>
--   <li><a>fWebViewLink</a></li>
--   <li><a>fCreatedTime</a></li>
--   <li><a>fOriginalFilename</a></li>
--   <li><a>fKind</a></li>
--   <li><a>fLastModifyingUser</a></li>
--   <li><a>fIconLink</a></li>
--   <li><a>fHasThumbnail</a></li>
--   <li><a>fThumbnailVersion</a></li>
--   <li><a>fImageMediaMetadata</a></li>
--   <li><a>fExplicitlyTrashed</a></li>
--   <li><a>fShared</a></li>
--   <li><a>fMD5Checksum</a></li>
--   <li><a>fFolderColorRgb</a></li>
--   <li><a>fMimeType</a></li>
--   <li><a>fIsAppAuthorized</a></li>
--   <li><a>fName</a></li>
--   <li><a>fParents</a></li>
--   <li><a>fStarred</a></li>
--   <li><a>fSpaces</a></li>
--   <li><a>fVersion</a></li>
--   <li><a>fWritersCanShare</a></li>
--   <li><a>fId</a></li>
--   <li><a>fPermissions</a></li>
--   <li><a>fQuotaBytesUsed</a></li>
--   <li><a>fAppProperties</a></li>
--   <li><a>fVideoMediaMetadata</a></li>
--   <li><a>fSharedWithMeTime</a></li>
--   <li><a>fHeadRevisionId</a></li>
--   <li><a>fCapabilities</a></li>
--   <li><a>fDescription</a></li>
--   <li><a>fViewersCanCopyContent</a></li>
--   <li><a>fSharingUser</a></li>
--   <li><a>fWebContentLink</a></li>
--   <li><a>fContentHints</a></li>
--   <li><a>fProperties</a></li>
--   </ul>
file :: File

-- | Whether the user owns the file.
fOwnedByMe :: Lens' File (Maybe Bool)

-- | A short-lived link to the file's thumbnail, if available. Typically
--   lasts on the order of hours. Only populated when the requesting app
--   can access the file's content.
fThumbnailLink :: Lens' File (Maybe Text)

-- | The full file extension extracted from the name field. May contain
--   multiple concatenated extensions, such as "tar.gz". This is only
--   available for files with binary content in Drive. This is
--   automatically updated when the name field changes, however it is not
--   cleared if the new name does not contain a valid extension.
fFullFileExtension :: Lens' File (Maybe Text)

-- | The last time the file was modified by anyone (RFC 3339 date-time).
--   Note that setting modifiedTime will also update modifiedByMeTime for
--   the user.
fModifiedTime :: Lens' File (Maybe UTCTime)

-- | The last time the file was modified by the user (RFC 3339 date-time).
fModifiedByMeTime :: Lens' File (Maybe UTCTime)

-- | The final component of fullFileExtension. This is only available for
--   files with binary content in Drive.
fFileExtension :: Lens' File (Maybe Text)

-- | Whether the file has been viewed by this user.
fViewedByMe :: Lens' File (Maybe Bool)

-- | The owners of the file. Currently, only certain legacy files may have
--   more than one owner.
fOwners :: Lens' File [User]

-- | The last time the file was viewed by the user (RFC 3339 date-time).
fViewedByMeTime :: Lens' File (Maybe UTCTime)

-- | Whether the file has been modified by this user.
fModifiedByMe :: Lens' File (Maybe Bool)

-- | The size of the file's content in bytes. This is only applicable to
--   files with binary content in Drive.
fSize :: Lens' File (Maybe Int64)

-- | Whether the file has been trashed, either explicitly or from a trashed
--   parent folder. Only the owner may trash a file, and other users cannot
--   see files in the owner's trash.
fTrashed :: Lens' File (Maybe Bool)

-- | A link for opening the file in a relevant Google editor or viewer in a
--   browser.
fWebViewLink :: Lens' File (Maybe Text)

-- | The time at which the file was created (RFC 3339 date-time).
fCreatedTime :: Lens' File (Maybe UTCTime)

-- | The original filename of the uploaded content if available, or else
--   the original value of the name field. This is only available for files
--   with binary content in Drive.
fOriginalFilename :: Lens' File (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#file".
fKind :: Lens' File Text

-- | The last user to modify the file.
fLastModifyingUser :: Lens' File (Maybe User)

-- | A static, unauthenticated link to the file's icon.
fIconLink :: Lens' File (Maybe Text)

-- | Whether this file has a thumbnail.
fHasThumbnail :: Lens' File (Maybe Bool)

-- | The thumbnail version for use in thumbnail cache invalidation.
fThumbnailVersion :: Lens' File (Maybe Int64)

-- | Additional metadata about image media, if available.
fImageMediaMetadata :: Lens' File (Maybe FileImageMediaMetadata)

-- | Whether the file has been explicitly trashed, as opposed to
--   recursively trashed from a parent folder.
fExplicitlyTrashed :: Lens' File (Maybe Bool)

-- | Whether the file has been shared.
fShared :: Lens' File (Maybe Bool)

-- | The MD5 checksum for the content of the file. This is only applicable
--   to files with binary content in Drive.
fMD5Checksum :: Lens' File (Maybe Text)

-- | The color for a folder as an RGB hex string. The supported colors are
--   published in the folderColorPalette field of the About resource. If an
--   unsupported color is specified, the closest color in the palette will
--   be used instead.
fFolderColorRgb :: Lens' File (Maybe Text)

-- | The MIME type of the file. Drive will attempt to automatically detect
--   an appropriate value from uploaded content if no value is provided.
--   The value cannot be changed unless a new revision is uploaded. If a
--   file is created with a Google Doc MIME type, the uploaded content will
--   be imported if possible. The supported import formats are published in
--   the About resource.
fMimeType :: Lens' File (Maybe Text)

-- | Whether the file was created or opened by the requesting app.
fIsAppAuthorized :: Lens' File (Maybe Bool)

-- | The name of the file. This is not necessarily unique within a folder.
fName :: Lens' File (Maybe Text)

-- | The IDs of the parent folders which contain the file. If not specified
--   as part of a create request, the file will be placed directly in the
--   My Drive folder. Update requests must use the addParents and
--   removeParents parameters to modify the values.
fParents :: Lens' File [Text]

-- | Whether the user has starred the file.
fStarred :: Lens' File (Maybe Bool)

-- | The list of spaces which contain the file. The currently supported
--   values are 'drive', 'appDataFolder' and 'photos'.
fSpaces :: Lens' File [Text]

-- | A monotonically increasing version number for the file. This reflects
--   every change made to the file on the server, even those not visible to
--   the user.
fVersion :: Lens' File (Maybe Int64)

-- | Whether users with only writer permission can modify the file's
--   permissions.
fWritersCanShare :: Lens' File (Maybe Bool)

-- | The ID of the file.
fId :: Lens' File (Maybe Text)

-- | The full list of permissions for the file. This is only available if
--   the requesting user can share the file.
fPermissions :: Lens' File [Permission]

-- | The number of storage quota bytes used by the file. This includes the
--   head revision as well as previous revisions with keepForever enabled.
fQuotaBytesUsed :: Lens' File (Maybe Int64)

-- | A collection of arbitrary key-value pairs which are private to the
--   requesting app. Entries with null values are cleared in update and
--   copy requests.
fAppProperties :: Lens' File (Maybe FileAppProperties)

-- | Additional metadata about video media. This may not be available
--   immediately upon upload.
fVideoMediaMetadata :: Lens' File (Maybe FileVideoMediaMetadata)

-- | The time at which the file was shared with the user, if applicable
--   (RFC 3339 date-time).
fSharedWithMeTime :: Lens' File (Maybe UTCTime)

-- | The ID of the file's head revision. This is currently only available
--   for files with binary content in Drive.
fHeadRevisionId :: Lens' File (Maybe Text)

-- | Capabilities the current user has on the file.
fCapabilities :: Lens' File (Maybe FileCapabilities)

-- | A short description of the file.
fDescription :: Lens' File (Maybe Text)

-- | Whether users with only reader or commenter permission can copy the
--   file's content. This affects copy, download, and print operations.
fViewersCanCopyContent :: Lens' File (Maybe Bool)

-- | The user who shared the file with the requesting user, if applicable.
fSharingUser :: Lens' File (Maybe User)

-- | A link for downloading the content of the file in a browser. This is
--   only available for files with binary content in Drive.
fWebContentLink :: Lens' File (Maybe Text)

-- | Additional information about the content of the file. These fields are
--   never populated in responses.
fContentHints :: Lens' File (Maybe FileContentHints)

-- | A collection of arbitrary key-value pairs which are visible to all
--   apps. Entries with null values are cleared in update and copy
--   requests.
fProperties :: Lens' File (Maybe FileProperties)

-- | A list of generated file IDs which can be provided in create requests.
--   
--   <i>See:</i> <a>generatedIds</a> smart constructor.
data GeneratedIds

-- | Creates a value of <a>GeneratedIds</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>giSpace</a></li>
--   <li><a>giKind</a></li>
--   <li><a>giIds</a></li>
--   </ul>
generatedIds :: GeneratedIds

-- | The type of file that can be created with these IDs.
giSpace :: Lens' GeneratedIds (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#generatedIds".
giKind :: Lens' GeneratedIds Text

-- | The IDs generated for the requesting user in the specified space.
giIds :: Lens' GeneratedIds [Text]

-- | A list of comments on a file.
--   
--   <i>See:</i> <a>commentList</a> smart constructor.
data CommentList

-- | Creates a value of <a>CommentList</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>cllNextPageToken</a></li>
--   <li><a>cllKind</a></li>
--   <li><a>cllComments</a></li>
--   </ul>
commentList :: CommentList

-- | The page token for the next page of comments. This will be absent if
--   the end of the comments list has been reached. If the token is
--   rejected for any reason, it should be discarded, and pagination should
--   be restarted from the first page of results.
cllNextPageToken :: Lens' CommentList (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#commentList".
cllKind :: Lens' CommentList Text

-- | The list of comments. If nextPageToken is populated, then this list
--   may be incomplete and an additional page of results should be fetched.
cllComments :: Lens' CommentList [Comment]

-- | A list of revisions of a file.
--   
--   <i>See:</i> <a>revisionList</a> smart constructor.
data RevisionList

-- | Creates a value of <a>RevisionList</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>rllNextPageToken</a></li>
--   <li><a>rllKind</a></li>
--   <li><a>rllRevisions</a></li>
--   </ul>
revisionList :: RevisionList

-- | The page token for the next page of revisions. This will be absent if
--   the end of the revisions list has been reached. If the token is
--   rejected for any reason, it should be discarded, and pagination should
--   be restarted from the first page of results.
rllNextPageToken :: Lens' RevisionList (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#revisionList".
rllKind :: Lens' RevisionList Text

-- | The list of revisions. If nextPageToken is populated, then this list
--   may be incomplete and an additional page of results should be fetched.
rllRevisions :: Lens' RevisionList [Revision]

-- | A list of permissions for a file.
--   
--   <i>See:</i> <a>permissionList</a> smart constructor.
data PermissionList

-- | Creates a value of <a>PermissionList</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>plKind</a></li>
--   <li><a>plPermissions</a></li>
--   </ul>
permissionList :: PermissionList

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#permissionList".
plKind :: Lens' PermissionList Text

-- | The list of permissions.
plPermissions :: Lens' PermissionList [Permission]


-- | Gets information about the user, the user's Drive, and system
--   capabilities.
--   
--   <i>See:</i> <a>Drive API Reference</a> for <tt>drive.about.get</tt>.
module Network.Google.Resource.Drive.About.Get

-- | A resource alias for <tt>drive.about.get</tt> method which the
--   <a>AboutGet</a> request conforms to.
type AboutGetResource = "drive" :> ("v3" :> ("about" :> (QueryParam "alt" AltJSON :> Get '[JSON] About)))

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

-- | Gets information about the user, the user's Drive, and system
--   capabilities.
--   
--   <i>See:</i> <a>aboutGet</a> smart constructor.
data AboutGet
instance GHC.Generics.Generic Network.Google.Resource.Drive.About.Get.AboutGet
instance Data.Data.Data Network.Google.Resource.Drive.About.Get.AboutGet
instance GHC.Show.Show Network.Google.Resource.Drive.About.Get.AboutGet
instance GHC.Classes.Eq Network.Google.Resource.Drive.About.Get.AboutGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.About.Get.AboutGet


-- | Gets the starting pageToken for listing future changes.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.changes.getStartPageToken</tt>.
module Network.Google.Resource.Drive.Changes.GetStartPageToken

-- | A resource alias for <tt>drive.changes.getStartPageToken</tt> method
--   which the <a>ChangesGetStartPageToken</a> request conforms to.
type ChangesGetStartPageTokenResource = "drive" :> ("v3" :> ("changes" :> ("startPageToken" :> (QueryParam "alt" AltJSON :> Get '[JSON] StartPageToken))))

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

-- | Gets the starting pageToken for listing future changes.
--   
--   <i>See:</i> <a>changesGetStartPageToken</a> smart constructor.
data ChangesGetStartPageToken
instance GHC.Generics.Generic Network.Google.Resource.Drive.Changes.GetStartPageToken.ChangesGetStartPageToken
instance Data.Data.Data Network.Google.Resource.Drive.Changes.GetStartPageToken.ChangesGetStartPageToken
instance GHC.Show.Show Network.Google.Resource.Drive.Changes.GetStartPageToken.ChangesGetStartPageToken
instance GHC.Classes.Eq Network.Google.Resource.Drive.Changes.GetStartPageToken.ChangesGetStartPageToken
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Changes.GetStartPageToken.ChangesGetStartPageToken


-- | Lists changes for a user.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.changes.list</tt>.
module Network.Google.Resource.Drive.Changes.List

-- | A resource alias for <tt>drive.changes.list</tt> method which the
--   <a>ChangesList</a> request conforms to.
type ChangesListResource = "drive" :> ("v3" :> ("changes" :> (QueryParam "pageToken" Text :> (QueryParam "restrictToMyDrive" Bool :> (QueryParam "spaces" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "includeRemoved" Bool :> (QueryParam "alt" AltJSON :> Get '[JSON] ChangeList))))))))

-- | Creates a value of <a>ChangesList</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>clRestrictToMyDrive</a></li>
--   <li><a>clSpaces</a></li>
--   <li><a>clPageToken</a></li>
--   <li><a>clPageSize</a></li>
--   <li><a>clIncludeRemoved</a></li>
--   </ul>
changesList :: Text -> ChangesList

-- | Lists changes for a user.
--   
--   <i>See:</i> <a>changesList</a> smart constructor.
data ChangesList

-- | Whether to restrict the results to changes inside the My Drive
--   hierarchy. This omits changes to files such as those in the
--   Application Data folder or shared files which have not been added to
--   My Drive.
clRestrictToMyDrive :: Lens' ChangesList Bool

-- | A comma-separated list of spaces to query within the user corpus.
--   Supported values are 'drive', 'appDataFolder' and 'photos'.
clSpaces :: Lens' ChangesList Text

-- | The token for continuing a previous list request on the next page.
--   This should be set to the value of 'nextPageToken' from the previous
--   response or to the response from the getStartPageToken method.
clPageToken :: Lens' ChangesList Text

-- | The maximum number of changes to return per page.
clPageSize :: Lens' ChangesList Int32

-- | Whether to include changes indicating that items have left the view of
--   the changes list, for example by deletion or lost access.
clIncludeRemoved :: Lens' ChangesList Bool
instance GHC.Generics.Generic Network.Google.Resource.Drive.Changes.List.ChangesList
instance Data.Data.Data Network.Google.Resource.Drive.Changes.List.ChangesList
instance GHC.Show.Show Network.Google.Resource.Drive.Changes.List.ChangesList
instance GHC.Classes.Eq Network.Google.Resource.Drive.Changes.List.ChangesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Changes.List.ChangesList


-- | Subscribes to changes for a user.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.changes.watch</tt>.
module Network.Google.Resource.Drive.Changes.Watch

-- | A resource alias for <tt>drive.changes.watch</tt> method which the
--   <a>ChangesWatch</a> request conforms to.
type ChangesWatchResource = "drive" :> ("v3" :> ("changes" :> ("watch" :> (QueryParam "pageToken" Text :> (QueryParam "restrictToMyDrive" Bool :> (QueryParam "spaces" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "includeRemoved" Bool :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Channel :> Post '[JSON] Channel))))))))))

-- | Creates a value of <a>ChangesWatch</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>cwPayload</a></li>
--   <li><a>cwRestrictToMyDrive</a></li>
--   <li><a>cwSpaces</a></li>
--   <li><a>cwPageToken</a></li>
--   <li><a>cwPageSize</a></li>
--   <li><a>cwIncludeRemoved</a></li>
--   </ul>
changesWatch :: Channel -> Text -> ChangesWatch

-- | Subscribes to changes for a user.
--   
--   <i>See:</i> <a>changesWatch</a> smart constructor.
data ChangesWatch

-- | Multipart request metadata.
cwPayload :: Lens' ChangesWatch Channel

-- | Whether to restrict the results to changes inside the My Drive
--   hierarchy. This omits changes to files such as those in the
--   Application Data folder or shared files which have not been added to
--   My Drive.
cwRestrictToMyDrive :: Lens' ChangesWatch Bool

-- | A comma-separated list of spaces to query within the user corpus.
--   Supported values are 'drive', 'appDataFolder' and 'photos'.
cwSpaces :: Lens' ChangesWatch Text

-- | The token for continuing a previous list request on the next page.
--   This should be set to the value of 'nextPageToken' from the previous
--   response or to the response from the getStartPageToken method.
cwPageToken :: Lens' ChangesWatch Text

-- | The maximum number of changes to return per page.
cwPageSize :: Lens' ChangesWatch Int32

-- | Whether to include changes indicating that items have left the view of
--   the changes list, for example by deletion or lost access.
cwIncludeRemoved :: Lens' ChangesWatch Bool
instance GHC.Generics.Generic Network.Google.Resource.Drive.Changes.Watch.ChangesWatch
instance Data.Data.Data Network.Google.Resource.Drive.Changes.Watch.ChangesWatch
instance GHC.Show.Show Network.Google.Resource.Drive.Changes.Watch.ChangesWatch
instance GHC.Classes.Eq Network.Google.Resource.Drive.Changes.Watch.ChangesWatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Changes.Watch.ChangesWatch


-- | Stop watching resources through this channel
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.channels.stop</tt>.
module Network.Google.Resource.Drive.Channels.Stop

-- | A resource alias for <tt>drive.channels.stop</tt> method which the
--   <a>ChannelsStop</a> request conforms to.
type ChannelsStopResource = "drive" :> ("v3" :> ("channels" :> ("stop" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Channel :> Post '[JSON] ())))))

-- | Creates a value of <a>ChannelsStop</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>csPayload</a></li>
--   </ul>
channelsStop :: Channel -> ChannelsStop

-- | Stop watching resources through this channel
--   
--   <i>See:</i> <a>channelsStop</a> smart constructor.
data ChannelsStop

-- | Multipart request metadata.
csPayload :: Lens' ChannelsStop Channel
instance GHC.Generics.Generic Network.Google.Resource.Drive.Channels.Stop.ChannelsStop
instance Data.Data.Data Network.Google.Resource.Drive.Channels.Stop.ChannelsStop
instance GHC.Show.Show Network.Google.Resource.Drive.Channels.Stop.ChannelsStop
instance GHC.Classes.Eq Network.Google.Resource.Drive.Channels.Stop.ChannelsStop
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Channels.Stop.ChannelsStop


-- | Creates a new comment on a file.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.comments.create</tt>.
module Network.Google.Resource.Drive.Comments.Create

-- | A resource alias for <tt>drive.comments.create</tt> method which the
--   <a>CommentsCreate</a> request conforms to.
type CommentsCreateResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("comments" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Comment :> Post '[JSON] Comment))))))

-- | Creates a value of <a>CommentsCreate</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>ccPayload</a></li>
--   <li><a>ccFileId</a></li>
--   </ul>
commentsCreate :: Comment -> Text -> CommentsCreate

-- | Creates a new comment on a file.
--   
--   <i>See:</i> <a>commentsCreate</a> smart constructor.
data CommentsCreate

-- | Multipart request metadata.
ccPayload :: Lens' CommentsCreate Comment

-- | The ID of the file.
ccFileId :: Lens' CommentsCreate Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Comments.Create.CommentsCreate
instance Data.Data.Data Network.Google.Resource.Drive.Comments.Create.CommentsCreate
instance GHC.Show.Show Network.Google.Resource.Drive.Comments.Create.CommentsCreate
instance GHC.Classes.Eq Network.Google.Resource.Drive.Comments.Create.CommentsCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Comments.Create.CommentsCreate


-- | Deletes a comment.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.comments.delete</tt>.
module Network.Google.Resource.Drive.Comments.Delete

-- | A resource alias for <tt>drive.comments.delete</tt> method which the
--   <a>CommentsDelete</a> request conforms to.
type CommentsDeleteResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("comments" :> (Capture "commentId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))

-- | Creates a value of <a>CommentsDelete</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>cdFileId</a></li>
--   <li><a>cdCommentId</a></li>
--   </ul>
commentsDelete :: Text -> Text -> CommentsDelete

-- | Deletes a comment.
--   
--   <i>See:</i> <a>commentsDelete</a> smart constructor.
data CommentsDelete

-- | The ID of the file.
cdFileId :: Lens' CommentsDelete Text

-- | The ID of the comment.
cdCommentId :: Lens' CommentsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Comments.Delete.CommentsDelete
instance Data.Data.Data Network.Google.Resource.Drive.Comments.Delete.CommentsDelete
instance GHC.Show.Show Network.Google.Resource.Drive.Comments.Delete.CommentsDelete
instance GHC.Classes.Eq Network.Google.Resource.Drive.Comments.Delete.CommentsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Comments.Delete.CommentsDelete


-- | Gets a comment by ID.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.comments.get</tt>.
module Network.Google.Resource.Drive.Comments.Get

-- | A resource alias for <tt>drive.comments.get</tt> method which the
--   <a>CommentsGet</a> request conforms to.
type CommentsGetResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("comments" :> (Capture "commentId" Text :> (QueryParam "includeDeleted" Bool :> (QueryParam "alt" AltJSON :> Get '[JSON] Comment)))))))

-- | Creates a value of <a>CommentsGet</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>cgFileId</a></li>
--   <li><a>cgCommentId</a></li>
--   <li><a>cgIncludeDeleted</a></li>
--   </ul>
commentsGet :: Text -> Text -> CommentsGet

-- | Gets a comment by ID.
--   
--   <i>See:</i> <a>commentsGet</a> smart constructor.
data CommentsGet

-- | The ID of the file.
cgFileId :: Lens' CommentsGet Text

-- | The ID of the comment.
cgCommentId :: Lens' CommentsGet Text

-- | Whether to return deleted comments. Deleted comments will not include
--   their original content.
cgIncludeDeleted :: Lens' CommentsGet Bool
instance GHC.Generics.Generic Network.Google.Resource.Drive.Comments.Get.CommentsGet
instance Data.Data.Data Network.Google.Resource.Drive.Comments.Get.CommentsGet
instance GHC.Show.Show Network.Google.Resource.Drive.Comments.Get.CommentsGet
instance GHC.Classes.Eq Network.Google.Resource.Drive.Comments.Get.CommentsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Comments.Get.CommentsGet


-- | Lists a file's comments.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.comments.list</tt>.
module Network.Google.Resource.Drive.Comments.List

-- | A resource alias for <tt>drive.comments.list</tt> method which the
--   <a>CommentsList</a> request conforms to.
type CommentsListResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("comments" :> (QueryParam "startModifiedTime" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "includeDeleted" Bool :> (QueryParam "alt" AltJSON :> Get '[JSON] CommentList)))))))))

-- | Creates a value of <a>CommentsList</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>cStartModifiedTime</a></li>
--   <li><a>cPageToken</a></li>
--   <li><a>cFileId</a></li>
--   <li><a>cPageSize</a></li>
--   <li><a>cIncludeDeleted</a></li>
--   </ul>
commentsList :: Text -> CommentsList

-- | Lists a file's comments.
--   
--   <i>See:</i> <a>commentsList</a> smart constructor.
data CommentsList

-- | The minimum value of 'modifiedTime' for the result comments (RFC 3339
--   date-time).
cStartModifiedTime :: Lens' CommentsList (Maybe Text)

-- | The token for continuing a previous list request on the next page.
--   This should be set to the value of 'nextPageToken' from the previous
--   response.
cPageToken :: Lens' CommentsList (Maybe Text)

-- | The ID of the file.
cFileId :: Lens' CommentsList Text

-- | The maximum number of comments to return per page.
cPageSize :: Lens' CommentsList Int32

-- | Whether to include deleted comments. Deleted comments will not include
--   their original content.
cIncludeDeleted :: Lens' CommentsList Bool
instance GHC.Generics.Generic Network.Google.Resource.Drive.Comments.List.CommentsList
instance Data.Data.Data Network.Google.Resource.Drive.Comments.List.CommentsList
instance GHC.Show.Show Network.Google.Resource.Drive.Comments.List.CommentsList
instance GHC.Classes.Eq Network.Google.Resource.Drive.Comments.List.CommentsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Comments.List.CommentsList


-- | Updates a comment with patch semantics.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.comments.update</tt>.
module Network.Google.Resource.Drive.Comments.Update

-- | A resource alias for <tt>drive.comments.update</tt> method which the
--   <a>CommentsUpdate</a> request conforms to.
type CommentsUpdateResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("comments" :> (Capture "commentId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Comment :> Patch '[JSON] Comment)))))))

-- | Creates a value of <a>CommentsUpdate</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>cuFileId</a></li>
--   <li><a>cuCommentId</a></li>
--   </ul>
commentsUpdate :: Comment -> Text -> Text -> CommentsUpdate

-- | Updates a comment with patch semantics.
--   
--   <i>See:</i> <a>commentsUpdate</a> smart constructor.
data CommentsUpdate

-- | Multipart request metadata.
cuPayload :: Lens' CommentsUpdate Comment

-- | The ID of the file.
cuFileId :: Lens' CommentsUpdate Text

-- | The ID of the comment.
cuCommentId :: Lens' CommentsUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Comments.Update.CommentsUpdate
instance Data.Data.Data Network.Google.Resource.Drive.Comments.Update.CommentsUpdate
instance GHC.Show.Show Network.Google.Resource.Drive.Comments.Update.CommentsUpdate
instance GHC.Classes.Eq Network.Google.Resource.Drive.Comments.Update.CommentsUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Comments.Update.CommentsUpdate


-- | Creates a copy of a file and applies any requested updates with patch
--   semantics.
--   
--   <i>See:</i> <a>Drive API Reference</a> for <tt>drive.files.copy</tt>.
module Network.Google.Resource.Drive.Files.Copy

-- | A resource alias for <tt>drive.files.copy</tt> method which the
--   <a>FilesCopy</a> request conforms to.
type FilesCopyResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("copy" :> (QueryParam "ocrLanguage" Text :> (QueryParam "keepRevisionForever" Bool :> (QueryParam "ignoreDefaultVisibility" Bool :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] File :> Post '[JSON] File)))))))))

-- | Creates a value of <a>FilesCopy</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>fPayload</a></li>
--   <li><a>fOCRLanguage</a></li>
--   <li><a>fKeepRevisionForever</a></li>
--   <li><a>fIgnoreDefaultVisibility</a></li>
--   <li><a>fFileId</a></li>
--   </ul>
filesCopy :: File -> Text -> FilesCopy

-- | Creates a copy of a file and applies any requested updates with patch
--   semantics.
--   
--   <i>See:</i> <a>filesCopy</a> smart constructor.
data FilesCopy

-- | Multipart request metadata.
fPayload :: Lens' FilesCopy File

-- | A language hint for OCR processing during image import (ISO 639-1
--   code).
fOCRLanguage :: Lens' FilesCopy (Maybe Text)

-- | Whether to set the 'keepForever' field in the new head revision. This
--   is only applicable to files with binary content in Drive.
fKeepRevisionForever :: Lens' FilesCopy Bool

-- | Whether to ignore the domain's default visibility settings for the
--   created file. Domain administrators can choose to make all uploaded
--   files visible to the domain by default; this parameter bypasses that
--   behavior for the request. Permissions are still inherited from parent
--   folders.
fIgnoreDefaultVisibility :: Lens' FilesCopy Bool

-- | The ID of the file.
fFileId :: Lens' FilesCopy Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Files.Copy.FilesCopy
instance Data.Data.Data Network.Google.Resource.Drive.Files.Copy.FilesCopy
instance GHC.Show.Show Network.Google.Resource.Drive.Files.Copy.FilesCopy
instance GHC.Classes.Eq Network.Google.Resource.Drive.Files.Copy.FilesCopy
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Files.Copy.FilesCopy


-- | Creates a new file.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.files.create</tt>.
module Network.Google.Resource.Drive.Files.Create

-- | A resource alias for <tt>drive.files.create</tt> method which the
--   <a>FilesCreate</a> request conforms to.
type FilesCreateResource = ("drive" :> ("v3" :> ("files" :> (QueryParam "useContentAsIndexableText" Bool :> (QueryParam "ocrLanguage" Text :> (QueryParam "keepRevisionForever" Bool :> (QueryParam "ignoreDefaultVisibility" Bool :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] File :> Post '[JSON] File))))))))) :<|> ("upload" :> ("drive" :> ("v3" :> ("files" :> (QueryParam "useContentAsIndexableText" Bool :> (QueryParam "ocrLanguage" Text :> (QueryParam "keepRevisionForever" Bool :> (QueryParam "ignoreDefaultVisibility" Bool :> (QueryParam "alt" AltJSON :> (QueryParam "uploadType" Multipart :> (MultipartRelated '[JSON] File :> Post '[JSON] File)))))))))))

-- | Creates a value of <a>FilesCreate</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>fcPayload</a></li>
--   <li><a>fcUseContentAsIndexableText</a></li>
--   <li><a>fcOCRLanguage</a></li>
--   <li><a>fcKeepRevisionForever</a></li>
--   <li><a>fcIgnoreDefaultVisibility</a></li>
--   </ul>
filesCreate :: File -> FilesCreate

-- | Creates a new file.
--   
--   <i>See:</i> <a>filesCreate</a> smart constructor.
data FilesCreate

-- | Multipart request metadata.
fcPayload :: Lens' FilesCreate File

-- | Whether to use the uploaded content as indexable text.
fcUseContentAsIndexableText :: Lens' FilesCreate Bool

-- | A language hint for OCR processing during image import (ISO 639-1
--   code).
fcOCRLanguage :: Lens' FilesCreate (Maybe Text)

-- | Whether to set the 'keepForever' field in the new head revision. This
--   is only applicable to files with binary content in Drive.
fcKeepRevisionForever :: Lens' FilesCreate Bool

-- | Whether to ignore the domain's default visibility settings for the
--   created file. Domain administrators can choose to make all uploaded
--   files visible to the domain by default; this parameter bypasses that
--   behavior for the request. Permissions are still inherited from parent
--   folders.
fcIgnoreDefaultVisibility :: Lens' FilesCreate Bool
instance GHC.Generics.Generic Network.Google.Resource.Drive.Files.Create.FilesCreate
instance Data.Data.Data Network.Google.Resource.Drive.Files.Create.FilesCreate
instance GHC.Show.Show Network.Google.Resource.Drive.Files.Create.FilesCreate
instance GHC.Classes.Eq Network.Google.Resource.Drive.Files.Create.FilesCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Files.Create.FilesCreate
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaUpload Network.Google.Resource.Drive.Files.Create.FilesCreate)


-- | Permanently deletes a file owned by the user without moving it to the
--   trash. If the target is a folder, all descendants owned by the user
--   are also deleted.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.files.delete</tt>.
module Network.Google.Resource.Drive.Files.Delete

-- | A resource alias for <tt>drive.files.delete</tt> method which the
--   <a>FilesDelete</a> request conforms to.
type FilesDeleteResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))

-- | Creates a value of <a>FilesDelete</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>fdFileId</a></li>
--   </ul>
filesDelete :: Text -> FilesDelete

-- | Permanently deletes a file owned by the user without moving it to the
--   trash. If the target is a folder, all descendants owned by the user
--   are also deleted.
--   
--   <i>See:</i> <a>filesDelete</a> smart constructor.
data FilesDelete

-- | The ID of the file.
fdFileId :: Lens' FilesDelete Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Files.Delete.FilesDelete
instance Data.Data.Data Network.Google.Resource.Drive.Files.Delete.FilesDelete
instance GHC.Show.Show Network.Google.Resource.Drive.Files.Delete.FilesDelete
instance GHC.Classes.Eq Network.Google.Resource.Drive.Files.Delete.FilesDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Files.Delete.FilesDelete


-- | Permanently deletes all of the user's trashed files.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.files.emptyTrash</tt>.
module Network.Google.Resource.Drive.Files.EmptyTrash

-- | A resource alias for <tt>drive.files.emptyTrash</tt> method which the
--   <a>FilesEmptyTrash</a> request conforms to.
type FilesEmptyTrashResource = "drive" :> ("v3" :> ("files" :> ("trash" :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))

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

-- | Permanently deletes all of the user's trashed files.
--   
--   <i>See:</i> <a>filesEmptyTrash</a> smart constructor.
data FilesEmptyTrash
instance GHC.Generics.Generic Network.Google.Resource.Drive.Files.EmptyTrash.FilesEmptyTrash
instance Data.Data.Data Network.Google.Resource.Drive.Files.EmptyTrash.FilesEmptyTrash
instance GHC.Show.Show Network.Google.Resource.Drive.Files.EmptyTrash.FilesEmptyTrash
instance GHC.Classes.Eq Network.Google.Resource.Drive.Files.EmptyTrash.FilesEmptyTrash
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Files.EmptyTrash.FilesEmptyTrash


-- | Exports a Google Doc to the requested MIME type and returns the
--   exported content.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.files.export</tt>.
module Network.Google.Resource.Drive.Files.Export

-- | A resource alias for <tt>drive.files.export</tt> method which the
--   <a>FilesExport</a> request conforms to.
type FilesExportResource = ("drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("export" :> (QueryParam "mimeType" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ()))))))) :<|> ("drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("export" :> (QueryParam "mimeType" Text :> (QueryParam "alt" AltMedia :> Get '[OctetStream] Stream)))))))

-- | Creates a value of <a>FilesExport</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>feMimeType</a></li>
--   <li><a>feFileId</a></li>
--   </ul>
filesExport :: Text -> Text -> FilesExport

-- | Exports a Google Doc to the requested MIME type and returns the
--   exported content.
--   
--   <i>See:</i> <a>filesExport</a> smart constructor.
data FilesExport

-- | The MIME type of the format requested for this export.
feMimeType :: Lens' FilesExport Text

-- | The ID of the file.
feFileId :: Lens' FilesExport Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Files.Export.FilesExport
instance Data.Data.Data Network.Google.Resource.Drive.Files.Export.FilesExport
instance GHC.Show.Show Network.Google.Resource.Drive.Files.Export.FilesExport
instance GHC.Classes.Eq Network.Google.Resource.Drive.Files.Export.FilesExport
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Files.Export.FilesExport
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaDownload Network.Google.Resource.Drive.Files.Export.FilesExport)


-- | Generates a set of file IDs which can be provided in create requests.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.files.generateIds</tt>.
module Network.Google.Resource.Drive.Files.GenerateIds

-- | A resource alias for <tt>drive.files.generateIds</tt> method which the
--   <a>FilesGenerateIds</a> request conforms to.
type FilesGenerateIdsResource = "drive" :> ("v3" :> ("files" :> ("generateIds" :> (QueryParam "space" Text :> (QueryParam "count" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] GeneratedIds))))))

-- | Creates a value of <a>FilesGenerateIds</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>fgiSpace</a></li>
--   <li><a>fgiCount</a></li>
--   </ul>
filesGenerateIds :: FilesGenerateIds

-- | Generates a set of file IDs which can be provided in create requests.
--   
--   <i>See:</i> <a>filesGenerateIds</a> smart constructor.
data FilesGenerateIds

-- | The space in which the IDs can be used to create new files. Supported
--   values are 'drive' and 'appDataFolder'.
fgiSpace :: Lens' FilesGenerateIds Text

-- | The number of IDs to return.
fgiCount :: Lens' FilesGenerateIds Int32
instance GHC.Generics.Generic Network.Google.Resource.Drive.Files.GenerateIds.FilesGenerateIds
instance Data.Data.Data Network.Google.Resource.Drive.Files.GenerateIds.FilesGenerateIds
instance GHC.Show.Show Network.Google.Resource.Drive.Files.GenerateIds.FilesGenerateIds
instance GHC.Classes.Eq Network.Google.Resource.Drive.Files.GenerateIds.FilesGenerateIds
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Files.GenerateIds.FilesGenerateIds


-- | Gets a file's metadata or content by ID.
--   
--   <i>See:</i> <a>Drive API Reference</a> for <tt>drive.files.get</tt>.
module Network.Google.Resource.Drive.Files.Get

-- | A resource alias for <tt>drive.files.get</tt> method which the
--   <a>FilesGet</a> request conforms to.
type FilesGetResource = ("drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> (QueryParam "acknowledgeAbuse" Bool :> (QueryParam "alt" AltJSON :> Get '[JSON] File)))))) :<|> ("drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> (QueryParam "acknowledgeAbuse" Bool :> (QueryParam "alt" AltMedia :> Get '[OctetStream] Stream))))))

-- | Creates a value of <a>FilesGet</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>fgAcknowledgeAbuse</a></li>
--   <li><a>fgFileId</a></li>
--   </ul>
filesGet :: Text -> FilesGet

-- | Gets a file's metadata or content by ID.
--   
--   <i>See:</i> <a>filesGet</a> smart constructor.
data FilesGet

-- | Whether the user is acknowledging the risk of downloading known
--   malware or other abusive files. This is only applicable when
--   alt=media.
fgAcknowledgeAbuse :: Lens' FilesGet Bool

-- | The ID of the file.
fgFileId :: Lens' FilesGet Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Files.Get.FilesGet
instance Data.Data.Data Network.Google.Resource.Drive.Files.Get.FilesGet
instance GHC.Show.Show Network.Google.Resource.Drive.Files.Get.FilesGet
instance GHC.Classes.Eq Network.Google.Resource.Drive.Files.Get.FilesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Files.Get.FilesGet
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaDownload Network.Google.Resource.Drive.Files.Get.FilesGet)


-- | Lists or searches files.
--   
--   <i>See:</i> <a>Drive API Reference</a> for <tt>drive.files.list</tt>.
module Network.Google.Resource.Drive.Files.List

-- | A resource alias for <tt>drive.files.list</tt> method which the
--   <a>FilesList</a> request conforms to.
type FilesListResource = "drive" :> ("v3" :> ("files" :> (QueryParam "orderBy" Text :> (QueryParam "q" Text :> (QueryParam "spaces" Text :> (QueryParam "corpus" FilesListCorpus :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] FileList)))))))))

-- | Creates a value of <a>FilesList</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>flOrderBy</a></li>
--   <li><a>flQ</a></li>
--   <li><a>flSpaces</a></li>
--   <li><a>flCorpus</a></li>
--   <li><a>flPageToken</a></li>
--   <li><a>flPageSize</a></li>
--   </ul>
filesList :: FilesList

-- | Lists or searches files.
--   
--   <i>See:</i> <a>filesList</a> smart constructor.
data FilesList

-- | A comma-separated list of sort keys. Valid keys are 'createdTime',
--   'folder', 'modifiedByMeTime', 'modifiedTime', 'name',
--   'quotaBytesUsed', 'recency', 'sharedWithMeTime', 'starred', and
--   'viewedByMeTime'. Each key sorts ascending by default, but may be
--   reversed with the 'desc' modifier. Example usage:
--   ?orderBy=folder,modifiedTime desc,name. Please note that there is a
--   current limitation for users with approximately one million files in
--   which the requested sort order is ignored.
flOrderBy :: Lens' FilesList (Maybe Text)

-- | A query for filtering the file results. See the "Search for Files"
--   guide for supported syntax.
flQ :: Lens' FilesList (Maybe Text)

-- | A comma-separated list of spaces to query within the corpus. Supported
--   values are 'drive', 'appDataFolder' and 'photos'.
flSpaces :: Lens' FilesList Text

-- | The source of files to list.
flCorpus :: Lens' FilesList FilesListCorpus

-- | The token for continuing a previous list request on the next page.
--   This should be set to the value of 'nextPageToken' from the previous
--   response.
flPageToken :: Lens' FilesList (Maybe Text)

-- | The maximum number of files to return per page.
flPageSize :: Lens' FilesList Int32
instance GHC.Generics.Generic Network.Google.Resource.Drive.Files.List.FilesList
instance Data.Data.Data Network.Google.Resource.Drive.Files.List.FilesList
instance GHC.Show.Show Network.Google.Resource.Drive.Files.List.FilesList
instance GHC.Classes.Eq Network.Google.Resource.Drive.Files.List.FilesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Files.List.FilesList


-- | Updates a file's metadata and/or content with patch semantics.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.files.update</tt>.
module Network.Google.Resource.Drive.Files.Update

-- | A resource alias for <tt>drive.files.update</tt> method which the
--   <a>FilesUpdate</a> request conforms to.
type FilesUpdateResource = ("drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> (QueryParam "removeParents" Text :> (QueryParam "useContentAsIndexableText" Bool :> (QueryParam "ocrLanguage" Text :> (QueryParam "keepRevisionForever" Bool :> (QueryParam "addParents" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] File :> Patch '[JSON] File))))))))))) :<|> ("upload" :> ("drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> (QueryParam "removeParents" Text :> (QueryParam "useContentAsIndexableText" Bool :> (QueryParam "ocrLanguage" Text :> (QueryParam "keepRevisionForever" Bool :> (QueryParam "addParents" Text :> (QueryParam "alt" AltJSON :> (QueryParam "uploadType" Multipart :> (MultipartRelated '[JSON] File :> Patch '[JSON] File)))))))))))))

-- | Creates a value of <a>FilesUpdate</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>fuPayload</a></li>
--   <li><a>fuRemoveParents</a></li>
--   <li><a>fuUseContentAsIndexableText</a></li>
--   <li><a>fuOCRLanguage</a></li>
--   <li><a>fuKeepRevisionForever</a></li>
--   <li><a>fuFileId</a></li>
--   <li><a>fuAddParents</a></li>
--   </ul>
filesUpdate :: File -> Text -> FilesUpdate

-- | Updates a file's metadata and/or content with patch semantics.
--   
--   <i>See:</i> <a>filesUpdate</a> smart constructor.
data FilesUpdate

-- | Multipart request metadata.
fuPayload :: Lens' FilesUpdate File

-- | A comma-separated list of parent IDs to remove.
fuRemoveParents :: Lens' FilesUpdate (Maybe Text)

-- | Whether to use the uploaded content as indexable text.
fuUseContentAsIndexableText :: Lens' FilesUpdate Bool

-- | A language hint for OCR processing during image import (ISO 639-1
--   code).
fuOCRLanguage :: Lens' FilesUpdate (Maybe Text)

-- | Whether to set the 'keepForever' field in the new head revision. This
--   is only applicable to files with binary content in Drive.
fuKeepRevisionForever :: Lens' FilesUpdate Bool

-- | The ID of the file.
fuFileId :: Lens' FilesUpdate Text

-- | A comma-separated list of parent IDs to add.
fuAddParents :: Lens' FilesUpdate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Drive.Files.Update.FilesUpdate
instance Data.Data.Data Network.Google.Resource.Drive.Files.Update.FilesUpdate
instance GHC.Show.Show Network.Google.Resource.Drive.Files.Update.FilesUpdate
instance GHC.Classes.Eq Network.Google.Resource.Drive.Files.Update.FilesUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Files.Update.FilesUpdate
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaUpload Network.Google.Resource.Drive.Files.Update.FilesUpdate)


-- | Subscribes to changes to a file
--   
--   <i>See:</i> <a>Drive API Reference</a> for <tt>drive.files.watch</tt>.
module Network.Google.Resource.Drive.Files.Watch

-- | A resource alias for <tt>drive.files.watch</tt> method which the
--   <a>FilesWatch</a> request conforms to.
type FilesWatchResource = ("drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("watch" :> (QueryParam "acknowledgeAbuse" Bool :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Channel :> Post '[JSON] Channel)))))))) :<|> ("drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("watch" :> (QueryParam "acknowledgeAbuse" Bool :> (QueryParam "alt" AltMedia :> Post '[OctetStream] Stream)))))))

-- | Creates a value of <a>FilesWatch</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>fwPayload</a></li>
--   <li><a>fwAcknowledgeAbuse</a></li>
--   <li><a>fwFileId</a></li>
--   </ul>
filesWatch :: Channel -> Text -> FilesWatch

-- | Subscribes to changes to a file
--   
--   <i>See:</i> <a>filesWatch</a> smart constructor.
data FilesWatch

-- | Multipart request metadata.
fwPayload :: Lens' FilesWatch Channel

-- | Whether the user is acknowledging the risk of downloading known
--   malware or other abusive files. This is only applicable when
--   alt=media.
fwAcknowledgeAbuse :: Lens' FilesWatch Bool

-- | The ID of the file.
fwFileId :: Lens' FilesWatch Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Files.Watch.FilesWatch
instance Data.Data.Data Network.Google.Resource.Drive.Files.Watch.FilesWatch
instance GHC.Show.Show Network.Google.Resource.Drive.Files.Watch.FilesWatch
instance GHC.Classes.Eq Network.Google.Resource.Drive.Files.Watch.FilesWatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Files.Watch.FilesWatch
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaDownload Network.Google.Resource.Drive.Files.Watch.FilesWatch)


-- | Creates a permission for a file.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.permissions.create</tt>.
module Network.Google.Resource.Drive.Permissions.Create

-- | A resource alias for <tt>drive.permissions.create</tt> method which
--   the <a>PermissionsCreate</a> request conforms to.
type PermissionsCreateResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("permissions" :> (QueryParam "sendNotificationEmail" Bool :> (QueryParam "emailMessage" Text :> (QueryParam "transferOwnership" Bool :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Permission :> Post '[JSON] Permission)))))))))

-- | Creates a value of <a>PermissionsCreate</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>pcSendNotificationEmail</a></li>
--   <li><a>pcPayload</a></li>
--   <li><a>pcEmailMessage</a></li>
--   <li><a>pcTransferOwnership</a></li>
--   <li><a>pcFileId</a></li>
--   </ul>
permissionsCreate :: Permission -> Text -> PermissionsCreate

-- | Creates a permission for a file.
--   
--   <i>See:</i> <a>permissionsCreate</a> smart constructor.
data PermissionsCreate

-- | Whether to send a notification email when sharing to users or groups.
--   This defaults to true for users and groups, and is not allowed for
--   other requests. It must not be disabled for ownership transfers.
pcSendNotificationEmail :: Lens' PermissionsCreate (Maybe Bool)

-- | Multipart request metadata.
pcPayload :: Lens' PermissionsCreate Permission

-- | A custom message to include in the notification email.
pcEmailMessage :: Lens' PermissionsCreate (Maybe Text)

-- | Whether to transfer ownership to the specified user and downgrade the
--   current owner to a writer. This parameter is required as an
--   acknowledgement of the side effect.
pcTransferOwnership :: Lens' PermissionsCreate Bool

-- | The ID of the file.
pcFileId :: Lens' PermissionsCreate Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Permissions.Create.PermissionsCreate
instance Data.Data.Data Network.Google.Resource.Drive.Permissions.Create.PermissionsCreate
instance GHC.Show.Show Network.Google.Resource.Drive.Permissions.Create.PermissionsCreate
instance GHC.Classes.Eq Network.Google.Resource.Drive.Permissions.Create.PermissionsCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Permissions.Create.PermissionsCreate


-- | Deletes a permission.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.permissions.delete</tt>.
module Network.Google.Resource.Drive.Permissions.Delete

-- | A resource alias for <tt>drive.permissions.delete</tt> method which
--   the <a>PermissionsDelete</a> request conforms to.
type PermissionsDeleteResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("permissions" :> (Capture "permissionId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))

-- | Creates a value of <a>PermissionsDelete</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>pdFileId</a></li>
--   <li><a>pdPermissionId</a></li>
--   </ul>
permissionsDelete :: Text -> Text -> PermissionsDelete

-- | Deletes a permission.
--   
--   <i>See:</i> <a>permissionsDelete</a> smart constructor.
data PermissionsDelete

-- | The ID of the file.
pdFileId :: Lens' PermissionsDelete Text

-- | The ID of the permission.
pdPermissionId :: Lens' PermissionsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Permissions.Delete.PermissionsDelete
instance Data.Data.Data Network.Google.Resource.Drive.Permissions.Delete.PermissionsDelete
instance GHC.Show.Show Network.Google.Resource.Drive.Permissions.Delete.PermissionsDelete
instance GHC.Classes.Eq Network.Google.Resource.Drive.Permissions.Delete.PermissionsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Permissions.Delete.PermissionsDelete


-- | Gets a permission by ID.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.permissions.get</tt>.
module Network.Google.Resource.Drive.Permissions.Get

-- | A resource alias for <tt>drive.permissions.get</tt> method which the
--   <a>PermissionsGet</a> request conforms to.
type PermissionsGetResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("permissions" :> (Capture "permissionId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Permission))))))

-- | Creates a value of <a>PermissionsGet</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>pgFileId</a></li>
--   <li><a>pgPermissionId</a></li>
--   </ul>
permissionsGet :: Text -> Text -> PermissionsGet

-- | Gets a permission by ID.
--   
--   <i>See:</i> <a>permissionsGet</a> smart constructor.
data PermissionsGet

-- | The ID of the file.
pgFileId :: Lens' PermissionsGet Text

-- | The ID of the permission.
pgPermissionId :: Lens' PermissionsGet Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Permissions.Get.PermissionsGet
instance Data.Data.Data Network.Google.Resource.Drive.Permissions.Get.PermissionsGet
instance GHC.Show.Show Network.Google.Resource.Drive.Permissions.Get.PermissionsGet
instance GHC.Classes.Eq Network.Google.Resource.Drive.Permissions.Get.PermissionsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Permissions.Get.PermissionsGet


-- | Lists a file's permissions.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.permissions.list</tt>.
module Network.Google.Resource.Drive.Permissions.List

-- | A resource alias for <tt>drive.permissions.list</tt> method which the
--   <a>PermissionsList</a> request conforms to.
type PermissionsListResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("permissions" :> (QueryParam "alt" AltJSON :> Get '[JSON] PermissionList)))))

-- | Creates a value of <a>PermissionsList</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>plFileId</a></li>
--   </ul>
permissionsList :: Text -> PermissionsList

-- | Lists a file's permissions.
--   
--   <i>See:</i> <a>permissionsList</a> smart constructor.
data PermissionsList

-- | The ID of the file.
plFileId :: Lens' PermissionsList Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Permissions.List.PermissionsList
instance Data.Data.Data Network.Google.Resource.Drive.Permissions.List.PermissionsList
instance GHC.Show.Show Network.Google.Resource.Drive.Permissions.List.PermissionsList
instance GHC.Classes.Eq Network.Google.Resource.Drive.Permissions.List.PermissionsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Permissions.List.PermissionsList


-- | Updates a permission with patch semantics.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.permissions.update</tt>.
module Network.Google.Resource.Drive.Permissions.Update

-- | A resource alias for <tt>drive.permissions.update</tt> method which
--   the <a>PermissionsUpdate</a> request conforms to.
type PermissionsUpdateResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("permissions" :> (Capture "permissionId" Text :> (QueryParam "removeExpiration" Bool :> (QueryParam "transferOwnership" Bool :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Permission :> Patch '[JSON] Permission)))))))))

-- | Creates a value of <a>PermissionsUpdate</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>puPayload</a></li>
--   <li><a>puRemoveExpiration</a></li>
--   <li><a>puTransferOwnership</a></li>
--   <li><a>puFileId</a></li>
--   <li><a>puPermissionId</a></li>
--   </ul>
permissionsUpdate :: Permission -> Text -> Text -> PermissionsUpdate

-- | Updates a permission with patch semantics.
--   
--   <i>See:</i> <a>permissionsUpdate</a> smart constructor.
data PermissionsUpdate

-- | Multipart request metadata.
puPayload :: Lens' PermissionsUpdate Permission

-- | Whether to remove the expiration date.
puRemoveExpiration :: Lens' PermissionsUpdate Bool

-- | Whether to transfer ownership to the specified user and downgrade the
--   current owner to a writer. This parameter is required as an
--   acknowledgement of the side effect.
puTransferOwnership :: Lens' PermissionsUpdate Bool

-- | The ID of the file.
puFileId :: Lens' PermissionsUpdate Text

-- | The ID of the permission.
puPermissionId :: Lens' PermissionsUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Permissions.Update.PermissionsUpdate
instance Data.Data.Data Network.Google.Resource.Drive.Permissions.Update.PermissionsUpdate
instance GHC.Show.Show Network.Google.Resource.Drive.Permissions.Update.PermissionsUpdate
instance GHC.Classes.Eq Network.Google.Resource.Drive.Permissions.Update.PermissionsUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Permissions.Update.PermissionsUpdate


-- | Creates a new reply to a comment.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.replies.create</tt>.
module Network.Google.Resource.Drive.Replies.Create

-- | A resource alias for <tt>drive.replies.create</tt> method which the
--   <a>RepliesCreate</a> request conforms to.
type RepliesCreateResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("comments" :> (Capture "commentId" Text :> ("replies" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Reply :> Post '[JSON] Reply))))))))

-- | Creates a value of <a>RepliesCreate</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>rcPayload</a></li>
--   <li><a>rcFileId</a></li>
--   <li><a>rcCommentId</a></li>
--   </ul>
repliesCreate :: Reply -> Text -> Text -> RepliesCreate

-- | Creates a new reply to a comment.
--   
--   <i>See:</i> <a>repliesCreate</a> smart constructor.
data RepliesCreate

-- | Multipart request metadata.
rcPayload :: Lens' RepliesCreate Reply

-- | The ID of the file.
rcFileId :: Lens' RepliesCreate Text

-- | The ID of the comment.
rcCommentId :: Lens' RepliesCreate Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Replies.Create.RepliesCreate
instance Data.Data.Data Network.Google.Resource.Drive.Replies.Create.RepliesCreate
instance GHC.Show.Show Network.Google.Resource.Drive.Replies.Create.RepliesCreate
instance GHC.Classes.Eq Network.Google.Resource.Drive.Replies.Create.RepliesCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Replies.Create.RepliesCreate


-- | Deletes a reply.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.replies.delete</tt>.
module Network.Google.Resource.Drive.Replies.Delete

-- | A resource alias for <tt>drive.replies.delete</tt> method which the
--   <a>RepliesDelete</a> request conforms to.
type RepliesDeleteResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("comments" :> (Capture "commentId" Text :> ("replies" :> (Capture "replyId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))))

-- | Creates a value of <a>RepliesDelete</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>rdReplyId</a></li>
--   <li><a>rdFileId</a></li>
--   <li><a>rdCommentId</a></li>
--   </ul>
repliesDelete :: Text -> Text -> Text -> RepliesDelete

-- | Deletes a reply.
--   
--   <i>See:</i> <a>repliesDelete</a> smart constructor.
data RepliesDelete

-- | The ID of the reply.
rdReplyId :: Lens' RepliesDelete Text

-- | The ID of the file.
rdFileId :: Lens' RepliesDelete Text

-- | The ID of the comment.
rdCommentId :: Lens' RepliesDelete Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Replies.Delete.RepliesDelete
instance Data.Data.Data Network.Google.Resource.Drive.Replies.Delete.RepliesDelete
instance GHC.Show.Show Network.Google.Resource.Drive.Replies.Delete.RepliesDelete
instance GHC.Classes.Eq Network.Google.Resource.Drive.Replies.Delete.RepliesDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Replies.Delete.RepliesDelete


-- | Gets a reply by ID.
--   
--   <i>See:</i> <a>Drive API Reference</a> for <tt>drive.replies.get</tt>.
module Network.Google.Resource.Drive.Replies.Get

-- | A resource alias for <tt>drive.replies.get</tt> method which the
--   <a>RepliesGet</a> request conforms to.
type RepliesGetResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("comments" :> (Capture "commentId" Text :> ("replies" :> (Capture "replyId" Text :> (QueryParam "includeDeleted" Bool :> (QueryParam "alt" AltJSON :> Get '[JSON] Reply)))))))))

-- | Creates a value of <a>RepliesGet</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>rgReplyId</a></li>
--   <li><a>rgFileId</a></li>
--   <li><a>rgCommentId</a></li>
--   <li><a>rgIncludeDeleted</a></li>
--   </ul>
repliesGet :: Text -> Text -> Text -> RepliesGet

-- | Gets a reply by ID.
--   
--   <i>See:</i> <a>repliesGet</a> smart constructor.
data RepliesGet

-- | The ID of the reply.
rgReplyId :: Lens' RepliesGet Text

-- | The ID of the file.
rgFileId :: Lens' RepliesGet Text

-- | The ID of the comment.
rgCommentId :: Lens' RepliesGet Text

-- | Whether to return deleted replies. Deleted replies will not include
--   their original content.
rgIncludeDeleted :: Lens' RepliesGet Bool
instance GHC.Generics.Generic Network.Google.Resource.Drive.Replies.Get.RepliesGet
instance Data.Data.Data Network.Google.Resource.Drive.Replies.Get.RepliesGet
instance GHC.Show.Show Network.Google.Resource.Drive.Replies.Get.RepliesGet
instance GHC.Classes.Eq Network.Google.Resource.Drive.Replies.Get.RepliesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Replies.Get.RepliesGet


-- | Lists a comment's replies.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.replies.list</tt>.
module Network.Google.Resource.Drive.Replies.List

-- | A resource alias for <tt>drive.replies.list</tt> method which the
--   <a>RepliesList</a> request conforms to.
type RepliesListResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("comments" :> (Capture "commentId" Text :> ("replies" :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "includeDeleted" Bool :> (QueryParam "alt" AltJSON :> Get '[JSON] ReplyList))))))))))

-- | Creates a value of <a>RepliesList</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>rlPageToken</a></li>
--   <li><a>rlFileId</a></li>
--   <li><a>rlCommentId</a></li>
--   <li><a>rlPageSize</a></li>
--   <li><a>rlIncludeDeleted</a></li>
--   </ul>
repliesList :: Text -> Text -> RepliesList

-- | Lists a comment's replies.
--   
--   <i>See:</i> <a>repliesList</a> smart constructor.
data RepliesList

-- | The token for continuing a previous list request on the next page.
--   This should be set to the value of 'nextPageToken' from the previous
--   response.
rlPageToken :: Lens' RepliesList (Maybe Text)

-- | The ID of the file.
rlFileId :: Lens' RepliesList Text

-- | The ID of the comment.
rlCommentId :: Lens' RepliesList Text

-- | The maximum number of replies to return per page.
rlPageSize :: Lens' RepliesList Int32

-- | Whether to include deleted replies. Deleted replies will not include
--   their original content.
rlIncludeDeleted :: Lens' RepliesList Bool
instance GHC.Generics.Generic Network.Google.Resource.Drive.Replies.List.RepliesList
instance Data.Data.Data Network.Google.Resource.Drive.Replies.List.RepliesList
instance GHC.Show.Show Network.Google.Resource.Drive.Replies.List.RepliesList
instance GHC.Classes.Eq Network.Google.Resource.Drive.Replies.List.RepliesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Replies.List.RepliesList


-- | Updates a reply with patch semantics.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.replies.update</tt>.
module Network.Google.Resource.Drive.Replies.Update

-- | A resource alias for <tt>drive.replies.update</tt> method which the
--   <a>RepliesUpdate</a> request conforms to.
type RepliesUpdateResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("comments" :> (Capture "commentId" Text :> ("replies" :> (Capture "replyId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Reply :> Patch '[JSON] Reply)))))))))

-- | Creates a value of <a>RepliesUpdate</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>ruPayload</a></li>
--   <li><a>ruReplyId</a></li>
--   <li><a>ruFileId</a></li>
--   <li><a>ruCommentId</a></li>
--   </ul>
repliesUpdate :: Reply -> Text -> Text -> Text -> RepliesUpdate

-- | Updates a reply with patch semantics.
--   
--   <i>See:</i> <a>repliesUpdate</a> smart constructor.
data RepliesUpdate

-- | Multipart request metadata.
ruPayload :: Lens' RepliesUpdate Reply

-- | The ID of the reply.
ruReplyId :: Lens' RepliesUpdate Text

-- | The ID of the file.
ruFileId :: Lens' RepliesUpdate Text

-- | The ID of the comment.
ruCommentId :: Lens' RepliesUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Replies.Update.RepliesUpdate
instance Data.Data.Data Network.Google.Resource.Drive.Replies.Update.RepliesUpdate
instance GHC.Show.Show Network.Google.Resource.Drive.Replies.Update.RepliesUpdate
instance GHC.Classes.Eq Network.Google.Resource.Drive.Replies.Update.RepliesUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Replies.Update.RepliesUpdate


-- | Permanently deletes a revision. This method is only applicable to
--   files with binary content in Drive.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.revisions.delete</tt>.
module Network.Google.Resource.Drive.Revisions.Delete

-- | A resource alias for <tt>drive.revisions.delete</tt> method which the
--   <a>RevisionsDelete</a> request conforms to.
type RevisionsDeleteResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("revisions" :> (Capture "revisionId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))

-- | Creates a value of <a>RevisionsDelete</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>rFileId</a></li>
--   <li><a>rRevisionId</a></li>
--   </ul>
revisionsDelete :: Text -> Text -> RevisionsDelete

-- | Permanently deletes a revision. This method is only applicable to
--   files with binary content in Drive.
--   
--   <i>See:</i> <a>revisionsDelete</a> smart constructor.
data RevisionsDelete

-- | The ID of the file.
rFileId :: Lens' RevisionsDelete Text

-- | The ID of the revision.
rRevisionId :: Lens' RevisionsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Revisions.Delete.RevisionsDelete
instance Data.Data.Data Network.Google.Resource.Drive.Revisions.Delete.RevisionsDelete
instance GHC.Show.Show Network.Google.Resource.Drive.Revisions.Delete.RevisionsDelete
instance GHC.Classes.Eq Network.Google.Resource.Drive.Revisions.Delete.RevisionsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Revisions.Delete.RevisionsDelete


-- | Gets a revision's metadata or content by ID.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.revisions.get</tt>.
module Network.Google.Resource.Drive.Revisions.Get

-- | A resource alias for <tt>drive.revisions.get</tt> method which the
--   <a>RevisionsGet</a> request conforms to.
type RevisionsGetResource = ("drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("revisions" :> (Capture "revisionId" Text :> (QueryParam "acknowledgeAbuse" Bool :> (QueryParam "alt" AltJSON :> Get '[JSON] Revision)))))))) :<|> ("drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("revisions" :> (Capture "revisionId" Text :> (QueryParam "acknowledgeAbuse" Bool :> (QueryParam "alt" AltMedia :> Get '[OctetStream] Stream))))))))

-- | Creates a value of <a>RevisionsGet</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>rggAcknowledgeAbuse</a></li>
--   <li><a>rggFileId</a></li>
--   <li><a>rggRevisionId</a></li>
--   </ul>
revisionsGet :: Text -> Text -> RevisionsGet

-- | Gets a revision's metadata or content by ID.
--   
--   <i>See:</i> <a>revisionsGet</a> smart constructor.
data RevisionsGet

-- | Whether the user is acknowledging the risk of downloading known
--   malware or other abusive files. This is only applicable when
--   alt=media.
rggAcknowledgeAbuse :: Lens' RevisionsGet Bool

-- | The ID of the file.
rggFileId :: Lens' RevisionsGet Text

-- | The ID of the revision.
rggRevisionId :: Lens' RevisionsGet Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Revisions.Get.RevisionsGet
instance Data.Data.Data Network.Google.Resource.Drive.Revisions.Get.RevisionsGet
instance GHC.Show.Show Network.Google.Resource.Drive.Revisions.Get.RevisionsGet
instance GHC.Classes.Eq Network.Google.Resource.Drive.Revisions.Get.RevisionsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Revisions.Get.RevisionsGet
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaDownload Network.Google.Resource.Drive.Revisions.Get.RevisionsGet)


-- | Lists a file's revisions.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.revisions.list</tt>.
module Network.Google.Resource.Drive.Revisions.List

-- | A resource alias for <tt>drive.revisions.list</tt> method which the
--   <a>RevisionsList</a> request conforms to.
type RevisionsListResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("revisions" :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] RevisionList)))))))

-- | Creates a value of <a>RevisionsList</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>rllPageToken</a></li>
--   <li><a>rllFileId</a></li>
--   <li><a>rllPageSize</a></li>
--   </ul>
revisionsList :: Text -> RevisionsList

-- | Lists a file's revisions.
--   
--   <i>See:</i> <a>revisionsList</a> smart constructor.
data RevisionsList

-- | The token for continuing a previous list request on the next page.
--   This should be set to the value of 'nextPageToken' from the previous
--   response.
rllPageToken :: Lens' RevisionsList (Maybe Text)

-- | The ID of the file.
rllFileId :: Lens' RevisionsList Text

-- | The maximum number of revisions to return per page.
rllPageSize :: Lens' RevisionsList Int32
instance GHC.Generics.Generic Network.Google.Resource.Drive.Revisions.List.RevisionsList
instance Data.Data.Data Network.Google.Resource.Drive.Revisions.List.RevisionsList
instance GHC.Show.Show Network.Google.Resource.Drive.Revisions.List.RevisionsList
instance GHC.Classes.Eq Network.Google.Resource.Drive.Revisions.List.RevisionsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Revisions.List.RevisionsList


-- | Updates a revision with patch semantics.
--   
--   <i>See:</i> <a>Drive API Reference</a> for
--   <tt>drive.revisions.update</tt>.
module Network.Google.Resource.Drive.Revisions.Update

-- | A resource alias for <tt>drive.revisions.update</tt> method which the
--   <a>RevisionsUpdate</a> request conforms to.
type RevisionsUpdateResource = "drive" :> ("v3" :> ("files" :> (Capture "fileId" Text :> ("revisions" :> (Capture "revisionId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Revision :> Patch '[JSON] Revision)))))))

-- | Creates a value of <a>RevisionsUpdate</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>revPayload</a></li>
--   <li><a>revFileId</a></li>
--   <li><a>revRevisionId</a></li>
--   </ul>
revisionsUpdate :: Revision -> Text -> Text -> RevisionsUpdate

-- | Updates a revision with patch semantics.
--   
--   <i>See:</i> <a>revisionsUpdate</a> smart constructor.
data RevisionsUpdate

-- | Multipart request metadata.
revPayload :: Lens' RevisionsUpdate Revision

-- | The ID of the file.
revFileId :: Lens' RevisionsUpdate Text

-- | The ID of the revision.
revRevisionId :: Lens' RevisionsUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.Drive.Revisions.Update.RevisionsUpdate
instance Data.Data.Data Network.Google.Resource.Drive.Revisions.Update.RevisionsUpdate
instance GHC.Show.Show Network.Google.Resource.Drive.Revisions.Update.RevisionsUpdate
instance GHC.Classes.Eq Network.Google.Resource.Drive.Revisions.Update.RevisionsUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Drive.Revisions.Update.RevisionsUpdate


-- | Manages files in Drive including uploading, downloading, searching,
--   detecting changes, and updating sharing permissions.
--   
--   <i>See:</i> <a>Drive API Reference</a>
module Network.Google.Drive

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

-- | View metadata for files in your Google Drive
driveMetadataReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/drive.metadata.readonly"]

-- | View the photos, videos and albums in your Google Photos
drivePhotosReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/drive.photos.readonly"]

-- | View and manage its own configuration data in your Google Drive
driveAppDataScope :: Proxy '["https://www.googleapis.com/auth/drive.appdata"]

-- | View the files in your Google Drive
driveReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/drive.readonly"]

-- | View and manage the files in your Google Drive
driveScope :: Proxy '["https://www.googleapis.com/auth/drive"]

-- | View and manage Google Drive files and folders that you have opened or
--   created with this app
driveFileScope :: Proxy '["https://www.googleapis.com/auth/drive.file"]

-- | View and manage metadata of files in your Google Drive
driveMetadataScope :: Proxy '["https://www.googleapis.com/auth/drive.metadata"]

-- | Modify your Google Apps Script scripts' behavior
driveScriptsScope :: Proxy '["https://www.googleapis.com/auth/drive.scripts"]

-- | Represents the entirety of the methods and resources available for the
--   Drive API service.
type DriveAPI = ChangesListResource :<|> (ChangesGetStartPageTokenResource :<|> (ChangesWatchResource :<|> (ChannelsStopResource :<|> (RepliesListResource :<|> (RepliesGetResource :<|> (RepliesCreateResource :<|> (RepliesDeleteResource :<|> (RepliesUpdateResource :<|> (AboutGetResource :<|> (FilesExportResource :<|> (FilesListResource :<|> (FilesCopyResource :<|> (FilesGetResource :<|> (FilesEmptyTrashResource :<|> (FilesCreateResource :<|> (FilesGenerateIdsResource :<|> (FilesDeleteResource :<|> (FilesUpdateResource :<|> (FilesWatchResource :<|> (PermissionsListResource :<|> (PermissionsGetResource :<|> (PermissionsCreateResource :<|> (PermissionsDeleteResource :<|> (PermissionsUpdateResource :<|> (CommentsListResource :<|> (CommentsGetResource :<|> (CommentsCreateResource :<|> (CommentsDeleteResource :<|> (CommentsUpdateResource :<|> (RevisionsListResource :<|> (RevisionsGetResource :<|> (RevisionsDeleteResource :<|> RevisionsUpdateResource))))))))))))))))))))))))))))))))

-- | A list of files.
--   
--   <i>See:</i> <a>fileList</a> smart constructor.
data FileList

-- | Creates a value of <a>FileList</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>flNextPageToken</a></li>
--   <li><a>flKind</a></li>
--   <li><a>flFiles</a></li>
--   </ul>
fileList :: FileList

-- | The page token for the next page of files. This will be absent if the
--   end of the files list has been reached. If the token is rejected for
--   any reason, it should be discarded, and pagination should be restarted
--   from the first page of results.
flNextPageToken :: Lens' FileList (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#fileList".
flKind :: Lens' FileList Text

-- | The list of files. If nextPageToken is populated, then this list may
--   be incomplete and an additional page of results should be fetched.
flFiles :: Lens' FileList [File]

-- | The source of files to list.
data FilesListCorpus

-- | <tt>domain</tt> Files shared to the user's domain.
FLCDomain :: FilesListCorpus

-- | <tt>user</tt> Files owned by or shared to the user.
FLCUser :: FilesListCorpus

-- | The file content to which the comment refers, typically within the
--   anchor region. For a text file, for example, this would be the text at
--   the location of the comment.
--   
--   <i>See:</i> <a>commentQuotedFileContent</a> smart constructor.
data CommentQuotedFileContent

-- | Creates a value of <a>CommentQuotedFileContent</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>cqfcValue</a></li>
--   <li><a>cqfcMimeType</a></li>
--   </ul>
commentQuotedFileContent :: CommentQuotedFileContent

-- | The quoted content itself. This is interpreted as plain text if set
--   through the API.
cqfcValue :: Lens' CommentQuotedFileContent (Maybe Text)

-- | The MIME type of the quoted content.
cqfcMimeType :: Lens' CommentQuotedFileContent (Maybe Text)

-- | The user's storage quota limits and usage. All fields are measured in
--   bytes.
--   
--   <i>See:</i> <a>aboutStorageQuota</a> smart constructor.
data AboutStorageQuota

-- | Creates a value of <a>AboutStorageQuota</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>asqUsageInDriveTrash</a></li>
--   <li><a>asqLimit</a></li>
--   <li><a>asqUsage</a></li>
--   <li><a>asqUsageInDrive</a></li>
--   </ul>
aboutStorageQuota :: AboutStorageQuota

-- | The usage by trashed files in Google Drive.
asqUsageInDriveTrash :: Lens' AboutStorageQuota (Maybe Int64)

-- | The usage limit, if applicable. This will not be present if the user
--   has unlimited storage.
asqLimit :: Lens' AboutStorageQuota (Maybe Int64)

-- | The total usage across all services.
asqUsage :: Lens' AboutStorageQuota (Maybe Int64)

-- | The usage by all files in Google Drive.
asqUsageInDrive :: Lens' AboutStorageQuota (Maybe Int64)

-- | A reply to a comment on a file.
--   
--   <i>See:</i> <a>reply</a> smart constructor.
data Reply

-- | Creates a value of <a>Reply</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>rHTMLContent</a></li>
--   <li><a>rModifiedTime</a></li>
--   <li><a>rCreatedTime</a></li>
--   <li><a>rKind</a></li>
--   <li><a>rAction</a></li>
--   <li><a>rContent</a></li>
--   <li><a>rAuthor</a></li>
--   <li><a>rId</a></li>
--   <li><a>rDeleted</a></li>
--   </ul>
reply :: Reply

-- | The content of the reply with HTML formatting.
rHTMLContent :: Lens' Reply (Maybe Text)

-- | The last time the reply was modified (RFC 3339 date-time).
rModifiedTime :: Lens' Reply (Maybe UTCTime)

-- | The time at which the reply was created (RFC 3339 date-time).
rCreatedTime :: Lens' Reply (Maybe UTCTime)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#reply".
rKind :: Lens' Reply Text

-- | The action the reply performed to the parent comment. Valid values
--   are: - resolve - reopen
rAction :: Lens' Reply (Maybe Text)

-- | The plain text content of the reply. This field is used for setting
--   the content, while htmlContent should be displayed. This is required
--   on creates if no action is specified.
rContent :: Lens' Reply (Maybe Text)

-- | The user who created the reply.
rAuthor :: Lens' Reply (Maybe User)

-- | The ID of the reply.
rId :: Lens' Reply (Maybe Text)

-- | Whether the reply has been deleted. A deleted reply has no content.
rDeleted :: Lens' Reply (Maybe Bool)

-- | A map of source MIME type to possible targets for all supported
--   imports.
--   
--   <i>See:</i> <a>aboutImportFormats</a> smart constructor.
data AboutImportFormats

-- | Creates a value of <a>AboutImportFormats</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>aifAddtional</a></li>
--   </ul>
aboutImportFormats :: HashMap Text [Text] -> AboutImportFormats
aifAddtional :: Lens' AboutImportFormats (HashMap Text [Text])

-- | Capabilities the current user has on the file.
--   
--   <i>See:</i> <a>fileCapabilities</a> smart constructor.
data FileCapabilities

-- | Creates a value of <a>FileCapabilities</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>fcCanComment</a></li>
--   <li><a>fcCanEdit</a></li>
--   <li><a>fcCanReadRevisions</a></li>
--   <li><a>fcCanCopy</a></li>
--   <li><a>fcCanShare</a></li>
--   </ul>
fileCapabilities :: FileCapabilities

-- | Whether the user can comment on the file.
fcCanComment :: Lens' FileCapabilities (Maybe Bool)

-- | Whether the user can edit the file's content.
fcCanEdit :: Lens' FileCapabilities (Maybe Bool)

-- | Whether the current user has read access to the Revisions resource of
--   the file.
fcCanReadRevisions :: Lens' FileCapabilities (Maybe Bool)

-- | Whether the user can copy the file.
fcCanCopy :: Lens' FileCapabilities (Maybe Bool)

-- | Whether the user can modify the file's permissions and sharing
--   settings.
fcCanShare :: Lens' FileCapabilities (Maybe Bool)

-- | A list of replies to a comment on a file.
--   
--   <i>See:</i> <a>replyList</a> smart constructor.
data ReplyList

-- | Creates a value of <a>ReplyList</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>rlNextPageToken</a></li>
--   <li><a>rlKind</a></li>
--   <li><a>rlReplies</a></li>
--   </ul>
replyList :: ReplyList

-- | The page token for the next page of replies. This will be absent if
--   the end of the replies list has been reached. If the token is rejected
--   for any reason, it should be discarded, and pagination should be
--   restarted from the first page of results.
rlNextPageToken :: Lens' ReplyList (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#replyList".
rlKind :: Lens' ReplyList Text

-- | The list of replies. If nextPageToken is populated, then this list may
--   be incomplete and an additional page of results should be fetched.
rlReplies :: Lens' ReplyList [Reply]

-- | A thumbnail for the file. This will only be used if Drive cannot
--   generate a standard thumbnail.
--   
--   <i>See:</i> <a>fileContentHintsThumbnail</a> smart constructor.
data FileContentHintsThumbnail

-- | Creates a value of <a>FileContentHintsThumbnail</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>fchtImage</a></li>
--   <li><a>fchtMimeType</a></li>
--   </ul>
fileContentHintsThumbnail :: FileContentHintsThumbnail

-- | The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
fchtImage :: Lens' FileContentHintsThumbnail (Maybe ByteString)

-- | The MIME type of the thumbnail.
fchtMimeType :: Lens' FileContentHintsThumbnail (Maybe Text)

-- | An notification channel used to watch for resource changes.
--   
--   <i>See:</i> <a>channel</a> smart constructor.
data Channel

-- | Creates a value of <a>Channel</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>cResourceURI</a></li>
--   <li><a>cResourceId</a></li>
--   <li><a>cKind</a></li>
--   <li><a>cExpiration</a></li>
--   <li><a>cToken</a></li>
--   <li><a>cAddress</a></li>
--   <li><a>cPayload</a></li>
--   <li><a>cParams</a></li>
--   <li><a>cId</a></li>
--   <li><a>cType</a></li>
--   </ul>
channel :: Channel

-- | A version-specific identifier for the watched resource.
cResourceURI :: Lens' Channel (Maybe Text)

-- | An opaque ID that identifies the resource being watched on this
--   channel. Stable across different API versions.
cResourceId :: Lens' Channel (Maybe Text)

-- | Identifies this as a notification channel used to watch for changes to
--   a resource. Value: the fixed string "api#channel".
cKind :: Lens' Channel Text

-- | Date and time of notification channel expiration, expressed as a Unix
--   timestamp, in milliseconds. Optional.
cExpiration :: Lens' Channel (Maybe Int64)

-- | An arbitrary string delivered to the target address with each
--   notification delivered over this channel. Optional.
cToken :: Lens' Channel (Maybe Text)

-- | The address where notifications are delivered for this channel.
cAddress :: Lens' Channel (Maybe Text)

-- | A Boolean value to indicate whether payload is wanted. Optional.
cPayload :: Lens' Channel (Maybe Bool)

-- | Additional parameters controlling delivery channel behavior. Optional.
cParams :: Lens' Channel (Maybe ChannelParams)

-- | A UUID or similar unique string that identifies this channel.
cId :: Lens' Channel (Maybe Text)

-- | The type of delivery mechanism used for this channel.
cType :: Lens' Channel (Maybe Text)

-- | Additional metadata about video media. This may not be available
--   immediately upon upload.
--   
--   <i>See:</i> <a>fileVideoMediaMetadata</a> smart constructor.
data FileVideoMediaMetadata

-- | Creates a value of <a>FileVideoMediaMetadata</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>fvmmHeight</a></li>
--   <li><a>fvmmWidth</a></li>
--   <li><a>fvmmDurationMillis</a></li>
--   </ul>
fileVideoMediaMetadata :: FileVideoMediaMetadata

-- | The height of the video in pixels.
fvmmHeight :: Lens' FileVideoMediaMetadata (Maybe Int32)

-- | The width of the video in pixels.
fvmmWidth :: Lens' FileVideoMediaMetadata (Maybe Int32)

-- | The duration of the video in milliseconds.
fvmmDurationMillis :: Lens' FileVideoMediaMetadata (Maybe Int64)

-- | A collection of arbitrary key-value pairs which are private to the
--   requesting app. Entries with null values are cleared in update and
--   copy requests.
--   
--   <i>See:</i> <a>fileAppProperties</a> smart constructor.
data FileAppProperties

-- | Creates a value of <a>FileAppProperties</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>fapAddtional</a></li>
--   </ul>
fileAppProperties :: HashMap Text Text -> FileAppProperties
fapAddtional :: Lens' FileAppProperties (HashMap Text Text)

-- | A change to a file.
--   
--   <i>See:</i> <a>change</a> smart constructor.
data Change

-- | Creates a value of <a>Change</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>chaRemoved</a></li>
--   <li><a>chaTime</a></li>
--   <li><a>chaKind</a></li>
--   <li><a>chaFileId</a></li>
--   <li><a>chaFile</a></li>
--   </ul>
change :: Change

-- | Whether the file has been removed from the view of the changes list,
--   for example by deletion or lost access.
chaRemoved :: Lens' Change (Maybe Bool)

-- | The time of this change (RFC 3339 date-time).
chaTime :: Lens' Change (Maybe UTCTime)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#change".
chaKind :: Lens' Change Text

-- | The ID of the file which has changed.
chaFileId :: Lens' Change (Maybe Text)

-- | The updated state of the file. Present if the file has not been
--   removed.
chaFile :: Lens' Change (Maybe File)

-- | A map of source MIME type to possible targets for all supported
--   exports.
--   
--   <i>See:</i> <a>aboutExportFormats</a> smart constructor.
data AboutExportFormats

-- | Creates a value of <a>AboutExportFormats</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>aefAddtional</a></li>
--   </ul>
aboutExportFormats :: HashMap Text [Text] -> AboutExportFormats
aefAddtional :: Lens' AboutExportFormats (HashMap Text [Text])

-- | Information about a Drive user.
--   
--   <i>See:</i> <a>user</a> smart constructor.
data User

-- | Creates a value of <a>User</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>uPhotoLink</a></li>
--   <li><a>uMe</a></li>
--   <li><a>uKind</a></li>
--   <li><a>uEmailAddress</a></li>
--   <li><a>uDisplayName</a></li>
--   <li><a>uPermissionId</a></li>
--   </ul>
user :: User

-- | A link to the user's profile photo, if available.
uPhotoLink :: Lens' User (Maybe Text)

-- | Whether this user is the requesting user.
uMe :: Lens' User (Maybe Bool)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#user".
uKind :: Lens' User Text

-- | The email address of the user. This may not be present in certain
--   contexts if the user has not made their email address visible to the
--   requester.
uEmailAddress :: Lens' User (Maybe Text)

-- | A plain text displayable name for this user.
uDisplayName :: Lens' User (Maybe Text)

-- | The user's ID as visible in Permission resources.
uPermissionId :: Lens' User (Maybe Text)

-- | A list of changes for a user.
--   
--   <i>See:</i> <a>changeList</a> smart constructor.
data ChangeList

-- | Creates a value of <a>ChangeList</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>clNewStartPageToken</a></li>
--   <li><a>clNextPageToken</a></li>
--   <li><a>clChanges</a></li>
--   <li><a>clKind</a></li>
--   </ul>
changeList :: ChangeList

-- | The starting page token for future changes. This will be present only
--   if the end of the current changes list has been reached.
clNewStartPageToken :: Lens' ChangeList (Maybe Text)

-- | The page token for the next page of changes. This will be absent if
--   the end of the changes list has been reached. If the token is rejected
--   for any reason, it should be discarded, and pagination should be
--   restarted from the first page of results.
clNextPageToken :: Lens' ChangeList (Maybe Text)

-- | The list of changes. If nextPageToken is populated, then this list may
--   be incomplete and an additional page of results should be fetched.
clChanges :: Lens' ChangeList [Change]

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#changeList".
clKind :: Lens' ChangeList Text

-- | Additional information about the content of the file. These fields are
--   never populated in responses.
--   
--   <i>See:</i> <a>fileContentHints</a> smart constructor.
data FileContentHints

-- | Creates a value of <a>FileContentHints</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>fchThumbnail</a></li>
--   <li><a>fchIndexableText</a></li>
--   </ul>
fileContentHints :: FileContentHints

-- | A thumbnail for the file. This will only be used if Drive cannot
--   generate a standard thumbnail.
fchThumbnail :: Lens' FileContentHints (Maybe FileContentHintsThumbnail)

-- | Text to be indexed for the file to improve fullText queries. This is
--   limited to 128KB in length and may contain HTML elements.
fchIndexableText :: Lens' FileContentHints (Maybe Text)

-- | Additional parameters controlling delivery channel behavior. Optional.
--   
--   <i>See:</i> <a>channelParams</a> smart constructor.
data ChannelParams

-- | Creates a value of <a>ChannelParams</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>cpAddtional</a></li>
--   </ul>
channelParams :: HashMap Text Text -> ChannelParams

-- | Declares a new parameter by name.
cpAddtional :: Lens' ChannelParams (HashMap Text Text)

-- | A collection of arbitrary key-value pairs which are visible to all
--   apps. Entries with null values are cleared in update and copy
--   requests.
--   
--   <i>See:</i> <a>fileProperties</a> smart constructor.
data FileProperties

-- | Creates a value of <a>FileProperties</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>fpAddtional</a></li>
--   </ul>
fileProperties :: HashMap Text Text -> FileProperties
fpAddtional :: Lens' FileProperties (HashMap Text Text)

-- | A map of maximum import sizes by MIME type, in bytes.
--   
--   <i>See:</i> <a>aboutMaxImportSizes</a> smart constructor.
data AboutMaxImportSizes

-- | Creates a value of <a>AboutMaxImportSizes</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>amisAddtional</a></li>
--   </ul>
aboutMaxImportSizes :: HashMap Text Int64 -> AboutMaxImportSizes
amisAddtional :: Lens' AboutMaxImportSizes (HashMap Text Int64)

-- | Information about the user, the user's Drive, and system capabilities.
--   
--   <i>See:</i> <a>about</a> smart constructor.
data About

-- | Creates a value of <a>About</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>aExportFormats</a></li>
--   <li><a>aMaxImportSizes</a></li>
--   <li><a>aImportFormats</a></li>
--   <li><a>aKind</a></li>
--   <li><a>aAppInstalled</a></li>
--   <li><a>aUser</a></li>
--   <li><a>aStorageQuota</a></li>
--   <li><a>aMaxUploadSize</a></li>
--   <li><a>aFolderColorPalette</a></li>
--   </ul>
about :: About

-- | A map of source MIME type to possible targets for all supported
--   exports.
aExportFormats :: Lens' About (Maybe AboutExportFormats)

-- | A map of maximum import sizes by MIME type, in bytes.
aMaxImportSizes :: Lens' About (Maybe AboutMaxImportSizes)

-- | A map of source MIME type to possible targets for all supported
--   imports.
aImportFormats :: Lens' About (Maybe AboutImportFormats)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#about".
aKind :: Lens' About Text

-- | Whether the user has installed the requesting app.
aAppInstalled :: Lens' About (Maybe Bool)

-- | The authenticated user.
aUser :: Lens' About (Maybe User)

-- | The user's storage quota limits and usage. All fields are measured in
--   bytes.
aStorageQuota :: Lens' About (Maybe AboutStorageQuota)

-- | The maximum upload size in bytes.
aMaxUploadSize :: Lens' About (Maybe Int64)

-- | The currently supported folder colors as RGB hex strings.
aFolderColorPalette :: Lens' About [Text]

-- | Geographic location information stored in the image.
--   
--   <i>See:</i> <a>fileImageMediaMetadataLocation</a> smart constructor.
data FileImageMediaMetadataLocation

-- | Creates a value of <a>FileImageMediaMetadataLocation</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>fimmlLatitude</a></li>
--   <li><a>fimmlAltitude</a></li>
--   <li><a>fimmlLongitude</a></li>
--   </ul>
fileImageMediaMetadataLocation :: FileImageMediaMetadataLocation

-- | The latitude stored in the image.
fimmlLatitude :: Lens' FileImageMediaMetadataLocation (Maybe Double)

-- | The altitude stored in the image.
fimmlAltitude :: Lens' FileImageMediaMetadataLocation (Maybe Double)

-- | The longitude stored in the image.
fimmlLongitude :: Lens' FileImageMediaMetadataLocation (Maybe Double)
data StartPageToken

-- | Creates a value of <a>StartPageToken</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>sptKind</a></li>
--   <li><a>sptStartPageToken</a></li>
--   </ul>
startPageToken :: StartPageToken

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#startPageToken".
sptKind :: Lens' StartPageToken Text

-- | The starting page token for listing changes.
sptStartPageToken :: Lens' StartPageToken (Maybe Text)

-- | Additional metadata about image media, if available.
--   
--   <i>See:</i> <a>fileImageMediaMetadata</a> smart constructor.
data FileImageMediaMetadata

-- | Creates a value of <a>FileImageMediaMetadata</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>fimmRotation</a></li>
--   <li><a>fimmHeight</a></li>
--   <li><a>fimmSubjectDistance</a></li>
--   <li><a>fimmMaxApertureValue</a></li>
--   <li><a>fimmIsoSpeed</a></li>
--   <li><a>fimmTime</a></li>
--   <li><a>fimmLocation</a></li>
--   <li><a>fimmAperture</a></li>
--   <li><a>fimmFocalLength</a></li>
--   <li><a>fimmCameraMake</a></li>
--   <li><a>fimmWidth</a></li>
--   <li><a>fimmExposureTime</a></li>
--   <li><a>fimmCameraModel</a></li>
--   <li><a>fimmWhiteBalance</a></li>
--   <li><a>fimmLens</a></li>
--   <li><a>fimmFlashUsed</a></li>
--   <li><a>fimmExposureBias</a></li>
--   <li><a>fimmMeteringMode</a></li>
--   <li><a>fimmExposureMode</a></li>
--   <li><a>fimmSensor</a></li>
--   <li><a>fimmColorSpace</a></li>
--   </ul>
fileImageMediaMetadata :: FileImageMediaMetadata

-- | The rotation in clockwise degrees from the image's original
--   orientation.
fimmRotation :: Lens' FileImageMediaMetadata (Maybe Int32)

-- | The height of the image in pixels.
fimmHeight :: Lens' FileImageMediaMetadata (Maybe Int32)

-- | The distance to the subject of the photo, in meters.
fimmSubjectDistance :: Lens' FileImageMediaMetadata (Maybe Int32)

-- | The smallest f-number of the lens at the focal length used to create
--   the photo (APEX value).
fimmMaxApertureValue :: Lens' FileImageMediaMetadata (Maybe Double)

-- | The ISO speed used to create the photo.
fimmIsoSpeed :: Lens' FileImageMediaMetadata (Maybe Int32)

-- | The date and time the photo was taken (EXIF DateTime).
fimmTime :: Lens' FileImageMediaMetadata (Maybe Text)

-- | Geographic location information stored in the image.
fimmLocation :: Lens' FileImageMediaMetadata (Maybe FileImageMediaMetadataLocation)

-- | The aperture used to create the photo (f-number).
fimmAperture :: Lens' FileImageMediaMetadata (Maybe Double)

-- | The focal length used to create the photo, in millimeters.
fimmFocalLength :: Lens' FileImageMediaMetadata (Maybe Double)

-- | The make of the camera used to create the photo.
fimmCameraMake :: Lens' FileImageMediaMetadata (Maybe Text)

-- | The width of the image in pixels.
fimmWidth :: Lens' FileImageMediaMetadata (Maybe Int32)

-- | The length of the exposure, in seconds.
fimmExposureTime :: Lens' FileImageMediaMetadata (Maybe Double)

-- | The model of the camera used to create the photo.
fimmCameraModel :: Lens' FileImageMediaMetadata (Maybe Text)

-- | The white balance mode used to create the photo.
fimmWhiteBalance :: Lens' FileImageMediaMetadata (Maybe Text)

-- | The lens used to create the photo.
fimmLens :: Lens' FileImageMediaMetadata (Maybe Text)

-- | Whether a flash was used to create the photo.
fimmFlashUsed :: Lens' FileImageMediaMetadata (Maybe Bool)

-- | The exposure bias of the photo (APEX value).
fimmExposureBias :: Lens' FileImageMediaMetadata (Maybe Double)

-- | The metering mode used to create the photo.
fimmMeteringMode :: Lens' FileImageMediaMetadata (Maybe Text)

-- | The exposure mode used to create the photo.
fimmExposureMode :: Lens' FileImageMediaMetadata (Maybe Text)

-- | The type of sensor used to create the photo.
fimmSensor :: Lens' FileImageMediaMetadata (Maybe Text)

-- | The color space of the photo.
fimmColorSpace :: Lens' FileImageMediaMetadata (Maybe Text)

-- | A comment on a file.
--   
--   <i>See:</i> <a>comment</a> smart constructor.
data Comment

-- | Creates a value of <a>Comment</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>comHTMLContent</a></li>
--   <li><a>comModifiedTime</a></li>
--   <li><a>comCreatedTime</a></li>
--   <li><a>comKind</a></li>
--   <li><a>comResolved</a></li>
--   <li><a>comQuotedFileContent</a></li>
--   <li><a>comAnchor</a></li>
--   <li><a>comContent</a></li>
--   <li><a>comReplies</a></li>
--   <li><a>comAuthor</a></li>
--   <li><a>comId</a></li>
--   <li><a>comDeleted</a></li>
--   </ul>
comment :: Comment

-- | The content of the comment with HTML formatting.
comHTMLContent :: Lens' Comment (Maybe Text)

-- | The last time the comment or any of its replies was modified (RFC 3339
--   date-time).
comModifiedTime :: Lens' Comment (Maybe UTCTime)

-- | The time at which the comment was created (RFC 3339 date-time).
comCreatedTime :: Lens' Comment (Maybe UTCTime)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#comment".
comKind :: Lens' Comment Text

-- | Whether the comment has been resolved by one of its replies.
comResolved :: Lens' Comment (Maybe Bool)

-- | The file content to which the comment refers, typically within the
--   anchor region. For a text file, for example, this would be the text at
--   the location of the comment.
comQuotedFileContent :: Lens' Comment (Maybe CommentQuotedFileContent)

-- | A region of the document represented as a JSON string. See anchor
--   documentation for details on how to define and interpret anchor
--   properties.
comAnchor :: Lens' Comment (Maybe Text)

-- | The plain text content of the comment. This field is used for setting
--   the content, while htmlContent should be displayed.
comContent :: Lens' Comment (Maybe Text)

-- | The full list of replies to the comment in chronological order.
comReplies :: Lens' Comment [Reply]

-- | The user who created the comment.
comAuthor :: Lens' Comment (Maybe User)

-- | The ID of the comment.
comId :: Lens' Comment (Maybe Text)

-- | Whether the comment has been deleted. A deleted comment has no
--   content.
comDeleted :: Lens' Comment (Maybe Bool)

-- | The metadata for a revision to a file.
--   
--   <i>See:</i> <a>revision</a> smart constructor.
data Revision

-- | Creates a value of <a>Revision</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>revModifiedTime</a></li>
--   <li><a>revSize</a></li>
--   <li><a>revOriginalFilename</a></li>
--   <li><a>revKind</a></li>
--   <li><a>revPublished</a></li>
--   <li><a>revLastModifyingUser</a></li>
--   <li><a>revPublishAuto</a></li>
--   <li><a>revMD5Checksum</a></li>
--   <li><a>revKeepForever</a></li>
--   <li><a>revMimeType</a></li>
--   <li><a>revPublishedOutsideDomain</a></li>
--   <li><a>revId</a></li>
--   </ul>
revision :: Revision

-- | The last time the revision was modified (RFC 3339 date-time).
revModifiedTime :: Lens' Revision (Maybe UTCTime)

-- | The size of the revision's content in bytes. This is only applicable
--   to files with binary content in Drive.
revSize :: Lens' Revision (Maybe Int64)

-- | The original filename used to create this revision. This is only
--   applicable to files with binary content in Drive.
revOriginalFilename :: Lens' Revision (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#revision".
revKind :: Lens' Revision Text

-- | Whether this revision is published. This is only applicable to Google
--   Docs.
revPublished :: Lens' Revision (Maybe Bool)

-- | The last user to modify this revision.
revLastModifyingUser :: Lens' Revision (Maybe User)

-- | Whether subsequent revisions will be automatically republished. This
--   is only applicable to Google Docs.
revPublishAuto :: Lens' Revision (Maybe Bool)

-- | The MD5 checksum of the revision's content. This is only applicable to
--   files with binary content in Drive.
revMD5Checksum :: Lens' Revision (Maybe Text)

-- | Whether to keep this revision forever, even if it is no longer the
--   head revision. If not set, the revision will be automatically purged
--   30 days after newer content is uploaded. This can be set on a maximum
--   of 200 revisions for a file. This field is only applicable to files
--   with binary content in Drive.
revKeepForever :: Lens' Revision (Maybe Bool)

-- | The MIME type of the revision.
revMimeType :: Lens' Revision (Maybe Text)

-- | Whether this revision is published outside the domain. This is only
--   applicable to Google Docs.
revPublishedOutsideDomain :: Lens' Revision (Maybe Bool)

-- | The ID of the revision.
revId :: Lens' Revision (Maybe Text)

-- | A permission for a file. A permission grants a user, group, domain or
--   the world access to a file or a folder hierarchy.
--   
--   <i>See:</i> <a>permission</a> smart constructor.
data Permission

-- | Creates a value of <a>Permission</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>pPhotoLink</a></li>
--   <li><a>pKind</a></li>
--   <li><a>pDomain</a></li>
--   <li><a>pRole</a></li>
--   <li><a>pEmailAddress</a></li>
--   <li><a>pAllowFileDiscovery</a></li>
--   <li><a>pDisplayName</a></li>
--   <li><a>pId</a></li>
--   <li><a>pType</a></li>
--   <li><a>pExpirationTime</a></li>
--   </ul>
permission :: Permission

-- | A link to the user's profile photo, if available.
pPhotoLink :: Lens' Permission (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#permission".
pKind :: Lens' Permission Text

-- | The domain to which this permission refers.
pDomain :: Lens' Permission (Maybe Text)

-- | The role granted by this permission. Valid values are: - owner -
--   writer - commenter - reader
pRole :: Lens' Permission (Maybe Text)

-- | The email address of the user or group to which this permission
--   refers.
pEmailAddress :: Lens' Permission (Maybe Text)

-- | Whether the permission allows the file to be discovered through
--   search. This is only applicable for permissions of type domain or
--   anyone.
pAllowFileDiscovery :: Lens' Permission (Maybe Bool)

-- | A displayable name for users, groups or domains.
pDisplayName :: Lens' Permission (Maybe Text)

-- | The ID of this permission. This is a unique identifier for the
--   grantee, and is published in User resources as permissionId.
pId :: Lens' Permission (Maybe Text)

-- | The type of the grantee. Valid values are: - user - group - domain -
--   anyone
pType :: Lens' Permission (Maybe Text)

-- | The time at which this permission will expire (RFC 3339 date-time).
pExpirationTime :: Lens' Permission (Maybe UTCTime)

-- | The metadata for a file.
--   
--   <i>See:</i> <a>file</a> smart constructor.
data File

-- | Creates a value of <a>File</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>fOwnedByMe</a></li>
--   <li><a>fThumbnailLink</a></li>
--   <li><a>fFullFileExtension</a></li>
--   <li><a>fModifiedTime</a></li>
--   <li><a>fModifiedByMeTime</a></li>
--   <li><a>fFileExtension</a></li>
--   <li><a>fViewedByMe</a></li>
--   <li><a>fOwners</a></li>
--   <li><a>fViewedByMeTime</a></li>
--   <li><a>fModifiedByMe</a></li>
--   <li><a>fSize</a></li>
--   <li><a>fTrashed</a></li>
--   <li><a>fWebViewLink</a></li>
--   <li><a>fCreatedTime</a></li>
--   <li><a>fOriginalFilename</a></li>
--   <li><a>fKind</a></li>
--   <li><a>fLastModifyingUser</a></li>
--   <li><a>fIconLink</a></li>
--   <li><a>fHasThumbnail</a></li>
--   <li><a>fThumbnailVersion</a></li>
--   <li><a>fImageMediaMetadata</a></li>
--   <li><a>fExplicitlyTrashed</a></li>
--   <li><a>fShared</a></li>
--   <li><a>fMD5Checksum</a></li>
--   <li><a>fFolderColorRgb</a></li>
--   <li><a>fMimeType</a></li>
--   <li><a>fIsAppAuthorized</a></li>
--   <li><a>fName</a></li>
--   <li><a>fParents</a></li>
--   <li><a>fStarred</a></li>
--   <li><a>fSpaces</a></li>
--   <li><a>fVersion</a></li>
--   <li><a>fWritersCanShare</a></li>
--   <li><a>fId</a></li>
--   <li><a>fPermissions</a></li>
--   <li><a>fQuotaBytesUsed</a></li>
--   <li><a>fAppProperties</a></li>
--   <li><a>fVideoMediaMetadata</a></li>
--   <li><a>fSharedWithMeTime</a></li>
--   <li><a>fHeadRevisionId</a></li>
--   <li><a>fCapabilities</a></li>
--   <li><a>fDescription</a></li>
--   <li><a>fViewersCanCopyContent</a></li>
--   <li><a>fSharingUser</a></li>
--   <li><a>fWebContentLink</a></li>
--   <li><a>fContentHints</a></li>
--   <li><a>fProperties</a></li>
--   </ul>
file :: File

-- | Whether the user owns the file.
fOwnedByMe :: Lens' File (Maybe Bool)

-- | A short-lived link to the file's thumbnail, if available. Typically
--   lasts on the order of hours. Only populated when the requesting app
--   can access the file's content.
fThumbnailLink :: Lens' File (Maybe Text)

-- | The full file extension extracted from the name field. May contain
--   multiple concatenated extensions, such as "tar.gz". This is only
--   available for files with binary content in Drive. This is
--   automatically updated when the name field changes, however it is not
--   cleared if the new name does not contain a valid extension.
fFullFileExtension :: Lens' File (Maybe Text)

-- | The last time the file was modified by anyone (RFC 3339 date-time).
--   Note that setting modifiedTime will also update modifiedByMeTime for
--   the user.
fModifiedTime :: Lens' File (Maybe UTCTime)

-- | The last time the file was modified by the user (RFC 3339 date-time).
fModifiedByMeTime :: Lens' File (Maybe UTCTime)

-- | The final component of fullFileExtension. This is only available for
--   files with binary content in Drive.
fFileExtension :: Lens' File (Maybe Text)

-- | Whether the file has been viewed by this user.
fViewedByMe :: Lens' File (Maybe Bool)

-- | The owners of the file. Currently, only certain legacy files may have
--   more than one owner.
fOwners :: Lens' File [User]

-- | The last time the file was viewed by the user (RFC 3339 date-time).
fViewedByMeTime :: Lens' File (Maybe UTCTime)

-- | Whether the file has been modified by this user.
fModifiedByMe :: Lens' File (Maybe Bool)

-- | The size of the file's content in bytes. This is only applicable to
--   files with binary content in Drive.
fSize :: Lens' File (Maybe Int64)

-- | Whether the file has been trashed, either explicitly or from a trashed
--   parent folder. Only the owner may trash a file, and other users cannot
--   see files in the owner's trash.
fTrashed :: Lens' File (Maybe Bool)

-- | A link for opening the file in a relevant Google editor or viewer in a
--   browser.
fWebViewLink :: Lens' File (Maybe Text)

-- | The time at which the file was created (RFC 3339 date-time).
fCreatedTime :: Lens' File (Maybe UTCTime)

-- | The original filename of the uploaded content if available, or else
--   the original value of the name field. This is only available for files
--   with binary content in Drive.
fOriginalFilename :: Lens' File (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#file".
fKind :: Lens' File Text

-- | The last user to modify the file.
fLastModifyingUser :: Lens' File (Maybe User)

-- | A static, unauthenticated link to the file's icon.
fIconLink :: Lens' File (Maybe Text)

-- | Whether this file has a thumbnail.
fHasThumbnail :: Lens' File (Maybe Bool)

-- | The thumbnail version for use in thumbnail cache invalidation.
fThumbnailVersion :: Lens' File (Maybe Int64)

-- | Additional metadata about image media, if available.
fImageMediaMetadata :: Lens' File (Maybe FileImageMediaMetadata)

-- | Whether the file has been explicitly trashed, as opposed to
--   recursively trashed from a parent folder.
fExplicitlyTrashed :: Lens' File (Maybe Bool)

-- | Whether the file has been shared.
fShared :: Lens' File (Maybe Bool)

-- | The MD5 checksum for the content of the file. This is only applicable
--   to files with binary content in Drive.
fMD5Checksum :: Lens' File (Maybe Text)

-- | The color for a folder as an RGB hex string. The supported colors are
--   published in the folderColorPalette field of the About resource. If an
--   unsupported color is specified, the closest color in the palette will
--   be used instead.
fFolderColorRgb :: Lens' File (Maybe Text)

-- | The MIME type of the file. Drive will attempt to automatically detect
--   an appropriate value from uploaded content if no value is provided.
--   The value cannot be changed unless a new revision is uploaded. If a
--   file is created with a Google Doc MIME type, the uploaded content will
--   be imported if possible. The supported import formats are published in
--   the About resource.
fMimeType :: Lens' File (Maybe Text)

-- | Whether the file was created or opened by the requesting app.
fIsAppAuthorized :: Lens' File (Maybe Bool)

-- | The name of the file. This is not necessarily unique within a folder.
fName :: Lens' File (Maybe Text)

-- | The IDs of the parent folders which contain the file. If not specified
--   as part of a create request, the file will be placed directly in the
--   My Drive folder. Update requests must use the addParents and
--   removeParents parameters to modify the values.
fParents :: Lens' File [Text]

-- | Whether the user has starred the file.
fStarred :: Lens' File (Maybe Bool)

-- | The list of spaces which contain the file. The currently supported
--   values are 'drive', 'appDataFolder' and 'photos'.
fSpaces :: Lens' File [Text]

-- | A monotonically increasing version number for the file. This reflects
--   every change made to the file on the server, even those not visible to
--   the user.
fVersion :: Lens' File (Maybe Int64)

-- | Whether users with only writer permission can modify the file's
--   permissions.
fWritersCanShare :: Lens' File (Maybe Bool)

-- | The ID of the file.
fId :: Lens' File (Maybe Text)

-- | The full list of permissions for the file. This is only available if
--   the requesting user can share the file.
fPermissions :: Lens' File [Permission]

-- | The number of storage quota bytes used by the file. This includes the
--   head revision as well as previous revisions with keepForever enabled.
fQuotaBytesUsed :: Lens' File (Maybe Int64)

-- | A collection of arbitrary key-value pairs which are private to the
--   requesting app. Entries with null values are cleared in update and
--   copy requests.
fAppProperties :: Lens' File (Maybe FileAppProperties)

-- | Additional metadata about video media. This may not be available
--   immediately upon upload.
fVideoMediaMetadata :: Lens' File (Maybe FileVideoMediaMetadata)

-- | The time at which the file was shared with the user, if applicable
--   (RFC 3339 date-time).
fSharedWithMeTime :: Lens' File (Maybe UTCTime)

-- | The ID of the file's head revision. This is currently only available
--   for files with binary content in Drive.
fHeadRevisionId :: Lens' File (Maybe Text)

-- | Capabilities the current user has on the file.
fCapabilities :: Lens' File (Maybe FileCapabilities)

-- | A short description of the file.
fDescription :: Lens' File (Maybe Text)

-- | Whether users with only reader or commenter permission can copy the
--   file's content. This affects copy, download, and print operations.
fViewersCanCopyContent :: Lens' File (Maybe Bool)

-- | The user who shared the file with the requesting user, if applicable.
fSharingUser :: Lens' File (Maybe User)

-- | A link for downloading the content of the file in a browser. This is
--   only available for files with binary content in Drive.
fWebContentLink :: Lens' File (Maybe Text)

-- | Additional information about the content of the file. These fields are
--   never populated in responses.
fContentHints :: Lens' File (Maybe FileContentHints)

-- | A collection of arbitrary key-value pairs which are visible to all
--   apps. Entries with null values are cleared in update and copy
--   requests.
fProperties :: Lens' File (Maybe FileProperties)

-- | A list of generated file IDs which can be provided in create requests.
--   
--   <i>See:</i> <a>generatedIds</a> smart constructor.
data GeneratedIds

-- | Creates a value of <a>GeneratedIds</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>giSpace</a></li>
--   <li><a>giKind</a></li>
--   <li><a>giIds</a></li>
--   </ul>
generatedIds :: GeneratedIds

-- | The type of file that can be created with these IDs.
giSpace :: Lens' GeneratedIds (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#generatedIds".
giKind :: Lens' GeneratedIds Text

-- | The IDs generated for the requesting user in the specified space.
giIds :: Lens' GeneratedIds [Text]

-- | A list of comments on a file.
--   
--   <i>See:</i> <a>commentList</a> smart constructor.
data CommentList

-- | Creates a value of <a>CommentList</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>cllNextPageToken</a></li>
--   <li><a>cllKind</a></li>
--   <li><a>cllComments</a></li>
--   </ul>
commentList :: CommentList

-- | The page token for the next page of comments. This will be absent if
--   the end of the comments list has been reached. If the token is
--   rejected for any reason, it should be discarded, and pagination should
--   be restarted from the first page of results.
cllNextPageToken :: Lens' CommentList (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#commentList".
cllKind :: Lens' CommentList Text

-- | The list of comments. If nextPageToken is populated, then this list
--   may be incomplete and an additional page of results should be fetched.
cllComments :: Lens' CommentList [Comment]

-- | A list of revisions of a file.
--   
--   <i>See:</i> <a>revisionList</a> smart constructor.
data RevisionList

-- | Creates a value of <a>RevisionList</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>rllNextPageToken</a></li>
--   <li><a>rllKind</a></li>
--   <li><a>rllRevisions</a></li>
--   </ul>
revisionList :: RevisionList

-- | The page token for the next page of revisions. This will be absent if
--   the end of the revisions list has been reached. If the token is
--   rejected for any reason, it should be discarded, and pagination should
--   be restarted from the first page of results.
rllNextPageToken :: Lens' RevisionList (Maybe Text)

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#revisionList".
rllKind :: Lens' RevisionList Text

-- | The list of revisions. If nextPageToken is populated, then this list
--   may be incomplete and an additional page of results should be fetched.
rllRevisions :: Lens' RevisionList [Revision]

-- | A list of permissions for a file.
--   
--   <i>See:</i> <a>permissionList</a> smart constructor.
data PermissionList

-- | Creates a value of <a>PermissionList</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>plKind</a></li>
--   <li><a>plPermissions</a></li>
--   </ul>
permissionList :: PermissionList

-- | Identifies what kind of resource this is. Value: the fixed string
--   "drive#permissionList".
plKind :: Lens' PermissionList Text

-- | The list of permissions.
plPermissions :: Lens' PermissionList [Permission]
