<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="drive_v3.html">Drive API</a> . <a href="drive_v3.files.html">files</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#copy">copy(fileId, body=None, enforceSingleParent=None, ignoreDefaultVisibility=None, keepRevisionForever=None, ocrLanguage=None, supportsAllDrives=None, supportsTeamDrives=None)</a></code></p>
<p class="firstline">Creates a copy of a file and applies any requested updates with patch semantics. Folders cannot be copied.</p>
<p class="toc_element">
  <code><a href="#create">create(body=None, enforceSingleParent=None, ignoreDefaultVisibility=None, keepRevisionForever=None, ocrLanguage=None, supportsAllDrives=None, supportsTeamDrives=None, useContentAsIndexableText=None, media_body=None, media_mime_type=None)</a></code></p>
<p class="firstline">Creates a new file.</p>
<p class="toc_element">
  <code><a href="#delete">delete(fileId, supportsAllDrives=None, supportsTeamDrives=None)</a></code></p>
<p class="firstline">Permanently deletes a file owned by the user without moving it to the trash. If the file belongs to a shared drive the user must be an organizer on the parent. If the target is a folder, all descendants owned by the user are also deleted.</p>
<p class="toc_element">
  <code><a href="#emptyTrash">emptyTrash()</a></code></p>
<p class="firstline">Permanently deletes all of the user's trashed files.</p>
<p class="toc_element">
  <code><a href="#export">export(fileId, mimeType)</a></code></p>
<p class="firstline">Exports a Google Doc to the requested MIME type and returns the exported content. Please note that the exported content is limited to 10MB.</p>
<p class="toc_element">
  <code><a href="#export_media">export_media(fileId, mimeType)</a></code></p>
<p class="firstline">Exports a Google Doc to the requested MIME type and returns the exported content. Please note that the exported content is limited to 10MB.</p>
<p class="toc_element">
  <code><a href="#generateIds">generateIds(count=None, space=None)</a></code></p>
<p class="firstline">Generates a set of file IDs which can be provided in create or copy requests.</p>
<p class="toc_element">
  <code><a href="#get">get(fileId, acknowledgeAbuse=None, supportsAllDrives=None, supportsTeamDrives=None)</a></code></p>
<p class="firstline">Gets a file's metadata or content by ID.</p>
<p class="toc_element">
  <code><a href="#get_media">get_media(fileId, acknowledgeAbuse=None, supportsAllDrives=None, supportsTeamDrives=None)</a></code></p>
<p class="firstline">Gets a file's metadata or content by ID.</p>
<p class="toc_element">
  <code><a href="#list">list(corpora=None, corpus=None, driveId=None, includeItemsFromAllDrives=None, includeTeamDriveItems=None, orderBy=None, pageSize=None, pageToken=None, q=None, spaces=None, supportsAllDrives=None, supportsTeamDrives=None, teamDriveId=None)</a></code></p>
<p class="firstline">Lists or searches files.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#update">update(fileId, body=None, addParents=None, enforceSingleParent=None, keepRevisionForever=None, ocrLanguage=None, removeParents=None, supportsAllDrives=None, supportsTeamDrives=None, useContentAsIndexableText=None, media_body=None, media_mime_type=None)</a></code></p>
<p class="firstline">Updates a file's metadata and/or content. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#watch">watch(fileId, body=None, acknowledgeAbuse=None, supportsAllDrives=None, supportsTeamDrives=None)</a></code></p>
<p class="firstline">Subscribes to changes to a file</p>
<p class="toc_element">
  <code><a href="#watch_media">watch_media(fileId, body=None, acknowledgeAbuse=None, supportsAllDrives=None, supportsTeamDrives=None)</a></code></p>
<p class="firstline">Subscribes to changes to a file</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="copy">copy(fileId, body=None, enforceSingleParent=None, ignoreDefaultVisibility=None, keepRevisionForever=None, ocrLanguage=None, supportsAllDrives=None, supportsTeamDrives=None)</code>
  <pre>Creates a copy of a file and applies any requested updates with patch semantics. Folders cannot be copied.

Args:
  fileId: string, The ID of the file. (required)
  body: object, The request body.
    The object takes the form of:

{ # The metadata for a file.
  &quot;appProperties&quot;: { # 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.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;capabilities&quot;: { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
    &quot;canAddChildren&quot;: True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
    &quot;canAddFolderFromAnotherDrive&quot;: True or False, # Whether the current user can add a folder from another drive (different shared drive or My Drive) to this folder. This is false when the item is not a folder. Only populated for items in shared drives.
    &quot;canAddMyDriveParent&quot;: True or False, # Whether the current user can add a parent for the item without removing an existing parent in the same request. Not populated for shared drive files.
    &quot;canChangeCopyRequiresWriterPermission&quot;: True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
    &quot;canChangeViewersCanCopyContent&quot;: True or False, # Deprecated
    &quot;canComment&quot;: True or False, # Whether the current user can comment on this file.
    &quot;canCopy&quot;: True or False, # Whether the current user can copy this file. For an item in a shared drive, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
    &quot;canDelete&quot;: True or False, # Whether the current user can delete this file.
    &quot;canDeleteChildren&quot;: True or False, # Whether the current user can delete children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.
    &quot;canDownload&quot;: True or False, # Whether the current user can download this file.
    &quot;canEdit&quot;: True or False, # Whether the current user can edit this file. Other factors may limit the type of changes a user can make to a file. For example, see canChangeCopyRequiresWriterPermission or canModifyContent.
    &quot;canListChildren&quot;: True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
    &quot;canModifyContent&quot;: True or False, # Whether the current user can modify the content of this file.
    &quot;canModifyContentRestriction&quot;: True or False, # Whether the current user can modify restrictions on content of this file.
    &quot;canMoveChildrenOutOfDrive&quot;: True or False, # Whether the current user can move children of this folder outside of the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.
    &quot;canMoveChildrenOutOfTeamDrive&quot;: True or False, # Deprecated - use canMoveChildrenOutOfDrive instead.
    &quot;canMoveChildrenWithinDrive&quot;: True or False, # Whether the current user can move children of this folder within the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.
    &quot;canMoveChildrenWithinTeamDrive&quot;: True or False, # Deprecated - use canMoveChildrenWithinDrive instead.
    &quot;canMoveItemIntoTeamDrive&quot;: True or False, # Deprecated - use canMoveItemOutOfDrive instead.
    &quot;canMoveItemOutOfDrive&quot;: True or False, # Whether the current user can move this item outside of this drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that is being added.
    &quot;canMoveItemOutOfTeamDrive&quot;: True or False, # Deprecated - use canMoveItemOutOfDrive instead.
    &quot;canMoveItemWithinDrive&quot;: True or False, # Whether the current user can move this item within this shared drive. Note that a request to change the parent of the item may still fail depending on the new parent that is being added. Only populated for items in shared drives.
    &quot;canMoveItemWithinTeamDrive&quot;: True or False, # Deprecated - use canMoveItemWithinDrive instead.
    &quot;canMoveTeamDriveItem&quot;: True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
    &quot;canReadDrive&quot;: True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
    &quot;canReadRevisions&quot;: True or False, # Whether the current user can read the revisions resource of this file. For a shared drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
    &quot;canReadTeamDrive&quot;: True or False, # Deprecated - use canReadDrive instead.
    &quot;canRemoveChildren&quot;: True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder. For a folder in a shared drive, use canDeleteChildren or canTrashChildren instead.
    &quot;canRemoveMyDriveParent&quot;: True or False, # Whether the current user can remove a parent from the item without adding another parent in the same request. Not populated for shared drive files.
    &quot;canRename&quot;: True or False, # Whether the current user can rename this file.
    &quot;canShare&quot;: True or False, # Whether the current user can modify the sharing settings for this file.
    &quot;canTrash&quot;: True or False, # Whether the current user can move this file to trash.
    &quot;canTrashChildren&quot;: True or False, # Whether the current user can trash children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.
    &quot;canUntrash&quot;: True or False, # Whether the current user can restore this file from trash.
  },
  &quot;contentHints&quot;: { # Additional information about the content of the file. These fields are never populated in responses.
    &quot;indexableText&quot;: &quot;A String&quot;, # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
    &quot;thumbnail&quot;: { # A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.
      &quot;image&quot;: &quot;A String&quot;, # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
      &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the thumbnail.
    },
  },
  &quot;contentRestrictions&quot;: [ # Restrictions for accessing the content of the file. Only populated if such a restriction exists.
    { # A restriction for accessing the content of the file.
      &quot;readOnly&quot;: True or False, # Whether the content of the file is read-only.
      &quot;reason&quot;: &quot;A String&quot;, # Reason for why the content of the file is restricted. This is only mutable on requests that also set readOnly=true.
      &quot;restrictingUser&quot;: { # Information about a Drive user. # The user who set the content restriction. Only populated if readOnly is true.
        &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
        &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
        &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
        &quot;me&quot;: True or False, # Whether this user is the requesting user.
        &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
        &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
      },
      &quot;restrictionTime&quot;: &quot;A String&quot;, # The time at which the content restriction was set (formatted RFC 3339 timestamp). Only populated if readOnly is true.
      &quot;type&quot;: &quot;A String&quot;, # The type of the content restriction. Currently the only possible value is globalContentRestriction.
    },
  ],
  &quot;copyRequiresWriterPermission&quot;: True or False, # Whether the options to copy, print, or download this file, should be disabled for readers and commenters.
  &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the file was created (RFC 3339 date-time).
  &quot;description&quot;: &quot;A String&quot;, # A short description of the file.
  &quot;driveId&quot;: &quot;A String&quot;, # ID of the shared drive the file resides in. Only populated for items in shared drives.
  &quot;explicitlyTrashed&quot;: True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
  &quot;exportLinks&quot;: { # Links for exporting Google Docs to specific formats.
    &quot;a_key&quot;: &quot;A String&quot;, # A mapping from export format to URL
  },
  &quot;fileExtension&quot;: &quot;A String&quot;, # The final component of fullFileExtension. This is only available for files with binary content in Google Drive.
  &quot;folderColorRgb&quot;: &quot;A String&quot;, # 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.
  &quot;fullFileExtension&quot;: &quot;A String&quot;, # The full file extension extracted from the name field. May contain multiple concatenated extensions, such as &quot;tar.gz&quot;. This is only available for files with binary content in Google 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.
  &quot;hasAugmentedPermissions&quot;: True or False, # Whether there are permissions directly on this file. This field is only populated for items in shared drives.
  &quot;hasThumbnail&quot;: True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
  &quot;headRevisionId&quot;: &quot;A String&quot;, # The ID of the file&#x27;s head revision. This is currently only available for files with binary content in Google Drive.
  &quot;iconLink&quot;: &quot;A String&quot;, # A static, unauthenticated link to the file&#x27;s icon.
  &quot;id&quot;: &quot;A String&quot;, # The ID of the file.
  &quot;imageMediaMetadata&quot;: { # Additional metadata about image media, if available.
    &quot;aperture&quot;: 3.14, # The aperture used to create the photo (f-number).
    &quot;cameraMake&quot;: &quot;A String&quot;, # The make of the camera used to create the photo.
    &quot;cameraModel&quot;: &quot;A String&quot;, # The model of the camera used to create the photo.
    &quot;colorSpace&quot;: &quot;A String&quot;, # The color space of the photo.
    &quot;exposureBias&quot;: 3.14, # The exposure bias of the photo (APEX value).
    &quot;exposureMode&quot;: &quot;A String&quot;, # The exposure mode used to create the photo.
    &quot;exposureTime&quot;: 3.14, # The length of the exposure, in seconds.
    &quot;flashUsed&quot;: True or False, # Whether a flash was used to create the photo.
    &quot;focalLength&quot;: 3.14, # The focal length used to create the photo, in millimeters.
    &quot;height&quot;: 42, # The height of the image in pixels.
    &quot;isoSpeed&quot;: 42, # The ISO speed used to create the photo.
    &quot;lens&quot;: &quot;A String&quot;, # The lens used to create the photo.
    &quot;location&quot;: { # Geographic location information stored in the image.
      &quot;altitude&quot;: 3.14, # The altitude stored in the image.
      &quot;latitude&quot;: 3.14, # The latitude stored in the image.
      &quot;longitude&quot;: 3.14, # The longitude stored in the image.
    },
    &quot;maxApertureValue&quot;: 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
    &quot;meteringMode&quot;: &quot;A String&quot;, # The metering mode used to create the photo.
    &quot;rotation&quot;: 42, # The number of clockwise 90 degree rotations applied from the image&#x27;s original orientation.
    &quot;sensor&quot;: &quot;A String&quot;, # The type of sensor used to create the photo.
    &quot;subjectDistance&quot;: 42, # The distance to the subject of the photo, in meters.
    &quot;time&quot;: &quot;A String&quot;, # The date and time the photo was taken (EXIF DateTime).
    &quot;whiteBalance&quot;: &quot;A String&quot;, # The white balance mode used to create the photo.
    &quot;width&quot;: 42, # The width of the image in pixels.
  },
  &quot;isAppAuthorized&quot;: True or False, # Whether the file was created or opened by the requesting app.
  &quot;kind&quot;: &quot;drive#file&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#file&quot;.
  &quot;lastModifyingUser&quot;: { # Information about a Drive user. # The last user to modify the file.
    &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
    &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
    &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
    &quot;me&quot;: True or False, # Whether this user is the requesting user.
    &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
    &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
  },
  &quot;md5Checksum&quot;: &quot;A String&quot;, # The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.
  &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the file.
      # Google 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.
  &quot;modifiedByMe&quot;: True or False, # Whether the file has been modified by this user.
  &quot;modifiedByMeTime&quot;: &quot;A String&quot;, # The last time the file was modified by the user (RFC 3339 date-time).
  &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the file was modified by anyone (RFC 3339 date-time).
      # Note that setting modifiedTime will also update modifiedByMeTime for the user.
  &quot;name&quot;: &quot;A String&quot;, # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of shared drives, My Drive root folder, and Application Data folder the name is constant.
  &quot;originalFilename&quot;: &quot;A String&quot;, # 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 Google Drive.
  &quot;ownedByMe&quot;: True or False, # Whether the user owns the file. Not populated for items in shared drives.
  &quot;owners&quot;: [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for items in shared drives.
    { # Information about a Drive user.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
  ],
  &quot;parents&quot;: [ # 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 user&#x27;s My Drive folder. If not specified as part of a copy request, the file will inherit any discoverable parents of the source file. Update requests must use the addParents and removeParents parameters to modify the parents list.
    &quot;A String&quot;,
  ],
  &quot;permissionIds&quot;: [ # List of permission IDs for users with access to this file.
    &quot;A String&quot;,
  ],
  &quot;permissions&quot;: [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for items in shared drives.
    { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
      &quot;allowFileDiscovery&quot;: True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
      &quot;deleted&quot;: True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
      &quot;displayName&quot;: &quot;A String&quot;, # The &quot;pretty&quot; name of the value of the permission. The following is a list of examples for each type of permission:
          # - user - User&#x27;s full name, as defined for their Google account, such as &quot;Joe Smith.&quot;
          # - group - Name of the Google Group, such as &quot;The Company Administrators.&quot;
          # - domain - String domain name, such as &quot;thecompany.com.&quot;
          # - anyone - No displayName is present.
      &quot;domain&quot;: &quot;A String&quot;, # The domain to which this permission refers.
      &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user or group to which this permission refers.
      &quot;expirationTime&quot;: &quot;A String&quot;, # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
          # - They can only be set on user and group permissions
          # - The time must be in the future
          # - The time cannot be more than a year in the future
      &quot;id&quot;: &quot;A String&quot;, # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId. IDs should be treated as opaque values.
      &quot;kind&quot;: &quot;drive#permission&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#permission&quot;.
      &quot;permissionDetails&quot;: [ # Details of whether the permissions on this shared drive item are inherited or directly on this item. This is an output-only field which is present only for shared drive items.
        {
          &quot;inherited&quot;: True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
          &quot;inheritedFrom&quot;: &quot;A String&quot;, # The ID of the item from which this permission is inherited. This is an output-only field.
          &quot;permissionType&quot;: &quot;A String&quot;, # The permission type for this user. While new values may be added in future, the following are currently possible:
              # - file
              # - member
          &quot;role&quot;: &quot;A String&quot;, # The primary role for this user. While new values may be added in the future, the following are currently possible:
              # - organizer
              # - fileOrganizer
              # - writer
              # - commenter
              # - reader
        },
      ],
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
      &quot;role&quot;: &quot;A String&quot;, # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
          # - owner
          # - organizer
          # - fileOrganizer
          # - writer
          # - commenter
          # - reader
      &quot;teamDrivePermissionDetails&quot;: [ # Deprecated - use permissionDetails instead.
        {
          &quot;inherited&quot;: True or False, # Deprecated - use permissionDetails/inherited instead.
          &quot;inheritedFrom&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/inheritedFrom instead.
          &quot;role&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/role instead.
          &quot;teamDrivePermissionType&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/permissionType instead.
        },
      ],
      &quot;type&quot;: &quot;A String&quot;, # The type of the grantee. Valid values are:
          # - user
          # - group
          # - domain
          # - anyone  When creating a permission, if type is user or group, you must provide an emailAddress for the user or group. When type is domain, you must provide a domain. There isn&#x27;t extra information required for a anyone type.
    },
  ],
  &quot;properties&quot;: { # A collection of arbitrary key-value pairs which are visible to all apps.
      # Entries with null values are cleared in update and copy requests.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;quotaBytesUsed&quot;: &quot;A String&quot;, # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
  &quot;shared&quot;: True or False, # Whether the file has been shared. Not populated for items in shared drives.
  &quot;sharedWithMeTime&quot;: &quot;A String&quot;, # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
  &quot;sharingUser&quot;: { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
    &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
    &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
    &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
    &quot;me&quot;: True or False, # Whether this user is the requesting user.
    &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
    &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
  },
  &quot;shortcutDetails&quot;: { # Shortcut file details. Only populated for shortcut files, which have the mimeType field set to application/vnd.google-apps.shortcut.
    &quot;targetId&quot;: &quot;A String&quot;, # The ID of the file that this shortcut points to.
    &quot;targetMimeType&quot;: &quot;A String&quot;, # The MIME type of the file that this shortcut points to. The value of this field is a snapshot of the target&#x27;s MIME type, captured when the shortcut is created.
  },
  &quot;size&quot;: &quot;A String&quot;, # The size of the file&#x27;s content in bytes. This is only applicable to files with binary content in Google Drive.
  &quot;spaces&quot;: [ # The list of spaces which contain the file. The currently supported values are &#x27;drive&#x27;, &#x27;appDataFolder&#x27; and &#x27;photos&#x27;.
    &quot;A String&quot;,
  ],
  &quot;starred&quot;: True or False, # Whether the user has starred the file.
  &quot;teamDriveId&quot;: &quot;A String&quot;, # Deprecated - use driveId instead.
  &quot;thumbnailLink&quot;: &quot;A String&quot;, # A short-lived link to the file&#x27;s thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file&#x27;s content.
  &quot;thumbnailVersion&quot;: &quot;A String&quot;, # The thumbnail version for use in thumbnail cache invalidation.
  &quot;trashed&quot;: True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file. The trashed item is excluded from all files.list responses returned for any user who does not own the file. However, all users with access to the file can see the trashed item metadata in an API response. All users with access can copy, download, export, and share the file.
  &quot;trashedTime&quot;: &quot;A String&quot;, # The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.
  &quot;trashingUser&quot;: { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives.
    &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
    &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
    &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
    &quot;me&quot;: True or False, # Whether this user is the requesting user.
    &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
    &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
  },
  &quot;version&quot;: &quot;A String&quot;, # 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.
  &quot;videoMediaMetadata&quot;: { # Additional metadata about video media. This may not be available immediately upon upload.
    &quot;durationMillis&quot;: &quot;A String&quot;, # The duration of the video in milliseconds.
    &quot;height&quot;: 42, # The height of the video in pixels.
    &quot;width&quot;: 42, # The width of the video in pixels.
  },
  &quot;viewedByMe&quot;: True or False, # Whether the file has been viewed by this user.
  &quot;viewedByMeTime&quot;: &quot;A String&quot;, # The last time the file was viewed by the user (RFC 3339 date-time).
  &quot;viewersCanCopyContent&quot;: True or False, # Deprecated - use copyRequiresWriterPermission instead.
  &quot;webContentLink&quot;: &quot;A String&quot;, # A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.
  &quot;webViewLink&quot;: &quot;A String&quot;, # A link for opening the file in a relevant Google editor or viewer in a browser.
  &quot;writersCanShare&quot;: True or False, # Whether users with only writer permission can modify the file&#x27;s permissions. Not populated for items in shared drives.
}

  enforceSingleParent: boolean, Set to true to opt in to API behavior that aims for all items to have exactly one parent. This parameter only takes effect if the item is not in a shared drive. Requests that specify more than one parent fail.
  ignoreDefaultVisibility: boolean, Whether to ignore the domain&#x27;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.
  keepRevisionForever: boolean, Whether to set the &#x27;keepForever&#x27; field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for the file can be kept forever. If the limit is reached, try deleting pinned revisions.
  ocrLanguage: string, A language hint for OCR processing during image import (ISO 639-1 code).
  supportsAllDrives: boolean, Whether the requesting application supports both My Drives and shared drives.
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.

Returns:
  An object of the form:

    { # The metadata for a file.
    &quot;appProperties&quot;: { # 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.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;capabilities&quot;: { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
      &quot;canAddChildren&quot;: True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
      &quot;canAddFolderFromAnotherDrive&quot;: True or False, # Whether the current user can add a folder from another drive (different shared drive or My Drive) to this folder. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canAddMyDriveParent&quot;: True or False, # Whether the current user can add a parent for the item without removing an existing parent in the same request. Not populated for shared drive files.
      &quot;canChangeCopyRequiresWriterPermission&quot;: True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
      &quot;canChangeViewersCanCopyContent&quot;: True or False, # Deprecated
      &quot;canComment&quot;: True or False, # Whether the current user can comment on this file.
      &quot;canCopy&quot;: True or False, # Whether the current user can copy this file. For an item in a shared drive, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
      &quot;canDelete&quot;: True or False, # Whether the current user can delete this file.
      &quot;canDeleteChildren&quot;: True or False, # Whether the current user can delete children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canDownload&quot;: True or False, # Whether the current user can download this file.
      &quot;canEdit&quot;: True or False, # Whether the current user can edit this file. Other factors may limit the type of changes a user can make to a file. For example, see canChangeCopyRequiresWriterPermission or canModifyContent.
      &quot;canListChildren&quot;: True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
      &quot;canModifyContent&quot;: True or False, # Whether the current user can modify the content of this file.
      &quot;canModifyContentRestriction&quot;: True or False, # Whether the current user can modify restrictions on content of this file.
      &quot;canMoveChildrenOutOfDrive&quot;: True or False, # Whether the current user can move children of this folder outside of the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canMoveChildrenOutOfTeamDrive&quot;: True or False, # Deprecated - use canMoveChildrenOutOfDrive instead.
      &quot;canMoveChildrenWithinDrive&quot;: True or False, # Whether the current user can move children of this folder within the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canMoveChildrenWithinTeamDrive&quot;: True or False, # Deprecated - use canMoveChildrenWithinDrive instead.
      &quot;canMoveItemIntoTeamDrive&quot;: True or False, # Deprecated - use canMoveItemOutOfDrive instead.
      &quot;canMoveItemOutOfDrive&quot;: True or False, # Whether the current user can move this item outside of this drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that is being added.
      &quot;canMoveItemOutOfTeamDrive&quot;: True or False, # Deprecated - use canMoveItemOutOfDrive instead.
      &quot;canMoveItemWithinDrive&quot;: True or False, # Whether the current user can move this item within this shared drive. Note that a request to change the parent of the item may still fail depending on the new parent that is being added. Only populated for items in shared drives.
      &quot;canMoveItemWithinTeamDrive&quot;: True or False, # Deprecated - use canMoveItemWithinDrive instead.
      &quot;canMoveTeamDriveItem&quot;: True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
      &quot;canReadDrive&quot;: True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
      &quot;canReadRevisions&quot;: True or False, # Whether the current user can read the revisions resource of this file. For a shared drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
      &quot;canReadTeamDrive&quot;: True or False, # Deprecated - use canReadDrive instead.
      &quot;canRemoveChildren&quot;: True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder. For a folder in a shared drive, use canDeleteChildren or canTrashChildren instead.
      &quot;canRemoveMyDriveParent&quot;: True or False, # Whether the current user can remove a parent from the item without adding another parent in the same request. Not populated for shared drive files.
      &quot;canRename&quot;: True or False, # Whether the current user can rename this file.
      &quot;canShare&quot;: True or False, # Whether the current user can modify the sharing settings for this file.
      &quot;canTrash&quot;: True or False, # Whether the current user can move this file to trash.
      &quot;canTrashChildren&quot;: True or False, # Whether the current user can trash children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canUntrash&quot;: True or False, # Whether the current user can restore this file from trash.
    },
    &quot;contentHints&quot;: { # Additional information about the content of the file. These fields are never populated in responses.
      &quot;indexableText&quot;: &quot;A String&quot;, # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
      &quot;thumbnail&quot;: { # A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.
        &quot;image&quot;: &quot;A String&quot;, # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
        &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the thumbnail.
      },
    },
    &quot;contentRestrictions&quot;: [ # Restrictions for accessing the content of the file. Only populated if such a restriction exists.
      { # A restriction for accessing the content of the file.
        &quot;readOnly&quot;: True or False, # Whether the content of the file is read-only.
        &quot;reason&quot;: &quot;A String&quot;, # Reason for why the content of the file is restricted. This is only mutable on requests that also set readOnly=true.
        &quot;restrictingUser&quot;: { # Information about a Drive user. # The user who set the content restriction. Only populated if readOnly is true.
          &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
          &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
          &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
          &quot;me&quot;: True or False, # Whether this user is the requesting user.
          &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
          &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
        },
        &quot;restrictionTime&quot;: &quot;A String&quot;, # The time at which the content restriction was set (formatted RFC 3339 timestamp). Only populated if readOnly is true.
        &quot;type&quot;: &quot;A String&quot;, # The type of the content restriction. Currently the only possible value is globalContentRestriction.
      },
    ],
    &quot;copyRequiresWriterPermission&quot;: True or False, # Whether the options to copy, print, or download this file, should be disabled for readers and commenters.
    &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the file was created (RFC 3339 date-time).
    &quot;description&quot;: &quot;A String&quot;, # A short description of the file.
    &quot;driveId&quot;: &quot;A String&quot;, # ID of the shared drive the file resides in. Only populated for items in shared drives.
    &quot;explicitlyTrashed&quot;: True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
    &quot;exportLinks&quot;: { # Links for exporting Google Docs to specific formats.
      &quot;a_key&quot;: &quot;A String&quot;, # A mapping from export format to URL
    },
    &quot;fileExtension&quot;: &quot;A String&quot;, # The final component of fullFileExtension. This is only available for files with binary content in Google Drive.
    &quot;folderColorRgb&quot;: &quot;A String&quot;, # 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.
    &quot;fullFileExtension&quot;: &quot;A String&quot;, # The full file extension extracted from the name field. May contain multiple concatenated extensions, such as &quot;tar.gz&quot;. This is only available for files with binary content in Google 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.
    &quot;hasAugmentedPermissions&quot;: True or False, # Whether there are permissions directly on this file. This field is only populated for items in shared drives.
    &quot;hasThumbnail&quot;: True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
    &quot;headRevisionId&quot;: &quot;A String&quot;, # The ID of the file&#x27;s head revision. This is currently only available for files with binary content in Google Drive.
    &quot;iconLink&quot;: &quot;A String&quot;, # A static, unauthenticated link to the file&#x27;s icon.
    &quot;id&quot;: &quot;A String&quot;, # The ID of the file.
    &quot;imageMediaMetadata&quot;: { # Additional metadata about image media, if available.
      &quot;aperture&quot;: 3.14, # The aperture used to create the photo (f-number).
      &quot;cameraMake&quot;: &quot;A String&quot;, # The make of the camera used to create the photo.
      &quot;cameraModel&quot;: &quot;A String&quot;, # The model of the camera used to create the photo.
      &quot;colorSpace&quot;: &quot;A String&quot;, # The color space of the photo.
      &quot;exposureBias&quot;: 3.14, # The exposure bias of the photo (APEX value).
      &quot;exposureMode&quot;: &quot;A String&quot;, # The exposure mode used to create the photo.
      &quot;exposureTime&quot;: 3.14, # The length of the exposure, in seconds.
      &quot;flashUsed&quot;: True or False, # Whether a flash was used to create the photo.
      &quot;focalLength&quot;: 3.14, # The focal length used to create the photo, in millimeters.
      &quot;height&quot;: 42, # The height of the image in pixels.
      &quot;isoSpeed&quot;: 42, # The ISO speed used to create the photo.
      &quot;lens&quot;: &quot;A String&quot;, # The lens used to create the photo.
      &quot;location&quot;: { # Geographic location information stored in the image.
        &quot;altitude&quot;: 3.14, # The altitude stored in the image.
        &quot;latitude&quot;: 3.14, # The latitude stored in the image.
        &quot;longitude&quot;: 3.14, # The longitude stored in the image.
      },
      &quot;maxApertureValue&quot;: 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
      &quot;meteringMode&quot;: &quot;A String&quot;, # The metering mode used to create the photo.
      &quot;rotation&quot;: 42, # The number of clockwise 90 degree rotations applied from the image&#x27;s original orientation.
      &quot;sensor&quot;: &quot;A String&quot;, # The type of sensor used to create the photo.
      &quot;subjectDistance&quot;: 42, # The distance to the subject of the photo, in meters.
      &quot;time&quot;: &quot;A String&quot;, # The date and time the photo was taken (EXIF DateTime).
      &quot;whiteBalance&quot;: &quot;A String&quot;, # The white balance mode used to create the photo.
      &quot;width&quot;: 42, # The width of the image in pixels.
    },
    &quot;isAppAuthorized&quot;: True or False, # Whether the file was created or opened by the requesting app.
    &quot;kind&quot;: &quot;drive#file&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#file&quot;.
    &quot;lastModifyingUser&quot;: { # Information about a Drive user. # The last user to modify the file.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
    &quot;md5Checksum&quot;: &quot;A String&quot;, # The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.
    &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the file.
        # Google 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.
    &quot;modifiedByMe&quot;: True or False, # Whether the file has been modified by this user.
    &quot;modifiedByMeTime&quot;: &quot;A String&quot;, # The last time the file was modified by the user (RFC 3339 date-time).
    &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the file was modified by anyone (RFC 3339 date-time).
        # Note that setting modifiedTime will also update modifiedByMeTime for the user.
    &quot;name&quot;: &quot;A String&quot;, # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of shared drives, My Drive root folder, and Application Data folder the name is constant.
    &quot;originalFilename&quot;: &quot;A String&quot;, # 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 Google Drive.
    &quot;ownedByMe&quot;: True or False, # Whether the user owns the file. Not populated for items in shared drives.
    &quot;owners&quot;: [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for items in shared drives.
      { # Information about a Drive user.
        &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
        &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
        &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
        &quot;me&quot;: True or False, # Whether this user is the requesting user.
        &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
        &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
      },
    ],
    &quot;parents&quot;: [ # 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 user&#x27;s My Drive folder. If not specified as part of a copy request, the file will inherit any discoverable parents of the source file. Update requests must use the addParents and removeParents parameters to modify the parents list.
      &quot;A String&quot;,
    ],
    &quot;permissionIds&quot;: [ # List of permission IDs for users with access to this file.
      &quot;A String&quot;,
    ],
    &quot;permissions&quot;: [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for items in shared drives.
      { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
        &quot;allowFileDiscovery&quot;: True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
        &quot;deleted&quot;: True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
        &quot;displayName&quot;: &quot;A String&quot;, # The &quot;pretty&quot; name of the value of the permission. The following is a list of examples for each type of permission:
            # - user - User&#x27;s full name, as defined for their Google account, such as &quot;Joe Smith.&quot;
            # - group - Name of the Google Group, such as &quot;The Company Administrators.&quot;
            # - domain - String domain name, such as &quot;thecompany.com.&quot;
            # - anyone - No displayName is present.
        &quot;domain&quot;: &quot;A String&quot;, # The domain to which this permission refers.
        &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user or group to which this permission refers.
        &quot;expirationTime&quot;: &quot;A String&quot;, # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
            # - They can only be set on user and group permissions
            # - The time must be in the future
            # - The time cannot be more than a year in the future
        &quot;id&quot;: &quot;A String&quot;, # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId. IDs should be treated as opaque values.
        &quot;kind&quot;: &quot;drive#permission&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#permission&quot;.
        &quot;permissionDetails&quot;: [ # Details of whether the permissions on this shared drive item are inherited or directly on this item. This is an output-only field which is present only for shared drive items.
          {
            &quot;inherited&quot;: True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
            &quot;inheritedFrom&quot;: &quot;A String&quot;, # The ID of the item from which this permission is inherited. This is an output-only field.
            &quot;permissionType&quot;: &quot;A String&quot;, # The permission type for this user. While new values may be added in future, the following are currently possible:
                # - file
                # - member
            &quot;role&quot;: &quot;A String&quot;, # The primary role for this user. While new values may be added in the future, the following are currently possible:
                # - organizer
                # - fileOrganizer
                # - writer
                # - commenter
                # - reader
          },
        ],
        &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
        &quot;role&quot;: &quot;A String&quot;, # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
            # - owner
            # - organizer
            # - fileOrganizer
            # - writer
            # - commenter
            # - reader
        &quot;teamDrivePermissionDetails&quot;: [ # Deprecated - use permissionDetails instead.
          {
            &quot;inherited&quot;: True or False, # Deprecated - use permissionDetails/inherited instead.
            &quot;inheritedFrom&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/inheritedFrom instead.
            &quot;role&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/role instead.
            &quot;teamDrivePermissionType&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/permissionType instead.
          },
        ],
        &quot;type&quot;: &quot;A String&quot;, # The type of the grantee. Valid values are:
            # - user
            # - group
            # - domain
            # - anyone  When creating a permission, if type is user or group, you must provide an emailAddress for the user or group. When type is domain, you must provide a domain. There isn&#x27;t extra information required for a anyone type.
      },
    ],
    &quot;properties&quot;: { # A collection of arbitrary key-value pairs which are visible to all apps.
        # Entries with null values are cleared in update and copy requests.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;quotaBytesUsed&quot;: &quot;A String&quot;, # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
    &quot;shared&quot;: True or False, # Whether the file has been shared. Not populated for items in shared drives.
    &quot;sharedWithMeTime&quot;: &quot;A String&quot;, # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
    &quot;sharingUser&quot;: { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
    &quot;shortcutDetails&quot;: { # Shortcut file details. Only populated for shortcut files, which have the mimeType field set to application/vnd.google-apps.shortcut.
      &quot;targetId&quot;: &quot;A String&quot;, # The ID of the file that this shortcut points to.
      &quot;targetMimeType&quot;: &quot;A String&quot;, # The MIME type of the file that this shortcut points to. The value of this field is a snapshot of the target&#x27;s MIME type, captured when the shortcut is created.
    },
    &quot;size&quot;: &quot;A String&quot;, # The size of the file&#x27;s content in bytes. This is only applicable to files with binary content in Google Drive.
    &quot;spaces&quot;: [ # The list of spaces which contain the file. The currently supported values are &#x27;drive&#x27;, &#x27;appDataFolder&#x27; and &#x27;photos&#x27;.
      &quot;A String&quot;,
    ],
    &quot;starred&quot;: True or False, # Whether the user has starred the file.
    &quot;teamDriveId&quot;: &quot;A String&quot;, # Deprecated - use driveId instead.
    &quot;thumbnailLink&quot;: &quot;A String&quot;, # A short-lived link to the file&#x27;s thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file&#x27;s content.
    &quot;thumbnailVersion&quot;: &quot;A String&quot;, # The thumbnail version for use in thumbnail cache invalidation.
    &quot;trashed&quot;: True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file. The trashed item is excluded from all files.list responses returned for any user who does not own the file. However, all users with access to the file can see the trashed item metadata in an API response. All users with access can copy, download, export, and share the file.
    &quot;trashedTime&quot;: &quot;A String&quot;, # The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.
    &quot;trashingUser&quot;: { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
    &quot;version&quot;: &quot;A String&quot;, # 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.
    &quot;videoMediaMetadata&quot;: { # Additional metadata about video media. This may not be available immediately upon upload.
      &quot;durationMillis&quot;: &quot;A String&quot;, # The duration of the video in milliseconds.
      &quot;height&quot;: 42, # The height of the video in pixels.
      &quot;width&quot;: 42, # The width of the video in pixels.
    },
    &quot;viewedByMe&quot;: True or False, # Whether the file has been viewed by this user.
    &quot;viewedByMeTime&quot;: &quot;A String&quot;, # The last time the file was viewed by the user (RFC 3339 date-time).
    &quot;viewersCanCopyContent&quot;: True or False, # Deprecated - use copyRequiresWriterPermission instead.
    &quot;webContentLink&quot;: &quot;A String&quot;, # A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.
    &quot;webViewLink&quot;: &quot;A String&quot;, # A link for opening the file in a relevant Google editor or viewer in a browser.
    &quot;writersCanShare&quot;: True or False, # Whether users with only writer permission can modify the file&#x27;s permissions. Not populated for items in shared drives.
  }</pre>
</div>

<div class="method">
    <code class="details" id="create">create(body=None, enforceSingleParent=None, ignoreDefaultVisibility=None, keepRevisionForever=None, ocrLanguage=None, supportsAllDrives=None, supportsTeamDrives=None, useContentAsIndexableText=None, media_body=None, media_mime_type=None)</code>
  <pre>Creates a new file.

Args:
  body: object, The request body.
    The object takes the form of:

{ # The metadata for a file.
  &quot;appProperties&quot;: { # 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.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;capabilities&quot;: { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
    &quot;canAddChildren&quot;: True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
    &quot;canAddFolderFromAnotherDrive&quot;: True or False, # Whether the current user can add a folder from another drive (different shared drive or My Drive) to this folder. This is false when the item is not a folder. Only populated for items in shared drives.
    &quot;canAddMyDriveParent&quot;: True or False, # Whether the current user can add a parent for the item without removing an existing parent in the same request. Not populated for shared drive files.
    &quot;canChangeCopyRequiresWriterPermission&quot;: True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
    &quot;canChangeViewersCanCopyContent&quot;: True or False, # Deprecated
    &quot;canComment&quot;: True or False, # Whether the current user can comment on this file.
    &quot;canCopy&quot;: True or False, # Whether the current user can copy this file. For an item in a shared drive, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
    &quot;canDelete&quot;: True or False, # Whether the current user can delete this file.
    &quot;canDeleteChildren&quot;: True or False, # Whether the current user can delete children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.
    &quot;canDownload&quot;: True or False, # Whether the current user can download this file.
    &quot;canEdit&quot;: True or False, # Whether the current user can edit this file. Other factors may limit the type of changes a user can make to a file. For example, see canChangeCopyRequiresWriterPermission or canModifyContent.
    &quot;canListChildren&quot;: True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
    &quot;canModifyContent&quot;: True or False, # Whether the current user can modify the content of this file.
    &quot;canModifyContentRestriction&quot;: True or False, # Whether the current user can modify restrictions on content of this file.
    &quot;canMoveChildrenOutOfDrive&quot;: True or False, # Whether the current user can move children of this folder outside of the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.
    &quot;canMoveChildrenOutOfTeamDrive&quot;: True or False, # Deprecated - use canMoveChildrenOutOfDrive instead.
    &quot;canMoveChildrenWithinDrive&quot;: True or False, # Whether the current user can move children of this folder within the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.
    &quot;canMoveChildrenWithinTeamDrive&quot;: True or False, # Deprecated - use canMoveChildrenWithinDrive instead.
    &quot;canMoveItemIntoTeamDrive&quot;: True or False, # Deprecated - use canMoveItemOutOfDrive instead.
    &quot;canMoveItemOutOfDrive&quot;: True or False, # Whether the current user can move this item outside of this drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that is being added.
    &quot;canMoveItemOutOfTeamDrive&quot;: True or False, # Deprecated - use canMoveItemOutOfDrive instead.
    &quot;canMoveItemWithinDrive&quot;: True or False, # Whether the current user can move this item within this shared drive. Note that a request to change the parent of the item may still fail depending on the new parent that is being added. Only populated for items in shared drives.
    &quot;canMoveItemWithinTeamDrive&quot;: True or False, # Deprecated - use canMoveItemWithinDrive instead.
    &quot;canMoveTeamDriveItem&quot;: True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
    &quot;canReadDrive&quot;: True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
    &quot;canReadRevisions&quot;: True or False, # Whether the current user can read the revisions resource of this file. For a shared drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
    &quot;canReadTeamDrive&quot;: True or False, # Deprecated - use canReadDrive instead.
    &quot;canRemoveChildren&quot;: True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder. For a folder in a shared drive, use canDeleteChildren or canTrashChildren instead.
    &quot;canRemoveMyDriveParent&quot;: True or False, # Whether the current user can remove a parent from the item without adding another parent in the same request. Not populated for shared drive files.
    &quot;canRename&quot;: True or False, # Whether the current user can rename this file.
    &quot;canShare&quot;: True or False, # Whether the current user can modify the sharing settings for this file.
    &quot;canTrash&quot;: True or False, # Whether the current user can move this file to trash.
    &quot;canTrashChildren&quot;: True or False, # Whether the current user can trash children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.
    &quot;canUntrash&quot;: True or False, # Whether the current user can restore this file from trash.
  },
  &quot;contentHints&quot;: { # Additional information about the content of the file. These fields are never populated in responses.
    &quot;indexableText&quot;: &quot;A String&quot;, # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
    &quot;thumbnail&quot;: { # A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.
      &quot;image&quot;: &quot;A String&quot;, # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
      &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the thumbnail.
    },
  },
  &quot;contentRestrictions&quot;: [ # Restrictions for accessing the content of the file. Only populated if such a restriction exists.
    { # A restriction for accessing the content of the file.
      &quot;readOnly&quot;: True or False, # Whether the content of the file is read-only.
      &quot;reason&quot;: &quot;A String&quot;, # Reason for why the content of the file is restricted. This is only mutable on requests that also set readOnly=true.
      &quot;restrictingUser&quot;: { # Information about a Drive user. # The user who set the content restriction. Only populated if readOnly is true.
        &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
        &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
        &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
        &quot;me&quot;: True or False, # Whether this user is the requesting user.
        &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
        &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
      },
      &quot;restrictionTime&quot;: &quot;A String&quot;, # The time at which the content restriction was set (formatted RFC 3339 timestamp). Only populated if readOnly is true.
      &quot;type&quot;: &quot;A String&quot;, # The type of the content restriction. Currently the only possible value is globalContentRestriction.
    },
  ],
  &quot;copyRequiresWriterPermission&quot;: True or False, # Whether the options to copy, print, or download this file, should be disabled for readers and commenters.
  &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the file was created (RFC 3339 date-time).
  &quot;description&quot;: &quot;A String&quot;, # A short description of the file.
  &quot;driveId&quot;: &quot;A String&quot;, # ID of the shared drive the file resides in. Only populated for items in shared drives.
  &quot;explicitlyTrashed&quot;: True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
  &quot;exportLinks&quot;: { # Links for exporting Google Docs to specific formats.
    &quot;a_key&quot;: &quot;A String&quot;, # A mapping from export format to URL
  },
  &quot;fileExtension&quot;: &quot;A String&quot;, # The final component of fullFileExtension. This is only available for files with binary content in Google Drive.
  &quot;folderColorRgb&quot;: &quot;A String&quot;, # 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.
  &quot;fullFileExtension&quot;: &quot;A String&quot;, # The full file extension extracted from the name field. May contain multiple concatenated extensions, such as &quot;tar.gz&quot;. This is only available for files with binary content in Google 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.
  &quot;hasAugmentedPermissions&quot;: True or False, # Whether there are permissions directly on this file. This field is only populated for items in shared drives.
  &quot;hasThumbnail&quot;: True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
  &quot;headRevisionId&quot;: &quot;A String&quot;, # The ID of the file&#x27;s head revision. This is currently only available for files with binary content in Google Drive.
  &quot;iconLink&quot;: &quot;A String&quot;, # A static, unauthenticated link to the file&#x27;s icon.
  &quot;id&quot;: &quot;A String&quot;, # The ID of the file.
  &quot;imageMediaMetadata&quot;: { # Additional metadata about image media, if available.
    &quot;aperture&quot;: 3.14, # The aperture used to create the photo (f-number).
    &quot;cameraMake&quot;: &quot;A String&quot;, # The make of the camera used to create the photo.
    &quot;cameraModel&quot;: &quot;A String&quot;, # The model of the camera used to create the photo.
    &quot;colorSpace&quot;: &quot;A String&quot;, # The color space of the photo.
    &quot;exposureBias&quot;: 3.14, # The exposure bias of the photo (APEX value).
    &quot;exposureMode&quot;: &quot;A String&quot;, # The exposure mode used to create the photo.
    &quot;exposureTime&quot;: 3.14, # The length of the exposure, in seconds.
    &quot;flashUsed&quot;: True or False, # Whether a flash was used to create the photo.
    &quot;focalLength&quot;: 3.14, # The focal length used to create the photo, in millimeters.
    &quot;height&quot;: 42, # The height of the image in pixels.
    &quot;isoSpeed&quot;: 42, # The ISO speed used to create the photo.
    &quot;lens&quot;: &quot;A String&quot;, # The lens used to create the photo.
    &quot;location&quot;: { # Geographic location information stored in the image.
      &quot;altitude&quot;: 3.14, # The altitude stored in the image.
      &quot;latitude&quot;: 3.14, # The latitude stored in the image.
      &quot;longitude&quot;: 3.14, # The longitude stored in the image.
    },
    &quot;maxApertureValue&quot;: 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
    &quot;meteringMode&quot;: &quot;A String&quot;, # The metering mode used to create the photo.
    &quot;rotation&quot;: 42, # The number of clockwise 90 degree rotations applied from the image&#x27;s original orientation.
    &quot;sensor&quot;: &quot;A String&quot;, # The type of sensor used to create the photo.
    &quot;subjectDistance&quot;: 42, # The distance to the subject of the photo, in meters.
    &quot;time&quot;: &quot;A String&quot;, # The date and time the photo was taken (EXIF DateTime).
    &quot;whiteBalance&quot;: &quot;A String&quot;, # The white balance mode used to create the photo.
    &quot;width&quot;: 42, # The width of the image in pixels.
  },
  &quot;isAppAuthorized&quot;: True or False, # Whether the file was created or opened by the requesting app.
  &quot;kind&quot;: &quot;drive#file&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#file&quot;.
  &quot;lastModifyingUser&quot;: { # Information about a Drive user. # The last user to modify the file.
    &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
    &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
    &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
    &quot;me&quot;: True or False, # Whether this user is the requesting user.
    &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
    &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
  },
  &quot;md5Checksum&quot;: &quot;A String&quot;, # The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.
  &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the file.
      # Google 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.
  &quot;modifiedByMe&quot;: True or False, # Whether the file has been modified by this user.
  &quot;modifiedByMeTime&quot;: &quot;A String&quot;, # The last time the file was modified by the user (RFC 3339 date-time).
  &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the file was modified by anyone (RFC 3339 date-time).
      # Note that setting modifiedTime will also update modifiedByMeTime for the user.
  &quot;name&quot;: &quot;A String&quot;, # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of shared drives, My Drive root folder, and Application Data folder the name is constant.
  &quot;originalFilename&quot;: &quot;A String&quot;, # 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 Google Drive.
  &quot;ownedByMe&quot;: True or False, # Whether the user owns the file. Not populated for items in shared drives.
  &quot;owners&quot;: [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for items in shared drives.
    { # Information about a Drive user.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
  ],
  &quot;parents&quot;: [ # 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 user&#x27;s My Drive folder. If not specified as part of a copy request, the file will inherit any discoverable parents of the source file. Update requests must use the addParents and removeParents parameters to modify the parents list.
    &quot;A String&quot;,
  ],
  &quot;permissionIds&quot;: [ # List of permission IDs for users with access to this file.
    &quot;A String&quot;,
  ],
  &quot;permissions&quot;: [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for items in shared drives.
    { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
      &quot;allowFileDiscovery&quot;: True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
      &quot;deleted&quot;: True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
      &quot;displayName&quot;: &quot;A String&quot;, # The &quot;pretty&quot; name of the value of the permission. The following is a list of examples for each type of permission:
          # - user - User&#x27;s full name, as defined for their Google account, such as &quot;Joe Smith.&quot;
          # - group - Name of the Google Group, such as &quot;The Company Administrators.&quot;
          # - domain - String domain name, such as &quot;thecompany.com.&quot;
          # - anyone - No displayName is present.
      &quot;domain&quot;: &quot;A String&quot;, # The domain to which this permission refers.
      &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user or group to which this permission refers.
      &quot;expirationTime&quot;: &quot;A String&quot;, # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
          # - They can only be set on user and group permissions
          # - The time must be in the future
          # - The time cannot be more than a year in the future
      &quot;id&quot;: &quot;A String&quot;, # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId. IDs should be treated as opaque values.
      &quot;kind&quot;: &quot;drive#permission&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#permission&quot;.
      &quot;permissionDetails&quot;: [ # Details of whether the permissions on this shared drive item are inherited or directly on this item. This is an output-only field which is present only for shared drive items.
        {
          &quot;inherited&quot;: True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
          &quot;inheritedFrom&quot;: &quot;A String&quot;, # The ID of the item from which this permission is inherited. This is an output-only field.
          &quot;permissionType&quot;: &quot;A String&quot;, # The permission type for this user. While new values may be added in future, the following are currently possible:
              # - file
              # - member
          &quot;role&quot;: &quot;A String&quot;, # The primary role for this user. While new values may be added in the future, the following are currently possible:
              # - organizer
              # - fileOrganizer
              # - writer
              # - commenter
              # - reader
        },
      ],
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
      &quot;role&quot;: &quot;A String&quot;, # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
          # - owner
          # - organizer
          # - fileOrganizer
          # - writer
          # - commenter
          # - reader
      &quot;teamDrivePermissionDetails&quot;: [ # Deprecated - use permissionDetails instead.
        {
          &quot;inherited&quot;: True or False, # Deprecated - use permissionDetails/inherited instead.
          &quot;inheritedFrom&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/inheritedFrom instead.
          &quot;role&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/role instead.
          &quot;teamDrivePermissionType&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/permissionType instead.
        },
      ],
      &quot;type&quot;: &quot;A String&quot;, # The type of the grantee. Valid values are:
          # - user
          # - group
          # - domain
          # - anyone  When creating a permission, if type is user or group, you must provide an emailAddress for the user or group. When type is domain, you must provide a domain. There isn&#x27;t extra information required for a anyone type.
    },
  ],
  &quot;properties&quot;: { # A collection of arbitrary key-value pairs which are visible to all apps.
      # Entries with null values are cleared in update and copy requests.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;quotaBytesUsed&quot;: &quot;A String&quot;, # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
  &quot;shared&quot;: True or False, # Whether the file has been shared. Not populated for items in shared drives.
  &quot;sharedWithMeTime&quot;: &quot;A String&quot;, # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
  &quot;sharingUser&quot;: { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
    &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
    &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
    &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
    &quot;me&quot;: True or False, # Whether this user is the requesting user.
    &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
    &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
  },
  &quot;shortcutDetails&quot;: { # Shortcut file details. Only populated for shortcut files, which have the mimeType field set to application/vnd.google-apps.shortcut.
    &quot;targetId&quot;: &quot;A String&quot;, # The ID of the file that this shortcut points to.
    &quot;targetMimeType&quot;: &quot;A String&quot;, # The MIME type of the file that this shortcut points to. The value of this field is a snapshot of the target&#x27;s MIME type, captured when the shortcut is created.
  },
  &quot;size&quot;: &quot;A String&quot;, # The size of the file&#x27;s content in bytes. This is only applicable to files with binary content in Google Drive.
  &quot;spaces&quot;: [ # The list of spaces which contain the file. The currently supported values are &#x27;drive&#x27;, &#x27;appDataFolder&#x27; and &#x27;photos&#x27;.
    &quot;A String&quot;,
  ],
  &quot;starred&quot;: True or False, # Whether the user has starred the file.
  &quot;teamDriveId&quot;: &quot;A String&quot;, # Deprecated - use driveId instead.
  &quot;thumbnailLink&quot;: &quot;A String&quot;, # A short-lived link to the file&#x27;s thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file&#x27;s content.
  &quot;thumbnailVersion&quot;: &quot;A String&quot;, # The thumbnail version for use in thumbnail cache invalidation.
  &quot;trashed&quot;: True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file. The trashed item is excluded from all files.list responses returned for any user who does not own the file. However, all users with access to the file can see the trashed item metadata in an API response. All users with access can copy, download, export, and share the file.
  &quot;trashedTime&quot;: &quot;A String&quot;, # The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.
  &quot;trashingUser&quot;: { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives.
    &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
    &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
    &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
    &quot;me&quot;: True or False, # Whether this user is the requesting user.
    &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
    &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
  },
  &quot;version&quot;: &quot;A String&quot;, # 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.
  &quot;videoMediaMetadata&quot;: { # Additional metadata about video media. This may not be available immediately upon upload.
    &quot;durationMillis&quot;: &quot;A String&quot;, # The duration of the video in milliseconds.
    &quot;height&quot;: 42, # The height of the video in pixels.
    &quot;width&quot;: 42, # The width of the video in pixels.
  },
  &quot;viewedByMe&quot;: True or False, # Whether the file has been viewed by this user.
  &quot;viewedByMeTime&quot;: &quot;A String&quot;, # The last time the file was viewed by the user (RFC 3339 date-time).
  &quot;viewersCanCopyContent&quot;: True or False, # Deprecated - use copyRequiresWriterPermission instead.
  &quot;webContentLink&quot;: &quot;A String&quot;, # A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.
  &quot;webViewLink&quot;: &quot;A String&quot;, # A link for opening the file in a relevant Google editor or viewer in a browser.
  &quot;writersCanShare&quot;: True or False, # Whether users with only writer permission can modify the file&#x27;s permissions. Not populated for items in shared drives.
}

  enforceSingleParent: boolean, Set to true to opt in to API behavior that aims for all items to have exactly one parent. This parameter only takes effect if the item is not in a shared drive. Requests that specify more than one parent fail.
  ignoreDefaultVisibility: boolean, Whether to ignore the domain&#x27;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.
  keepRevisionForever: boolean, Whether to set the &#x27;keepForever&#x27; field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for the file can be kept forever. If the limit is reached, try deleting pinned revisions.
  ocrLanguage: string, A language hint for OCR processing during image import (ISO 639-1 code).
  supportsAllDrives: boolean, Whether the requesting application supports both My Drives and shared drives.
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
  useContentAsIndexableText: boolean, Whether to use the uploaded content as indexable text.
  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
  media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.

Returns:
  An object of the form:

    { # The metadata for a file.
    &quot;appProperties&quot;: { # 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.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;capabilities&quot;: { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
      &quot;canAddChildren&quot;: True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
      &quot;canAddFolderFromAnotherDrive&quot;: True or False, # Whether the current user can add a folder from another drive (different shared drive or My Drive) to this folder. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canAddMyDriveParent&quot;: True or False, # Whether the current user can add a parent for the item without removing an existing parent in the same request. Not populated for shared drive files.
      &quot;canChangeCopyRequiresWriterPermission&quot;: True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
      &quot;canChangeViewersCanCopyContent&quot;: True or False, # Deprecated
      &quot;canComment&quot;: True or False, # Whether the current user can comment on this file.
      &quot;canCopy&quot;: True or False, # Whether the current user can copy this file. For an item in a shared drive, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
      &quot;canDelete&quot;: True or False, # Whether the current user can delete this file.
      &quot;canDeleteChildren&quot;: True or False, # Whether the current user can delete children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canDownload&quot;: True or False, # Whether the current user can download this file.
      &quot;canEdit&quot;: True or False, # Whether the current user can edit this file. Other factors may limit the type of changes a user can make to a file. For example, see canChangeCopyRequiresWriterPermission or canModifyContent.
      &quot;canListChildren&quot;: True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
      &quot;canModifyContent&quot;: True or False, # Whether the current user can modify the content of this file.
      &quot;canModifyContentRestriction&quot;: True or False, # Whether the current user can modify restrictions on content of this file.
      &quot;canMoveChildrenOutOfDrive&quot;: True or False, # Whether the current user can move children of this folder outside of the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canMoveChildrenOutOfTeamDrive&quot;: True or False, # Deprecated - use canMoveChildrenOutOfDrive instead.
      &quot;canMoveChildrenWithinDrive&quot;: True or False, # Whether the current user can move children of this folder within the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canMoveChildrenWithinTeamDrive&quot;: True or False, # Deprecated - use canMoveChildrenWithinDrive instead.
      &quot;canMoveItemIntoTeamDrive&quot;: True or False, # Deprecated - use canMoveItemOutOfDrive instead.
      &quot;canMoveItemOutOfDrive&quot;: True or False, # Whether the current user can move this item outside of this drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that is being added.
      &quot;canMoveItemOutOfTeamDrive&quot;: True or False, # Deprecated - use canMoveItemOutOfDrive instead.
      &quot;canMoveItemWithinDrive&quot;: True or False, # Whether the current user can move this item within this shared drive. Note that a request to change the parent of the item may still fail depending on the new parent that is being added. Only populated for items in shared drives.
      &quot;canMoveItemWithinTeamDrive&quot;: True or False, # Deprecated - use canMoveItemWithinDrive instead.
      &quot;canMoveTeamDriveItem&quot;: True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
      &quot;canReadDrive&quot;: True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
      &quot;canReadRevisions&quot;: True or False, # Whether the current user can read the revisions resource of this file. For a shared drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
      &quot;canReadTeamDrive&quot;: True or False, # Deprecated - use canReadDrive instead.
      &quot;canRemoveChildren&quot;: True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder. For a folder in a shared drive, use canDeleteChildren or canTrashChildren instead.
      &quot;canRemoveMyDriveParent&quot;: True or False, # Whether the current user can remove a parent from the item without adding another parent in the same request. Not populated for shared drive files.
      &quot;canRename&quot;: True or False, # Whether the current user can rename this file.
      &quot;canShare&quot;: True or False, # Whether the current user can modify the sharing settings for this file.
      &quot;canTrash&quot;: True or False, # Whether the current user can move this file to trash.
      &quot;canTrashChildren&quot;: True or False, # Whether the current user can trash children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canUntrash&quot;: True or False, # Whether the current user can restore this file from trash.
    },
    &quot;contentHints&quot;: { # Additional information about the content of the file. These fields are never populated in responses.
      &quot;indexableText&quot;: &quot;A String&quot;, # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
      &quot;thumbnail&quot;: { # A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.
        &quot;image&quot;: &quot;A String&quot;, # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
        &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the thumbnail.
      },
    },
    &quot;contentRestrictions&quot;: [ # Restrictions for accessing the content of the file. Only populated if such a restriction exists.
      { # A restriction for accessing the content of the file.
        &quot;readOnly&quot;: True or False, # Whether the content of the file is read-only.
        &quot;reason&quot;: &quot;A String&quot;, # Reason for why the content of the file is restricted. This is only mutable on requests that also set readOnly=true.
        &quot;restrictingUser&quot;: { # Information about a Drive user. # The user who set the content restriction. Only populated if readOnly is true.
          &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
          &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
          &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
          &quot;me&quot;: True or False, # Whether this user is the requesting user.
          &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
          &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
        },
        &quot;restrictionTime&quot;: &quot;A String&quot;, # The time at which the content restriction was set (formatted RFC 3339 timestamp). Only populated if readOnly is true.
        &quot;type&quot;: &quot;A String&quot;, # The type of the content restriction. Currently the only possible value is globalContentRestriction.
      },
    ],
    &quot;copyRequiresWriterPermission&quot;: True or False, # Whether the options to copy, print, or download this file, should be disabled for readers and commenters.
    &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the file was created (RFC 3339 date-time).
    &quot;description&quot;: &quot;A String&quot;, # A short description of the file.
    &quot;driveId&quot;: &quot;A String&quot;, # ID of the shared drive the file resides in. Only populated for items in shared drives.
    &quot;explicitlyTrashed&quot;: True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
    &quot;exportLinks&quot;: { # Links for exporting Google Docs to specific formats.
      &quot;a_key&quot;: &quot;A String&quot;, # A mapping from export format to URL
    },
    &quot;fileExtension&quot;: &quot;A String&quot;, # The final component of fullFileExtension. This is only available for files with binary content in Google Drive.
    &quot;folderColorRgb&quot;: &quot;A String&quot;, # 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.
    &quot;fullFileExtension&quot;: &quot;A String&quot;, # The full file extension extracted from the name field. May contain multiple concatenated extensions, such as &quot;tar.gz&quot;. This is only available for files with binary content in Google 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.
    &quot;hasAugmentedPermissions&quot;: True or False, # Whether there are permissions directly on this file. This field is only populated for items in shared drives.
    &quot;hasThumbnail&quot;: True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
    &quot;headRevisionId&quot;: &quot;A String&quot;, # The ID of the file&#x27;s head revision. This is currently only available for files with binary content in Google Drive.
    &quot;iconLink&quot;: &quot;A String&quot;, # A static, unauthenticated link to the file&#x27;s icon.
    &quot;id&quot;: &quot;A String&quot;, # The ID of the file.
    &quot;imageMediaMetadata&quot;: { # Additional metadata about image media, if available.
      &quot;aperture&quot;: 3.14, # The aperture used to create the photo (f-number).
      &quot;cameraMake&quot;: &quot;A String&quot;, # The make of the camera used to create the photo.
      &quot;cameraModel&quot;: &quot;A String&quot;, # The model of the camera used to create the photo.
      &quot;colorSpace&quot;: &quot;A String&quot;, # The color space of the photo.
      &quot;exposureBias&quot;: 3.14, # The exposure bias of the photo (APEX value).
      &quot;exposureMode&quot;: &quot;A String&quot;, # The exposure mode used to create the photo.
      &quot;exposureTime&quot;: 3.14, # The length of the exposure, in seconds.
      &quot;flashUsed&quot;: True or False, # Whether a flash was used to create the photo.
      &quot;focalLength&quot;: 3.14, # The focal length used to create the photo, in millimeters.
      &quot;height&quot;: 42, # The height of the image in pixels.
      &quot;isoSpeed&quot;: 42, # The ISO speed used to create the photo.
      &quot;lens&quot;: &quot;A String&quot;, # The lens used to create the photo.
      &quot;location&quot;: { # Geographic location information stored in the image.
        &quot;altitude&quot;: 3.14, # The altitude stored in the image.
        &quot;latitude&quot;: 3.14, # The latitude stored in the image.
        &quot;longitude&quot;: 3.14, # The longitude stored in the image.
      },
      &quot;maxApertureValue&quot;: 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
      &quot;meteringMode&quot;: &quot;A String&quot;, # The metering mode used to create the photo.
      &quot;rotation&quot;: 42, # The number of clockwise 90 degree rotations applied from the image&#x27;s original orientation.
      &quot;sensor&quot;: &quot;A String&quot;, # The type of sensor used to create the photo.
      &quot;subjectDistance&quot;: 42, # The distance to the subject of the photo, in meters.
      &quot;time&quot;: &quot;A String&quot;, # The date and time the photo was taken (EXIF DateTime).
      &quot;whiteBalance&quot;: &quot;A String&quot;, # The white balance mode used to create the photo.
      &quot;width&quot;: 42, # The width of the image in pixels.
    },
    &quot;isAppAuthorized&quot;: True or False, # Whether the file was created or opened by the requesting app.
    &quot;kind&quot;: &quot;drive#file&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#file&quot;.
    &quot;lastModifyingUser&quot;: { # Information about a Drive user. # The last user to modify the file.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
    &quot;md5Checksum&quot;: &quot;A String&quot;, # The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.
    &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the file.
        # Google 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.
    &quot;modifiedByMe&quot;: True or False, # Whether the file has been modified by this user.
    &quot;modifiedByMeTime&quot;: &quot;A String&quot;, # The last time the file was modified by the user (RFC 3339 date-time).
    &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the file was modified by anyone (RFC 3339 date-time).
        # Note that setting modifiedTime will also update modifiedByMeTime for the user.
    &quot;name&quot;: &quot;A String&quot;, # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of shared drives, My Drive root folder, and Application Data folder the name is constant.
    &quot;originalFilename&quot;: &quot;A String&quot;, # 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 Google Drive.
    &quot;ownedByMe&quot;: True or False, # Whether the user owns the file. Not populated for items in shared drives.
    &quot;owners&quot;: [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for items in shared drives.
      { # Information about a Drive user.
        &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
        &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
        &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
        &quot;me&quot;: True or False, # Whether this user is the requesting user.
        &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
        &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
      },
    ],
    &quot;parents&quot;: [ # 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 user&#x27;s My Drive folder. If not specified as part of a copy request, the file will inherit any discoverable parents of the source file. Update requests must use the addParents and removeParents parameters to modify the parents list.
      &quot;A String&quot;,
    ],
    &quot;permissionIds&quot;: [ # List of permission IDs for users with access to this file.
      &quot;A String&quot;,
    ],
    &quot;permissions&quot;: [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for items in shared drives.
      { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
        &quot;allowFileDiscovery&quot;: True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
        &quot;deleted&quot;: True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
        &quot;displayName&quot;: &quot;A String&quot;, # The &quot;pretty&quot; name of the value of the permission. The following is a list of examples for each type of permission:
            # - user - User&#x27;s full name, as defined for their Google account, such as &quot;Joe Smith.&quot;
            # - group - Name of the Google Group, such as &quot;The Company Administrators.&quot;
            # - domain - String domain name, such as &quot;thecompany.com.&quot;
            # - anyone - No displayName is present.
        &quot;domain&quot;: &quot;A String&quot;, # The domain to which this permission refers.
        &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user or group to which this permission refers.
        &quot;expirationTime&quot;: &quot;A String&quot;, # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
            # - They can only be set on user and group permissions
            # - The time must be in the future
            # - The time cannot be more than a year in the future
        &quot;id&quot;: &quot;A String&quot;, # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId. IDs should be treated as opaque values.
        &quot;kind&quot;: &quot;drive#permission&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#permission&quot;.
        &quot;permissionDetails&quot;: [ # Details of whether the permissions on this shared drive item are inherited or directly on this item. This is an output-only field which is present only for shared drive items.
          {
            &quot;inherited&quot;: True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
            &quot;inheritedFrom&quot;: &quot;A String&quot;, # The ID of the item from which this permission is inherited. This is an output-only field.
            &quot;permissionType&quot;: &quot;A String&quot;, # The permission type for this user. While new values may be added in future, the following are currently possible:
                # - file
                # - member
            &quot;role&quot;: &quot;A String&quot;, # The primary role for this user. While new values may be added in the future, the following are currently possible:
                # - organizer
                # - fileOrganizer
                # - writer
                # - commenter
                # - reader
          },
        ],
        &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
        &quot;role&quot;: &quot;A String&quot;, # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
            # - owner
            # - organizer
            # - fileOrganizer
            # - writer
            # - commenter
            # - reader
        &quot;teamDrivePermissionDetails&quot;: [ # Deprecated - use permissionDetails instead.
          {
            &quot;inherited&quot;: True or False, # Deprecated - use permissionDetails/inherited instead.
            &quot;inheritedFrom&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/inheritedFrom instead.
            &quot;role&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/role instead.
            &quot;teamDrivePermissionType&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/permissionType instead.
          },
        ],
        &quot;type&quot;: &quot;A String&quot;, # The type of the grantee. Valid values are:
            # - user
            # - group
            # - domain
            # - anyone  When creating a permission, if type is user or group, you must provide an emailAddress for the user or group. When type is domain, you must provide a domain. There isn&#x27;t extra information required for a anyone type.
      },
    ],
    &quot;properties&quot;: { # A collection of arbitrary key-value pairs which are visible to all apps.
        # Entries with null values are cleared in update and copy requests.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;quotaBytesUsed&quot;: &quot;A String&quot;, # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
    &quot;shared&quot;: True or False, # Whether the file has been shared. Not populated for items in shared drives.
    &quot;sharedWithMeTime&quot;: &quot;A String&quot;, # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
    &quot;sharingUser&quot;: { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
    &quot;shortcutDetails&quot;: { # Shortcut file details. Only populated for shortcut files, which have the mimeType field set to application/vnd.google-apps.shortcut.
      &quot;targetId&quot;: &quot;A String&quot;, # The ID of the file that this shortcut points to.
      &quot;targetMimeType&quot;: &quot;A String&quot;, # The MIME type of the file that this shortcut points to. The value of this field is a snapshot of the target&#x27;s MIME type, captured when the shortcut is created.
    },
    &quot;size&quot;: &quot;A String&quot;, # The size of the file&#x27;s content in bytes. This is only applicable to files with binary content in Google Drive.
    &quot;spaces&quot;: [ # The list of spaces which contain the file. The currently supported values are &#x27;drive&#x27;, &#x27;appDataFolder&#x27; and &#x27;photos&#x27;.
      &quot;A String&quot;,
    ],
    &quot;starred&quot;: True or False, # Whether the user has starred the file.
    &quot;teamDriveId&quot;: &quot;A String&quot;, # Deprecated - use driveId instead.
    &quot;thumbnailLink&quot;: &quot;A String&quot;, # A short-lived link to the file&#x27;s thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file&#x27;s content.
    &quot;thumbnailVersion&quot;: &quot;A String&quot;, # The thumbnail version for use in thumbnail cache invalidation.
    &quot;trashed&quot;: True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file. The trashed item is excluded from all files.list responses returned for any user who does not own the file. However, all users with access to the file can see the trashed item metadata in an API response. All users with access can copy, download, export, and share the file.
    &quot;trashedTime&quot;: &quot;A String&quot;, # The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.
    &quot;trashingUser&quot;: { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
    &quot;version&quot;: &quot;A String&quot;, # 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.
    &quot;videoMediaMetadata&quot;: { # Additional metadata about video media. This may not be available immediately upon upload.
      &quot;durationMillis&quot;: &quot;A String&quot;, # The duration of the video in milliseconds.
      &quot;height&quot;: 42, # The height of the video in pixels.
      &quot;width&quot;: 42, # The width of the video in pixels.
    },
    &quot;viewedByMe&quot;: True or False, # Whether the file has been viewed by this user.
    &quot;viewedByMeTime&quot;: &quot;A String&quot;, # The last time the file was viewed by the user (RFC 3339 date-time).
    &quot;viewersCanCopyContent&quot;: True or False, # Deprecated - use copyRequiresWriterPermission instead.
    &quot;webContentLink&quot;: &quot;A String&quot;, # A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.
    &quot;webViewLink&quot;: &quot;A String&quot;, # A link for opening the file in a relevant Google editor or viewer in a browser.
    &quot;writersCanShare&quot;: True or False, # Whether users with only writer permission can modify the file&#x27;s permissions. Not populated for items in shared drives.
  }</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(fileId, supportsAllDrives=None, supportsTeamDrives=None)</code>
  <pre>Permanently deletes a file owned by the user without moving it to the trash. If the file belongs to a shared drive the user must be an organizer on the parent. If the target is a folder, all descendants owned by the user are also deleted.

Args:
  fileId: string, The ID of the file. (required)
  supportsAllDrives: boolean, Whether the requesting application supports both My Drives and shared drives.
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
</pre>
</div>

<div class="method">
    <code class="details" id="emptyTrash">emptyTrash()</code>
  <pre>Permanently deletes all of the user&#x27;s trashed files.

Args:
</pre>
</div>

<div class="method">
    <code class="details" id="export">export(fileId, mimeType)</code>
  <pre>Exports a Google Doc to the requested MIME type and returns the exported content. Please note that the exported content is limited to 10MB.

Args:
  fileId: string, The ID of the file. (required)
  mimeType: string, The MIME type of the format requested for this export. (required)
</pre>
</div>

<div class="method">
    <code class="details" id="export_media">export_media(fileId, mimeType)</code>
  <pre>Exports a Google Doc to the requested MIME type and returns the exported content. Please note that the exported content is limited to 10MB.

Args:
  fileId: string, The ID of the file. (required)
  mimeType: string, The MIME type of the format requested for this export. (required)
</pre>
</div>

<div class="method">
    <code class="details" id="generateIds">generateIds(count=None, space=None)</code>
  <pre>Generates a set of file IDs which can be provided in create or copy requests.

Args:
  count: integer, The number of IDs to return.
  space: string, The space in which the IDs can be used to create new files. Supported values are &#x27;drive&#x27; and &#x27;appDataFolder&#x27;.

Returns:
  An object of the form:

    { # A list of generated file IDs which can be provided in create requests.
    &quot;ids&quot;: [ # The IDs generated for the requesting user in the specified space.
      &quot;A String&quot;,
    ],
    &quot;kind&quot;: &quot;drive#generatedIds&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#generatedIds&quot;.
    &quot;space&quot;: &quot;A String&quot;, # The type of file that can be created with these IDs.
  }</pre>
</div>

<div class="method">
    <code class="details" id="get">get(fileId, acknowledgeAbuse=None, supportsAllDrives=None, supportsTeamDrives=None)</code>
  <pre>Gets a file&#x27;s metadata or content by ID.

Args:
  fileId: string, The ID of the file. (required)
  acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.
  supportsAllDrives: boolean, Whether the requesting application supports both My Drives and shared drives.
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.

Returns:
  An object of the form:

    { # The metadata for a file.
    &quot;appProperties&quot;: { # 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.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;capabilities&quot;: { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
      &quot;canAddChildren&quot;: True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
      &quot;canAddFolderFromAnotherDrive&quot;: True or False, # Whether the current user can add a folder from another drive (different shared drive or My Drive) to this folder. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canAddMyDriveParent&quot;: True or False, # Whether the current user can add a parent for the item without removing an existing parent in the same request. Not populated for shared drive files.
      &quot;canChangeCopyRequiresWriterPermission&quot;: True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
      &quot;canChangeViewersCanCopyContent&quot;: True or False, # Deprecated
      &quot;canComment&quot;: True or False, # Whether the current user can comment on this file.
      &quot;canCopy&quot;: True or False, # Whether the current user can copy this file. For an item in a shared drive, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
      &quot;canDelete&quot;: True or False, # Whether the current user can delete this file.
      &quot;canDeleteChildren&quot;: True or False, # Whether the current user can delete children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canDownload&quot;: True or False, # Whether the current user can download this file.
      &quot;canEdit&quot;: True or False, # Whether the current user can edit this file. Other factors may limit the type of changes a user can make to a file. For example, see canChangeCopyRequiresWriterPermission or canModifyContent.
      &quot;canListChildren&quot;: True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
      &quot;canModifyContent&quot;: True or False, # Whether the current user can modify the content of this file.
      &quot;canModifyContentRestriction&quot;: True or False, # Whether the current user can modify restrictions on content of this file.
      &quot;canMoveChildrenOutOfDrive&quot;: True or False, # Whether the current user can move children of this folder outside of the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canMoveChildrenOutOfTeamDrive&quot;: True or False, # Deprecated - use canMoveChildrenOutOfDrive instead.
      &quot;canMoveChildrenWithinDrive&quot;: True or False, # Whether the current user can move children of this folder within the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canMoveChildrenWithinTeamDrive&quot;: True or False, # Deprecated - use canMoveChildrenWithinDrive instead.
      &quot;canMoveItemIntoTeamDrive&quot;: True or False, # Deprecated - use canMoveItemOutOfDrive instead.
      &quot;canMoveItemOutOfDrive&quot;: True or False, # Whether the current user can move this item outside of this drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that is being added.
      &quot;canMoveItemOutOfTeamDrive&quot;: True or False, # Deprecated - use canMoveItemOutOfDrive instead.
      &quot;canMoveItemWithinDrive&quot;: True or False, # Whether the current user can move this item within this shared drive. Note that a request to change the parent of the item may still fail depending on the new parent that is being added. Only populated for items in shared drives.
      &quot;canMoveItemWithinTeamDrive&quot;: True or False, # Deprecated - use canMoveItemWithinDrive instead.
      &quot;canMoveTeamDriveItem&quot;: True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
      &quot;canReadDrive&quot;: True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
      &quot;canReadRevisions&quot;: True or False, # Whether the current user can read the revisions resource of this file. For a shared drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
      &quot;canReadTeamDrive&quot;: True or False, # Deprecated - use canReadDrive instead.
      &quot;canRemoveChildren&quot;: True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder. For a folder in a shared drive, use canDeleteChildren or canTrashChildren instead.
      &quot;canRemoveMyDriveParent&quot;: True or False, # Whether the current user can remove a parent from the item without adding another parent in the same request. Not populated for shared drive files.
      &quot;canRename&quot;: True or False, # Whether the current user can rename this file.
      &quot;canShare&quot;: True or False, # Whether the current user can modify the sharing settings for this file.
      &quot;canTrash&quot;: True or False, # Whether the current user can move this file to trash.
      &quot;canTrashChildren&quot;: True or False, # Whether the current user can trash children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canUntrash&quot;: True or False, # Whether the current user can restore this file from trash.
    },
    &quot;contentHints&quot;: { # Additional information about the content of the file. These fields are never populated in responses.
      &quot;indexableText&quot;: &quot;A String&quot;, # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
      &quot;thumbnail&quot;: { # A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.
        &quot;image&quot;: &quot;A String&quot;, # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
        &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the thumbnail.
      },
    },
    &quot;contentRestrictions&quot;: [ # Restrictions for accessing the content of the file. Only populated if such a restriction exists.
      { # A restriction for accessing the content of the file.
        &quot;readOnly&quot;: True or False, # Whether the content of the file is read-only.
        &quot;reason&quot;: &quot;A String&quot;, # Reason for why the content of the file is restricted. This is only mutable on requests that also set readOnly=true.
        &quot;restrictingUser&quot;: { # Information about a Drive user. # The user who set the content restriction. Only populated if readOnly is true.
          &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
          &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
          &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
          &quot;me&quot;: True or False, # Whether this user is the requesting user.
          &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
          &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
        },
        &quot;restrictionTime&quot;: &quot;A String&quot;, # The time at which the content restriction was set (formatted RFC 3339 timestamp). Only populated if readOnly is true.
        &quot;type&quot;: &quot;A String&quot;, # The type of the content restriction. Currently the only possible value is globalContentRestriction.
      },
    ],
    &quot;copyRequiresWriterPermission&quot;: True or False, # Whether the options to copy, print, or download this file, should be disabled for readers and commenters.
    &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the file was created (RFC 3339 date-time).
    &quot;description&quot;: &quot;A String&quot;, # A short description of the file.
    &quot;driveId&quot;: &quot;A String&quot;, # ID of the shared drive the file resides in. Only populated for items in shared drives.
    &quot;explicitlyTrashed&quot;: True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
    &quot;exportLinks&quot;: { # Links for exporting Google Docs to specific formats.
      &quot;a_key&quot;: &quot;A String&quot;, # A mapping from export format to URL
    },
    &quot;fileExtension&quot;: &quot;A String&quot;, # The final component of fullFileExtension. This is only available for files with binary content in Google Drive.
    &quot;folderColorRgb&quot;: &quot;A String&quot;, # 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.
    &quot;fullFileExtension&quot;: &quot;A String&quot;, # The full file extension extracted from the name field. May contain multiple concatenated extensions, such as &quot;tar.gz&quot;. This is only available for files with binary content in Google 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.
    &quot;hasAugmentedPermissions&quot;: True or False, # Whether there are permissions directly on this file. This field is only populated for items in shared drives.
    &quot;hasThumbnail&quot;: True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
    &quot;headRevisionId&quot;: &quot;A String&quot;, # The ID of the file&#x27;s head revision. This is currently only available for files with binary content in Google Drive.
    &quot;iconLink&quot;: &quot;A String&quot;, # A static, unauthenticated link to the file&#x27;s icon.
    &quot;id&quot;: &quot;A String&quot;, # The ID of the file.
    &quot;imageMediaMetadata&quot;: { # Additional metadata about image media, if available.
      &quot;aperture&quot;: 3.14, # The aperture used to create the photo (f-number).
      &quot;cameraMake&quot;: &quot;A String&quot;, # The make of the camera used to create the photo.
      &quot;cameraModel&quot;: &quot;A String&quot;, # The model of the camera used to create the photo.
      &quot;colorSpace&quot;: &quot;A String&quot;, # The color space of the photo.
      &quot;exposureBias&quot;: 3.14, # The exposure bias of the photo (APEX value).
      &quot;exposureMode&quot;: &quot;A String&quot;, # The exposure mode used to create the photo.
      &quot;exposureTime&quot;: 3.14, # The length of the exposure, in seconds.
      &quot;flashUsed&quot;: True or False, # Whether a flash was used to create the photo.
      &quot;focalLength&quot;: 3.14, # The focal length used to create the photo, in millimeters.
      &quot;height&quot;: 42, # The height of the image in pixels.
      &quot;isoSpeed&quot;: 42, # The ISO speed used to create the photo.
      &quot;lens&quot;: &quot;A String&quot;, # The lens used to create the photo.
      &quot;location&quot;: { # Geographic location information stored in the image.
        &quot;altitude&quot;: 3.14, # The altitude stored in the image.
        &quot;latitude&quot;: 3.14, # The latitude stored in the image.
        &quot;longitude&quot;: 3.14, # The longitude stored in the image.
      },
      &quot;maxApertureValue&quot;: 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
      &quot;meteringMode&quot;: &quot;A String&quot;, # The metering mode used to create the photo.
      &quot;rotation&quot;: 42, # The number of clockwise 90 degree rotations applied from the image&#x27;s original orientation.
      &quot;sensor&quot;: &quot;A String&quot;, # The type of sensor used to create the photo.
      &quot;subjectDistance&quot;: 42, # The distance to the subject of the photo, in meters.
      &quot;time&quot;: &quot;A String&quot;, # The date and time the photo was taken (EXIF DateTime).
      &quot;whiteBalance&quot;: &quot;A String&quot;, # The white balance mode used to create the photo.
      &quot;width&quot;: 42, # The width of the image in pixels.
    },
    &quot;isAppAuthorized&quot;: True or False, # Whether the file was created or opened by the requesting app.
    &quot;kind&quot;: &quot;drive#file&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#file&quot;.
    &quot;lastModifyingUser&quot;: { # Information about a Drive user. # The last user to modify the file.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
    &quot;md5Checksum&quot;: &quot;A String&quot;, # The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.
    &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the file.
        # Google 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.
    &quot;modifiedByMe&quot;: True or False, # Whether the file has been modified by this user.
    &quot;modifiedByMeTime&quot;: &quot;A String&quot;, # The last time the file was modified by the user (RFC 3339 date-time).
    &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the file was modified by anyone (RFC 3339 date-time).
        # Note that setting modifiedTime will also update modifiedByMeTime for the user.
    &quot;name&quot;: &quot;A String&quot;, # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of shared drives, My Drive root folder, and Application Data folder the name is constant.
    &quot;originalFilename&quot;: &quot;A String&quot;, # 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 Google Drive.
    &quot;ownedByMe&quot;: True or False, # Whether the user owns the file. Not populated for items in shared drives.
    &quot;owners&quot;: [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for items in shared drives.
      { # Information about a Drive user.
        &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
        &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
        &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
        &quot;me&quot;: True or False, # Whether this user is the requesting user.
        &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
        &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
      },
    ],
    &quot;parents&quot;: [ # 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 user&#x27;s My Drive folder. If not specified as part of a copy request, the file will inherit any discoverable parents of the source file. Update requests must use the addParents and removeParents parameters to modify the parents list.
      &quot;A String&quot;,
    ],
    &quot;permissionIds&quot;: [ # List of permission IDs for users with access to this file.
      &quot;A String&quot;,
    ],
    &quot;permissions&quot;: [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for items in shared drives.
      { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
        &quot;allowFileDiscovery&quot;: True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
        &quot;deleted&quot;: True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
        &quot;displayName&quot;: &quot;A String&quot;, # The &quot;pretty&quot; name of the value of the permission. The following is a list of examples for each type of permission:
            # - user - User&#x27;s full name, as defined for their Google account, such as &quot;Joe Smith.&quot;
            # - group - Name of the Google Group, such as &quot;The Company Administrators.&quot;
            # - domain - String domain name, such as &quot;thecompany.com.&quot;
            # - anyone - No displayName is present.
        &quot;domain&quot;: &quot;A String&quot;, # The domain to which this permission refers.
        &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user or group to which this permission refers.
        &quot;expirationTime&quot;: &quot;A String&quot;, # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
            # - They can only be set on user and group permissions
            # - The time must be in the future
            # - The time cannot be more than a year in the future
        &quot;id&quot;: &quot;A String&quot;, # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId. IDs should be treated as opaque values.
        &quot;kind&quot;: &quot;drive#permission&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#permission&quot;.
        &quot;permissionDetails&quot;: [ # Details of whether the permissions on this shared drive item are inherited or directly on this item. This is an output-only field which is present only for shared drive items.
          {
            &quot;inherited&quot;: True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
            &quot;inheritedFrom&quot;: &quot;A String&quot;, # The ID of the item from which this permission is inherited. This is an output-only field.
            &quot;permissionType&quot;: &quot;A String&quot;, # The permission type for this user. While new values may be added in future, the following are currently possible:
                # - file
                # - member
            &quot;role&quot;: &quot;A String&quot;, # The primary role for this user. While new values may be added in the future, the following are currently possible:
                # - organizer
                # - fileOrganizer
                # - writer
                # - commenter
                # - reader
          },
        ],
        &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
        &quot;role&quot;: &quot;A String&quot;, # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
            # - owner
            # - organizer
            # - fileOrganizer
            # - writer
            # - commenter
            # - reader
        &quot;teamDrivePermissionDetails&quot;: [ # Deprecated - use permissionDetails instead.
          {
            &quot;inherited&quot;: True or False, # Deprecated - use permissionDetails/inherited instead.
            &quot;inheritedFrom&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/inheritedFrom instead.
            &quot;role&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/role instead.
            &quot;teamDrivePermissionType&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/permissionType instead.
          },
        ],
        &quot;type&quot;: &quot;A String&quot;, # The type of the grantee. Valid values are:
            # - user
            # - group
            # - domain
            # - anyone  When creating a permission, if type is user or group, you must provide an emailAddress for the user or group. When type is domain, you must provide a domain. There isn&#x27;t extra information required for a anyone type.
      },
    ],
    &quot;properties&quot;: { # A collection of arbitrary key-value pairs which are visible to all apps.
        # Entries with null values are cleared in update and copy requests.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;quotaBytesUsed&quot;: &quot;A String&quot;, # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
    &quot;shared&quot;: True or False, # Whether the file has been shared. Not populated for items in shared drives.
    &quot;sharedWithMeTime&quot;: &quot;A String&quot;, # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
    &quot;sharingUser&quot;: { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
    &quot;shortcutDetails&quot;: { # Shortcut file details. Only populated for shortcut files, which have the mimeType field set to application/vnd.google-apps.shortcut.
      &quot;targetId&quot;: &quot;A String&quot;, # The ID of the file that this shortcut points to.
      &quot;targetMimeType&quot;: &quot;A String&quot;, # The MIME type of the file that this shortcut points to. The value of this field is a snapshot of the target&#x27;s MIME type, captured when the shortcut is created.
    },
    &quot;size&quot;: &quot;A String&quot;, # The size of the file&#x27;s content in bytes. This is only applicable to files with binary content in Google Drive.
    &quot;spaces&quot;: [ # The list of spaces which contain the file. The currently supported values are &#x27;drive&#x27;, &#x27;appDataFolder&#x27; and &#x27;photos&#x27;.
      &quot;A String&quot;,
    ],
    &quot;starred&quot;: True or False, # Whether the user has starred the file.
    &quot;teamDriveId&quot;: &quot;A String&quot;, # Deprecated - use driveId instead.
    &quot;thumbnailLink&quot;: &quot;A String&quot;, # A short-lived link to the file&#x27;s thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file&#x27;s content.
    &quot;thumbnailVersion&quot;: &quot;A String&quot;, # The thumbnail version for use in thumbnail cache invalidation.
    &quot;trashed&quot;: True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file. The trashed item is excluded from all files.list responses returned for any user who does not own the file. However, all users with access to the file can see the trashed item metadata in an API response. All users with access can copy, download, export, and share the file.
    &quot;trashedTime&quot;: &quot;A String&quot;, # The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.
    &quot;trashingUser&quot;: { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
    &quot;version&quot;: &quot;A String&quot;, # 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.
    &quot;videoMediaMetadata&quot;: { # Additional metadata about video media. This may not be available immediately upon upload.
      &quot;durationMillis&quot;: &quot;A String&quot;, # The duration of the video in milliseconds.
      &quot;height&quot;: 42, # The height of the video in pixels.
      &quot;width&quot;: 42, # The width of the video in pixels.
    },
    &quot;viewedByMe&quot;: True or False, # Whether the file has been viewed by this user.
    &quot;viewedByMeTime&quot;: &quot;A String&quot;, # The last time the file was viewed by the user (RFC 3339 date-time).
    &quot;viewersCanCopyContent&quot;: True or False, # Deprecated - use copyRequiresWriterPermission instead.
    &quot;webContentLink&quot;: &quot;A String&quot;, # A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.
    &quot;webViewLink&quot;: &quot;A String&quot;, # A link for opening the file in a relevant Google editor or viewer in a browser.
    &quot;writersCanShare&quot;: True or False, # Whether users with only writer permission can modify the file&#x27;s permissions. Not populated for items in shared drives.
  }</pre>
</div>

<div class="method">
    <code class="details" id="get_media">get_media(fileId, acknowledgeAbuse=None, supportsAllDrives=None, supportsTeamDrives=None)</code>
  <pre>Gets a file&#x27;s metadata or content by ID.

Args:
  fileId: string, The ID of the file. (required)
  acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.
  supportsAllDrives: boolean, Whether the requesting application supports both My Drives and shared drives.
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.

Returns:
  The media object as a string.

    </pre>
</div>

<div class="method">
    <code class="details" id="list">list(corpora=None, corpus=None, driveId=None, includeItemsFromAllDrives=None, includeTeamDriveItems=None, orderBy=None, pageSize=None, pageToken=None, q=None, spaces=None, supportsAllDrives=None, supportsTeamDrives=None, teamDriveId=None)</code>
  <pre>Lists or searches files.

Args:
  corpora: string, Groupings of files to which the query applies. Supported groupings are: &#x27;user&#x27; (files created by, opened by, or shared directly with the user), &#x27;drive&#x27; (files in the specified shared drive as indicated by the &#x27;driveId&#x27;), &#x27;domain&#x27; (files shared to the user&#x27;s domain), and &#x27;allDrives&#x27; (A combination of &#x27;user&#x27; and &#x27;drive&#x27; for all drives where the user is a member). When able, use &#x27;user&#x27; or &#x27;drive&#x27;, instead of &#x27;allDrives&#x27;, for efficiency.
  corpus: string, The source of files to list. Deprecated: use &#x27;corpora&#x27; instead.
    Allowed values
      domain - Files shared to the user&#x27;s domain.
      user - Files owned by or shared to the user. If a user has permissions on a Shared Drive, the files inside it won&#x27;t be retrieved unless the user has created, opened, or shared the file.
  driveId: string, ID of the shared drive to search.
  includeItemsFromAllDrives: boolean, Whether both My Drive and shared drive items should be included in results.
  includeTeamDriveItems: boolean, Deprecated use includeItemsFromAllDrives instead.
  orderBy: string, A comma-separated list of sort keys. Valid keys are &#x27;createdTime&#x27;, &#x27;folder&#x27;, &#x27;modifiedByMeTime&#x27;, &#x27;modifiedTime&#x27;, &#x27;name&#x27;, &#x27;name_natural&#x27;, &#x27;quotaBytesUsed&#x27;, &#x27;recency&#x27;, &#x27;sharedWithMeTime&#x27;, &#x27;starred&#x27;, and &#x27;viewedByMeTime&#x27;. Each key sorts ascending by default, but may be reversed with the &#x27;desc&#x27; 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.
  pageSize: integer, The maximum number of files to return per page. Partial or empty result pages are possible even before the end of the files list has been reached.
  pageToken: string, The token for continuing a previous list request on the next page. This should be set to the value of &#x27;nextPageToken&#x27; from the previous response.
  q: string, A query for filtering the file results. See the &quot;Search for Files&quot; guide for supported syntax.
  spaces: string, A comma-separated list of spaces to query within the corpus. Supported values are &#x27;drive&#x27;, &#x27;appDataFolder&#x27; and &#x27;photos&#x27;.
  supportsAllDrives: boolean, Whether the requesting application supports both My Drives and shared drives.
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
  teamDriveId: string, Deprecated use driveId instead.

Returns:
  An object of the form:

    { # A list of files.
    &quot;files&quot;: [ # The list of files. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
      { # The metadata for a file.
        &quot;appProperties&quot;: { # 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.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;capabilities&quot;: { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
          &quot;canAddChildren&quot;: True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
          &quot;canAddFolderFromAnotherDrive&quot;: True or False, # Whether the current user can add a folder from another drive (different shared drive or My Drive) to this folder. This is false when the item is not a folder. Only populated for items in shared drives.
          &quot;canAddMyDriveParent&quot;: True or False, # Whether the current user can add a parent for the item without removing an existing parent in the same request. Not populated for shared drive files.
          &quot;canChangeCopyRequiresWriterPermission&quot;: True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
          &quot;canChangeViewersCanCopyContent&quot;: True or False, # Deprecated
          &quot;canComment&quot;: True or False, # Whether the current user can comment on this file.
          &quot;canCopy&quot;: True or False, # Whether the current user can copy this file. For an item in a shared drive, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
          &quot;canDelete&quot;: True or False, # Whether the current user can delete this file.
          &quot;canDeleteChildren&quot;: True or False, # Whether the current user can delete children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.
          &quot;canDownload&quot;: True or False, # Whether the current user can download this file.
          &quot;canEdit&quot;: True or False, # Whether the current user can edit this file. Other factors may limit the type of changes a user can make to a file. For example, see canChangeCopyRequiresWriterPermission or canModifyContent.
          &quot;canListChildren&quot;: True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
          &quot;canModifyContent&quot;: True or False, # Whether the current user can modify the content of this file.
          &quot;canModifyContentRestriction&quot;: True or False, # Whether the current user can modify restrictions on content of this file.
          &quot;canMoveChildrenOutOfDrive&quot;: True or False, # Whether the current user can move children of this folder outside of the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.
          &quot;canMoveChildrenOutOfTeamDrive&quot;: True or False, # Deprecated - use canMoveChildrenOutOfDrive instead.
          &quot;canMoveChildrenWithinDrive&quot;: True or False, # Whether the current user can move children of this folder within the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.
          &quot;canMoveChildrenWithinTeamDrive&quot;: True or False, # Deprecated - use canMoveChildrenWithinDrive instead.
          &quot;canMoveItemIntoTeamDrive&quot;: True or False, # Deprecated - use canMoveItemOutOfDrive instead.
          &quot;canMoveItemOutOfDrive&quot;: True or False, # Whether the current user can move this item outside of this drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that is being added.
          &quot;canMoveItemOutOfTeamDrive&quot;: True or False, # Deprecated - use canMoveItemOutOfDrive instead.
          &quot;canMoveItemWithinDrive&quot;: True or False, # Whether the current user can move this item within this shared drive. Note that a request to change the parent of the item may still fail depending on the new parent that is being added. Only populated for items in shared drives.
          &quot;canMoveItemWithinTeamDrive&quot;: True or False, # Deprecated - use canMoveItemWithinDrive instead.
          &quot;canMoveTeamDriveItem&quot;: True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
          &quot;canReadDrive&quot;: True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
          &quot;canReadRevisions&quot;: True or False, # Whether the current user can read the revisions resource of this file. For a shared drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
          &quot;canReadTeamDrive&quot;: True or False, # Deprecated - use canReadDrive instead.
          &quot;canRemoveChildren&quot;: True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder. For a folder in a shared drive, use canDeleteChildren or canTrashChildren instead.
          &quot;canRemoveMyDriveParent&quot;: True or False, # Whether the current user can remove a parent from the item without adding another parent in the same request. Not populated for shared drive files.
          &quot;canRename&quot;: True or False, # Whether the current user can rename this file.
          &quot;canShare&quot;: True or False, # Whether the current user can modify the sharing settings for this file.
          &quot;canTrash&quot;: True or False, # Whether the current user can move this file to trash.
          &quot;canTrashChildren&quot;: True or False, # Whether the current user can trash children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.
          &quot;canUntrash&quot;: True or False, # Whether the current user can restore this file from trash.
        },
        &quot;contentHints&quot;: { # Additional information about the content of the file. These fields are never populated in responses.
          &quot;indexableText&quot;: &quot;A String&quot;, # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
          &quot;thumbnail&quot;: { # A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.
            &quot;image&quot;: &quot;A String&quot;, # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
            &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the thumbnail.
          },
        },
        &quot;contentRestrictions&quot;: [ # Restrictions for accessing the content of the file. Only populated if such a restriction exists.
          { # A restriction for accessing the content of the file.
            &quot;readOnly&quot;: True or False, # Whether the content of the file is read-only.
            &quot;reason&quot;: &quot;A String&quot;, # Reason for why the content of the file is restricted. This is only mutable on requests that also set readOnly=true.
            &quot;restrictingUser&quot;: { # Information about a Drive user. # The user who set the content restriction. Only populated if readOnly is true.
              &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
              &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
              &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
              &quot;me&quot;: True or False, # Whether this user is the requesting user.
              &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
              &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
            },
            &quot;restrictionTime&quot;: &quot;A String&quot;, # The time at which the content restriction was set (formatted RFC 3339 timestamp). Only populated if readOnly is true.
            &quot;type&quot;: &quot;A String&quot;, # The type of the content restriction. Currently the only possible value is globalContentRestriction.
          },
        ],
        &quot;copyRequiresWriterPermission&quot;: True or False, # Whether the options to copy, print, or download this file, should be disabled for readers and commenters.
        &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the file was created (RFC 3339 date-time).
        &quot;description&quot;: &quot;A String&quot;, # A short description of the file.
        &quot;driveId&quot;: &quot;A String&quot;, # ID of the shared drive the file resides in. Only populated for items in shared drives.
        &quot;explicitlyTrashed&quot;: True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
        &quot;exportLinks&quot;: { # Links for exporting Google Docs to specific formats.
          &quot;a_key&quot;: &quot;A String&quot;, # A mapping from export format to URL
        },
        &quot;fileExtension&quot;: &quot;A String&quot;, # The final component of fullFileExtension. This is only available for files with binary content in Google Drive.
        &quot;folderColorRgb&quot;: &quot;A String&quot;, # 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.
        &quot;fullFileExtension&quot;: &quot;A String&quot;, # The full file extension extracted from the name field. May contain multiple concatenated extensions, such as &quot;tar.gz&quot;. This is only available for files with binary content in Google 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.
        &quot;hasAugmentedPermissions&quot;: True or False, # Whether there are permissions directly on this file. This field is only populated for items in shared drives.
        &quot;hasThumbnail&quot;: True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
        &quot;headRevisionId&quot;: &quot;A String&quot;, # The ID of the file&#x27;s head revision. This is currently only available for files with binary content in Google Drive.
        &quot;iconLink&quot;: &quot;A String&quot;, # A static, unauthenticated link to the file&#x27;s icon.
        &quot;id&quot;: &quot;A String&quot;, # The ID of the file.
        &quot;imageMediaMetadata&quot;: { # Additional metadata about image media, if available.
          &quot;aperture&quot;: 3.14, # The aperture used to create the photo (f-number).
          &quot;cameraMake&quot;: &quot;A String&quot;, # The make of the camera used to create the photo.
          &quot;cameraModel&quot;: &quot;A String&quot;, # The model of the camera used to create the photo.
          &quot;colorSpace&quot;: &quot;A String&quot;, # The color space of the photo.
          &quot;exposureBias&quot;: 3.14, # The exposure bias of the photo (APEX value).
          &quot;exposureMode&quot;: &quot;A String&quot;, # The exposure mode used to create the photo.
          &quot;exposureTime&quot;: 3.14, # The length of the exposure, in seconds.
          &quot;flashUsed&quot;: True or False, # Whether a flash was used to create the photo.
          &quot;focalLength&quot;: 3.14, # The focal length used to create the photo, in millimeters.
          &quot;height&quot;: 42, # The height of the image in pixels.
          &quot;isoSpeed&quot;: 42, # The ISO speed used to create the photo.
          &quot;lens&quot;: &quot;A String&quot;, # The lens used to create the photo.
          &quot;location&quot;: { # Geographic location information stored in the image.
            &quot;altitude&quot;: 3.14, # The altitude stored in the image.
            &quot;latitude&quot;: 3.14, # The latitude stored in the image.
            &quot;longitude&quot;: 3.14, # The longitude stored in the image.
          },
          &quot;maxApertureValue&quot;: 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
          &quot;meteringMode&quot;: &quot;A String&quot;, # The metering mode used to create the photo.
          &quot;rotation&quot;: 42, # The number of clockwise 90 degree rotations applied from the image&#x27;s original orientation.
          &quot;sensor&quot;: &quot;A String&quot;, # The type of sensor used to create the photo.
          &quot;subjectDistance&quot;: 42, # The distance to the subject of the photo, in meters.
          &quot;time&quot;: &quot;A String&quot;, # The date and time the photo was taken (EXIF DateTime).
          &quot;whiteBalance&quot;: &quot;A String&quot;, # The white balance mode used to create the photo.
          &quot;width&quot;: 42, # The width of the image in pixels.
        },
        &quot;isAppAuthorized&quot;: True or False, # Whether the file was created or opened by the requesting app.
        &quot;kind&quot;: &quot;drive#file&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#file&quot;.
        &quot;lastModifyingUser&quot;: { # Information about a Drive user. # The last user to modify the file.
          &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
          &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
          &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
          &quot;me&quot;: True or False, # Whether this user is the requesting user.
          &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
          &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
        },
        &quot;md5Checksum&quot;: &quot;A String&quot;, # The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.
        &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the file.
            # Google 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.
        &quot;modifiedByMe&quot;: True or False, # Whether the file has been modified by this user.
        &quot;modifiedByMeTime&quot;: &quot;A String&quot;, # The last time the file was modified by the user (RFC 3339 date-time).
        &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the file was modified by anyone (RFC 3339 date-time).
            # Note that setting modifiedTime will also update modifiedByMeTime for the user.
        &quot;name&quot;: &quot;A String&quot;, # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of shared drives, My Drive root folder, and Application Data folder the name is constant.
        &quot;originalFilename&quot;: &quot;A String&quot;, # 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 Google Drive.
        &quot;ownedByMe&quot;: True or False, # Whether the user owns the file. Not populated for items in shared drives.
        &quot;owners&quot;: [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for items in shared drives.
          { # Information about a Drive user.
            &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
            &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
            &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
            &quot;me&quot;: True or False, # Whether this user is the requesting user.
            &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
            &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
          },
        ],
        &quot;parents&quot;: [ # 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 user&#x27;s My Drive folder. If not specified as part of a copy request, the file will inherit any discoverable parents of the source file. Update requests must use the addParents and removeParents parameters to modify the parents list.
          &quot;A String&quot;,
        ],
        &quot;permissionIds&quot;: [ # List of permission IDs for users with access to this file.
          &quot;A String&quot;,
        ],
        &quot;permissions&quot;: [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for items in shared drives.
          { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
            &quot;allowFileDiscovery&quot;: True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
            &quot;deleted&quot;: True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
            &quot;displayName&quot;: &quot;A String&quot;, # The &quot;pretty&quot; name of the value of the permission. The following is a list of examples for each type of permission:
                # - user - User&#x27;s full name, as defined for their Google account, such as &quot;Joe Smith.&quot;
                # - group - Name of the Google Group, such as &quot;The Company Administrators.&quot;
                # - domain - String domain name, such as &quot;thecompany.com.&quot;
                # - anyone - No displayName is present.
            &quot;domain&quot;: &quot;A String&quot;, # The domain to which this permission refers.
            &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user or group to which this permission refers.
            &quot;expirationTime&quot;: &quot;A String&quot;, # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
                # - They can only be set on user and group permissions
                # - The time must be in the future
                # - The time cannot be more than a year in the future
            &quot;id&quot;: &quot;A String&quot;, # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId. IDs should be treated as opaque values.
            &quot;kind&quot;: &quot;drive#permission&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#permission&quot;.
            &quot;permissionDetails&quot;: [ # Details of whether the permissions on this shared drive item are inherited or directly on this item. This is an output-only field which is present only for shared drive items.
              {
                &quot;inherited&quot;: True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
                &quot;inheritedFrom&quot;: &quot;A String&quot;, # The ID of the item from which this permission is inherited. This is an output-only field.
                &quot;permissionType&quot;: &quot;A String&quot;, # The permission type for this user. While new values may be added in future, the following are currently possible:
                    # - file
                    # - member
                &quot;role&quot;: &quot;A String&quot;, # The primary role for this user. While new values may be added in the future, the following are currently possible:
                    # - organizer
                    # - fileOrganizer
                    # - writer
                    # - commenter
                    # - reader
              },
            ],
            &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
            &quot;role&quot;: &quot;A String&quot;, # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
                # - owner
                # - organizer
                # - fileOrganizer
                # - writer
                # - commenter
                # - reader
            &quot;teamDrivePermissionDetails&quot;: [ # Deprecated - use permissionDetails instead.
              {
                &quot;inherited&quot;: True or False, # Deprecated - use permissionDetails/inherited instead.
                &quot;inheritedFrom&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/inheritedFrom instead.
                &quot;role&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/role instead.
                &quot;teamDrivePermissionType&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/permissionType instead.
              },
            ],
            &quot;type&quot;: &quot;A String&quot;, # The type of the grantee. Valid values are:
                # - user
                # - group
                # - domain
                # - anyone  When creating a permission, if type is user or group, you must provide an emailAddress for the user or group. When type is domain, you must provide a domain. There isn&#x27;t extra information required for a anyone type.
          },
        ],
        &quot;properties&quot;: { # A collection of arbitrary key-value pairs which are visible to all apps.
            # Entries with null values are cleared in update and copy requests.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;quotaBytesUsed&quot;: &quot;A String&quot;, # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
        &quot;shared&quot;: True or False, # Whether the file has been shared. Not populated for items in shared drives.
        &quot;sharedWithMeTime&quot;: &quot;A String&quot;, # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
        &quot;sharingUser&quot;: { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
          &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
          &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
          &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
          &quot;me&quot;: True or False, # Whether this user is the requesting user.
          &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
          &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
        },
        &quot;shortcutDetails&quot;: { # Shortcut file details. Only populated for shortcut files, which have the mimeType field set to application/vnd.google-apps.shortcut.
          &quot;targetId&quot;: &quot;A String&quot;, # The ID of the file that this shortcut points to.
          &quot;targetMimeType&quot;: &quot;A String&quot;, # The MIME type of the file that this shortcut points to. The value of this field is a snapshot of the target&#x27;s MIME type, captured when the shortcut is created.
        },
        &quot;size&quot;: &quot;A String&quot;, # The size of the file&#x27;s content in bytes. This is only applicable to files with binary content in Google Drive.
        &quot;spaces&quot;: [ # The list of spaces which contain the file. The currently supported values are &#x27;drive&#x27;, &#x27;appDataFolder&#x27; and &#x27;photos&#x27;.
          &quot;A String&quot;,
        ],
        &quot;starred&quot;: True or False, # Whether the user has starred the file.
        &quot;teamDriveId&quot;: &quot;A String&quot;, # Deprecated - use driveId instead.
        &quot;thumbnailLink&quot;: &quot;A String&quot;, # A short-lived link to the file&#x27;s thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file&#x27;s content.
        &quot;thumbnailVersion&quot;: &quot;A String&quot;, # The thumbnail version for use in thumbnail cache invalidation.
        &quot;trashed&quot;: True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file. The trashed item is excluded from all files.list responses returned for any user who does not own the file. However, all users with access to the file can see the trashed item metadata in an API response. All users with access can copy, download, export, and share the file.
        &quot;trashedTime&quot;: &quot;A String&quot;, # The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.
        &quot;trashingUser&quot;: { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives.
          &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
          &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
          &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
          &quot;me&quot;: True or False, # Whether this user is the requesting user.
          &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
          &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
        },
        &quot;version&quot;: &quot;A String&quot;, # 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.
        &quot;videoMediaMetadata&quot;: { # Additional metadata about video media. This may not be available immediately upon upload.
          &quot;durationMillis&quot;: &quot;A String&quot;, # The duration of the video in milliseconds.
          &quot;height&quot;: 42, # The height of the video in pixels.
          &quot;width&quot;: 42, # The width of the video in pixels.
        },
        &quot;viewedByMe&quot;: True or False, # Whether the file has been viewed by this user.
        &quot;viewedByMeTime&quot;: &quot;A String&quot;, # The last time the file was viewed by the user (RFC 3339 date-time).
        &quot;viewersCanCopyContent&quot;: True or False, # Deprecated - use copyRequiresWriterPermission instead.
        &quot;webContentLink&quot;: &quot;A String&quot;, # A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.
        &quot;webViewLink&quot;: &quot;A String&quot;, # A link for opening the file in a relevant Google editor or viewer in a browser.
        &quot;writersCanShare&quot;: True or False, # Whether users with only writer permission can modify the file&#x27;s permissions. Not populated for items in shared drives.
      },
    ],
    &quot;incompleteSearch&quot;: True or False, # Whether the search process was incomplete. If true, then some search results may be missing, since all documents were not searched. This may occur when searching multiple drives with the &quot;allDrives&quot; corpora, but all corpora could not be searched. When this happens, it is suggested that clients narrow their query by choosing a different corpus such as &quot;user&quot; or &quot;drive&quot;.
    &quot;kind&quot;: &quot;drive#fileList&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#fileList&quot;.
    &quot;nextPageToken&quot;: &quot;A String&quot;, # 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.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="update">update(fileId, body=None, addParents=None, enforceSingleParent=None, keepRevisionForever=None, ocrLanguage=None, removeParents=None, supportsAllDrives=None, supportsTeamDrives=None, useContentAsIndexableText=None, media_body=None, media_mime_type=None)</code>
  <pre>Updates a file&#x27;s metadata and/or content. This method supports patch semantics.

Args:
  fileId: string, The ID of the file. (required)
  body: object, The request body.
    The object takes the form of:

{ # The metadata for a file.
  &quot;appProperties&quot;: { # 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.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;capabilities&quot;: { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
    &quot;canAddChildren&quot;: True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
    &quot;canAddFolderFromAnotherDrive&quot;: True or False, # Whether the current user can add a folder from another drive (different shared drive or My Drive) to this folder. This is false when the item is not a folder. Only populated for items in shared drives.
    &quot;canAddMyDriveParent&quot;: True or False, # Whether the current user can add a parent for the item without removing an existing parent in the same request. Not populated for shared drive files.
    &quot;canChangeCopyRequiresWriterPermission&quot;: True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
    &quot;canChangeViewersCanCopyContent&quot;: True or False, # Deprecated
    &quot;canComment&quot;: True or False, # Whether the current user can comment on this file.
    &quot;canCopy&quot;: True or False, # Whether the current user can copy this file. For an item in a shared drive, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
    &quot;canDelete&quot;: True or False, # Whether the current user can delete this file.
    &quot;canDeleteChildren&quot;: True or False, # Whether the current user can delete children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.
    &quot;canDownload&quot;: True or False, # Whether the current user can download this file.
    &quot;canEdit&quot;: True or False, # Whether the current user can edit this file. Other factors may limit the type of changes a user can make to a file. For example, see canChangeCopyRequiresWriterPermission or canModifyContent.
    &quot;canListChildren&quot;: True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
    &quot;canModifyContent&quot;: True or False, # Whether the current user can modify the content of this file.
    &quot;canModifyContentRestriction&quot;: True or False, # Whether the current user can modify restrictions on content of this file.
    &quot;canMoveChildrenOutOfDrive&quot;: True or False, # Whether the current user can move children of this folder outside of the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.
    &quot;canMoveChildrenOutOfTeamDrive&quot;: True or False, # Deprecated - use canMoveChildrenOutOfDrive instead.
    &quot;canMoveChildrenWithinDrive&quot;: True or False, # Whether the current user can move children of this folder within the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.
    &quot;canMoveChildrenWithinTeamDrive&quot;: True or False, # Deprecated - use canMoveChildrenWithinDrive instead.
    &quot;canMoveItemIntoTeamDrive&quot;: True or False, # Deprecated - use canMoveItemOutOfDrive instead.
    &quot;canMoveItemOutOfDrive&quot;: True or False, # Whether the current user can move this item outside of this drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that is being added.
    &quot;canMoveItemOutOfTeamDrive&quot;: True or False, # Deprecated - use canMoveItemOutOfDrive instead.
    &quot;canMoveItemWithinDrive&quot;: True or False, # Whether the current user can move this item within this shared drive. Note that a request to change the parent of the item may still fail depending on the new parent that is being added. Only populated for items in shared drives.
    &quot;canMoveItemWithinTeamDrive&quot;: True or False, # Deprecated - use canMoveItemWithinDrive instead.
    &quot;canMoveTeamDriveItem&quot;: True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
    &quot;canReadDrive&quot;: True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
    &quot;canReadRevisions&quot;: True or False, # Whether the current user can read the revisions resource of this file. For a shared drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
    &quot;canReadTeamDrive&quot;: True or False, # Deprecated - use canReadDrive instead.
    &quot;canRemoveChildren&quot;: True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder. For a folder in a shared drive, use canDeleteChildren or canTrashChildren instead.
    &quot;canRemoveMyDriveParent&quot;: True or False, # Whether the current user can remove a parent from the item without adding another parent in the same request. Not populated for shared drive files.
    &quot;canRename&quot;: True or False, # Whether the current user can rename this file.
    &quot;canShare&quot;: True or False, # Whether the current user can modify the sharing settings for this file.
    &quot;canTrash&quot;: True or False, # Whether the current user can move this file to trash.
    &quot;canTrashChildren&quot;: True or False, # Whether the current user can trash children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.
    &quot;canUntrash&quot;: True or False, # Whether the current user can restore this file from trash.
  },
  &quot;contentHints&quot;: { # Additional information about the content of the file. These fields are never populated in responses.
    &quot;indexableText&quot;: &quot;A String&quot;, # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
    &quot;thumbnail&quot;: { # A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.
      &quot;image&quot;: &quot;A String&quot;, # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
      &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the thumbnail.
    },
  },
  &quot;contentRestrictions&quot;: [ # Restrictions for accessing the content of the file. Only populated if such a restriction exists.
    { # A restriction for accessing the content of the file.
      &quot;readOnly&quot;: True or False, # Whether the content of the file is read-only.
      &quot;reason&quot;: &quot;A String&quot;, # Reason for why the content of the file is restricted. This is only mutable on requests that also set readOnly=true.
      &quot;restrictingUser&quot;: { # Information about a Drive user. # The user who set the content restriction. Only populated if readOnly is true.
        &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
        &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
        &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
        &quot;me&quot;: True or False, # Whether this user is the requesting user.
        &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
        &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
      },
      &quot;restrictionTime&quot;: &quot;A String&quot;, # The time at which the content restriction was set (formatted RFC 3339 timestamp). Only populated if readOnly is true.
      &quot;type&quot;: &quot;A String&quot;, # The type of the content restriction. Currently the only possible value is globalContentRestriction.
    },
  ],
  &quot;copyRequiresWriterPermission&quot;: True or False, # Whether the options to copy, print, or download this file, should be disabled for readers and commenters.
  &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the file was created (RFC 3339 date-time).
  &quot;description&quot;: &quot;A String&quot;, # A short description of the file.
  &quot;driveId&quot;: &quot;A String&quot;, # ID of the shared drive the file resides in. Only populated for items in shared drives.
  &quot;explicitlyTrashed&quot;: True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
  &quot;exportLinks&quot;: { # Links for exporting Google Docs to specific formats.
    &quot;a_key&quot;: &quot;A String&quot;, # A mapping from export format to URL
  },
  &quot;fileExtension&quot;: &quot;A String&quot;, # The final component of fullFileExtension. This is only available for files with binary content in Google Drive.
  &quot;folderColorRgb&quot;: &quot;A String&quot;, # 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.
  &quot;fullFileExtension&quot;: &quot;A String&quot;, # The full file extension extracted from the name field. May contain multiple concatenated extensions, such as &quot;tar.gz&quot;. This is only available for files with binary content in Google 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.
  &quot;hasAugmentedPermissions&quot;: True or False, # Whether there are permissions directly on this file. This field is only populated for items in shared drives.
  &quot;hasThumbnail&quot;: True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
  &quot;headRevisionId&quot;: &quot;A String&quot;, # The ID of the file&#x27;s head revision. This is currently only available for files with binary content in Google Drive.
  &quot;iconLink&quot;: &quot;A String&quot;, # A static, unauthenticated link to the file&#x27;s icon.
  &quot;id&quot;: &quot;A String&quot;, # The ID of the file.
  &quot;imageMediaMetadata&quot;: { # Additional metadata about image media, if available.
    &quot;aperture&quot;: 3.14, # The aperture used to create the photo (f-number).
    &quot;cameraMake&quot;: &quot;A String&quot;, # The make of the camera used to create the photo.
    &quot;cameraModel&quot;: &quot;A String&quot;, # The model of the camera used to create the photo.
    &quot;colorSpace&quot;: &quot;A String&quot;, # The color space of the photo.
    &quot;exposureBias&quot;: 3.14, # The exposure bias of the photo (APEX value).
    &quot;exposureMode&quot;: &quot;A String&quot;, # The exposure mode used to create the photo.
    &quot;exposureTime&quot;: 3.14, # The length of the exposure, in seconds.
    &quot;flashUsed&quot;: True or False, # Whether a flash was used to create the photo.
    &quot;focalLength&quot;: 3.14, # The focal length used to create the photo, in millimeters.
    &quot;height&quot;: 42, # The height of the image in pixels.
    &quot;isoSpeed&quot;: 42, # The ISO speed used to create the photo.
    &quot;lens&quot;: &quot;A String&quot;, # The lens used to create the photo.
    &quot;location&quot;: { # Geographic location information stored in the image.
      &quot;altitude&quot;: 3.14, # The altitude stored in the image.
      &quot;latitude&quot;: 3.14, # The latitude stored in the image.
      &quot;longitude&quot;: 3.14, # The longitude stored in the image.
    },
    &quot;maxApertureValue&quot;: 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
    &quot;meteringMode&quot;: &quot;A String&quot;, # The metering mode used to create the photo.
    &quot;rotation&quot;: 42, # The number of clockwise 90 degree rotations applied from the image&#x27;s original orientation.
    &quot;sensor&quot;: &quot;A String&quot;, # The type of sensor used to create the photo.
    &quot;subjectDistance&quot;: 42, # The distance to the subject of the photo, in meters.
    &quot;time&quot;: &quot;A String&quot;, # The date and time the photo was taken (EXIF DateTime).
    &quot;whiteBalance&quot;: &quot;A String&quot;, # The white balance mode used to create the photo.
    &quot;width&quot;: 42, # The width of the image in pixels.
  },
  &quot;isAppAuthorized&quot;: True or False, # Whether the file was created or opened by the requesting app.
  &quot;kind&quot;: &quot;drive#file&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#file&quot;.
  &quot;lastModifyingUser&quot;: { # Information about a Drive user. # The last user to modify the file.
    &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
    &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
    &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
    &quot;me&quot;: True or False, # Whether this user is the requesting user.
    &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
    &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
  },
  &quot;md5Checksum&quot;: &quot;A String&quot;, # The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.
  &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the file.
      # Google 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.
  &quot;modifiedByMe&quot;: True or False, # Whether the file has been modified by this user.
  &quot;modifiedByMeTime&quot;: &quot;A String&quot;, # The last time the file was modified by the user (RFC 3339 date-time).
  &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the file was modified by anyone (RFC 3339 date-time).
      # Note that setting modifiedTime will also update modifiedByMeTime for the user.
  &quot;name&quot;: &quot;A String&quot;, # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of shared drives, My Drive root folder, and Application Data folder the name is constant.
  &quot;originalFilename&quot;: &quot;A String&quot;, # 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 Google Drive.
  &quot;ownedByMe&quot;: True or False, # Whether the user owns the file. Not populated for items in shared drives.
  &quot;owners&quot;: [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for items in shared drives.
    { # Information about a Drive user.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
  ],
  &quot;parents&quot;: [ # 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 user&#x27;s My Drive folder. If not specified as part of a copy request, the file will inherit any discoverable parents of the source file. Update requests must use the addParents and removeParents parameters to modify the parents list.
    &quot;A String&quot;,
  ],
  &quot;permissionIds&quot;: [ # List of permission IDs for users with access to this file.
    &quot;A String&quot;,
  ],
  &quot;permissions&quot;: [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for items in shared drives.
    { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
      &quot;allowFileDiscovery&quot;: True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
      &quot;deleted&quot;: True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
      &quot;displayName&quot;: &quot;A String&quot;, # The &quot;pretty&quot; name of the value of the permission. The following is a list of examples for each type of permission:
          # - user - User&#x27;s full name, as defined for their Google account, such as &quot;Joe Smith.&quot;
          # - group - Name of the Google Group, such as &quot;The Company Administrators.&quot;
          # - domain - String domain name, such as &quot;thecompany.com.&quot;
          # - anyone - No displayName is present.
      &quot;domain&quot;: &quot;A String&quot;, # The domain to which this permission refers.
      &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user or group to which this permission refers.
      &quot;expirationTime&quot;: &quot;A String&quot;, # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
          # - They can only be set on user and group permissions
          # - The time must be in the future
          # - The time cannot be more than a year in the future
      &quot;id&quot;: &quot;A String&quot;, # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId. IDs should be treated as opaque values.
      &quot;kind&quot;: &quot;drive#permission&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#permission&quot;.
      &quot;permissionDetails&quot;: [ # Details of whether the permissions on this shared drive item are inherited or directly on this item. This is an output-only field which is present only for shared drive items.
        {
          &quot;inherited&quot;: True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
          &quot;inheritedFrom&quot;: &quot;A String&quot;, # The ID of the item from which this permission is inherited. This is an output-only field.
          &quot;permissionType&quot;: &quot;A String&quot;, # The permission type for this user. While new values may be added in future, the following are currently possible:
              # - file
              # - member
          &quot;role&quot;: &quot;A String&quot;, # The primary role for this user. While new values may be added in the future, the following are currently possible:
              # - organizer
              # - fileOrganizer
              # - writer
              # - commenter
              # - reader
        },
      ],
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
      &quot;role&quot;: &quot;A String&quot;, # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
          # - owner
          # - organizer
          # - fileOrganizer
          # - writer
          # - commenter
          # - reader
      &quot;teamDrivePermissionDetails&quot;: [ # Deprecated - use permissionDetails instead.
        {
          &quot;inherited&quot;: True or False, # Deprecated - use permissionDetails/inherited instead.
          &quot;inheritedFrom&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/inheritedFrom instead.
          &quot;role&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/role instead.
          &quot;teamDrivePermissionType&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/permissionType instead.
        },
      ],
      &quot;type&quot;: &quot;A String&quot;, # The type of the grantee. Valid values are:
          # - user
          # - group
          # - domain
          # - anyone  When creating a permission, if type is user or group, you must provide an emailAddress for the user or group. When type is domain, you must provide a domain. There isn&#x27;t extra information required for a anyone type.
    },
  ],
  &quot;properties&quot;: { # A collection of arbitrary key-value pairs which are visible to all apps.
      # Entries with null values are cleared in update and copy requests.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;quotaBytesUsed&quot;: &quot;A String&quot;, # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
  &quot;shared&quot;: True or False, # Whether the file has been shared. Not populated for items in shared drives.
  &quot;sharedWithMeTime&quot;: &quot;A String&quot;, # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
  &quot;sharingUser&quot;: { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
    &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
    &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
    &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
    &quot;me&quot;: True or False, # Whether this user is the requesting user.
    &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
    &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
  },
  &quot;shortcutDetails&quot;: { # Shortcut file details. Only populated for shortcut files, which have the mimeType field set to application/vnd.google-apps.shortcut.
    &quot;targetId&quot;: &quot;A String&quot;, # The ID of the file that this shortcut points to.
    &quot;targetMimeType&quot;: &quot;A String&quot;, # The MIME type of the file that this shortcut points to. The value of this field is a snapshot of the target&#x27;s MIME type, captured when the shortcut is created.
  },
  &quot;size&quot;: &quot;A String&quot;, # The size of the file&#x27;s content in bytes. This is only applicable to files with binary content in Google Drive.
  &quot;spaces&quot;: [ # The list of spaces which contain the file. The currently supported values are &#x27;drive&#x27;, &#x27;appDataFolder&#x27; and &#x27;photos&#x27;.
    &quot;A String&quot;,
  ],
  &quot;starred&quot;: True or False, # Whether the user has starred the file.
  &quot;teamDriveId&quot;: &quot;A String&quot;, # Deprecated - use driveId instead.
  &quot;thumbnailLink&quot;: &quot;A String&quot;, # A short-lived link to the file&#x27;s thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file&#x27;s content.
  &quot;thumbnailVersion&quot;: &quot;A String&quot;, # The thumbnail version for use in thumbnail cache invalidation.
  &quot;trashed&quot;: True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file. The trashed item is excluded from all files.list responses returned for any user who does not own the file. However, all users with access to the file can see the trashed item metadata in an API response. All users with access can copy, download, export, and share the file.
  &quot;trashedTime&quot;: &quot;A String&quot;, # The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.
  &quot;trashingUser&quot;: { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives.
    &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
    &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
    &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
    &quot;me&quot;: True or False, # Whether this user is the requesting user.
    &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
    &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
  },
  &quot;version&quot;: &quot;A String&quot;, # 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.
  &quot;videoMediaMetadata&quot;: { # Additional metadata about video media. This may not be available immediately upon upload.
    &quot;durationMillis&quot;: &quot;A String&quot;, # The duration of the video in milliseconds.
    &quot;height&quot;: 42, # The height of the video in pixels.
    &quot;width&quot;: 42, # The width of the video in pixels.
  },
  &quot;viewedByMe&quot;: True or False, # Whether the file has been viewed by this user.
  &quot;viewedByMeTime&quot;: &quot;A String&quot;, # The last time the file was viewed by the user (RFC 3339 date-time).
  &quot;viewersCanCopyContent&quot;: True or False, # Deprecated - use copyRequiresWriterPermission instead.
  &quot;webContentLink&quot;: &quot;A String&quot;, # A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.
  &quot;webViewLink&quot;: &quot;A String&quot;, # A link for opening the file in a relevant Google editor or viewer in a browser.
  &quot;writersCanShare&quot;: True or False, # Whether users with only writer permission can modify the file&#x27;s permissions. Not populated for items in shared drives.
}

  addParents: string, A comma-separated list of parent IDs to add.
  enforceSingleParent: boolean, Set to true to opt in to API behavior that aims for all items to have exactly one parent. This parameter only takes effect if the item is not in a shared drive. If the item&#x27;s owner makes a request to add a single parent, the item is removed from all current folders and placed in the requested folder. Other requests that increase the number of parents fail, except when the canAddMyDriveParent file capability is true and a single parent is being added.
  keepRevisionForever: boolean, Whether to set the &#x27;keepForever&#x27; field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for the file can be kept forever. If the limit is reached, try deleting pinned revisions.
  ocrLanguage: string, A language hint for OCR processing during image import (ISO 639-1 code).
  removeParents: string, A comma-separated list of parent IDs to remove.
  supportsAllDrives: boolean, Whether the requesting application supports both My Drives and shared drives.
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
  useContentAsIndexableText: boolean, Whether to use the uploaded content as indexable text.
  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
  media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.

Returns:
  An object of the form:

    { # The metadata for a file.
    &quot;appProperties&quot;: { # 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.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;capabilities&quot;: { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
      &quot;canAddChildren&quot;: True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
      &quot;canAddFolderFromAnotherDrive&quot;: True or False, # Whether the current user can add a folder from another drive (different shared drive or My Drive) to this folder. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canAddMyDriveParent&quot;: True or False, # Whether the current user can add a parent for the item without removing an existing parent in the same request. Not populated for shared drive files.
      &quot;canChangeCopyRequiresWriterPermission&quot;: True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
      &quot;canChangeViewersCanCopyContent&quot;: True or False, # Deprecated
      &quot;canComment&quot;: True or False, # Whether the current user can comment on this file.
      &quot;canCopy&quot;: True or False, # Whether the current user can copy this file. For an item in a shared drive, whether the current user can copy non-folder descendants of this item, or this item itself if it is not a folder.
      &quot;canDelete&quot;: True or False, # Whether the current user can delete this file.
      &quot;canDeleteChildren&quot;: True or False, # Whether the current user can delete children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canDownload&quot;: True or False, # Whether the current user can download this file.
      &quot;canEdit&quot;: True or False, # Whether the current user can edit this file. Other factors may limit the type of changes a user can make to a file. For example, see canChangeCopyRequiresWriterPermission or canModifyContent.
      &quot;canListChildren&quot;: True or False, # Whether the current user can list the children of this folder. This is always false when the item is not a folder.
      &quot;canModifyContent&quot;: True or False, # Whether the current user can modify the content of this file.
      &quot;canModifyContentRestriction&quot;: True or False, # Whether the current user can modify restrictions on content of this file.
      &quot;canMoveChildrenOutOfDrive&quot;: True or False, # Whether the current user can move children of this folder outside of the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canMoveChildrenOutOfTeamDrive&quot;: True or False, # Deprecated - use canMoveChildrenOutOfDrive instead.
      &quot;canMoveChildrenWithinDrive&quot;: True or False, # Whether the current user can move children of this folder within the shared drive. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canMoveChildrenWithinTeamDrive&quot;: True or False, # Deprecated - use canMoveChildrenWithinDrive instead.
      &quot;canMoveItemIntoTeamDrive&quot;: True or False, # Deprecated - use canMoveItemOutOfDrive instead.
      &quot;canMoveItemOutOfDrive&quot;: True or False, # Whether the current user can move this item outside of this drive by changing its parent. Note that a request to change the parent of the item may still fail depending on the new parent that is being added.
      &quot;canMoveItemOutOfTeamDrive&quot;: True or False, # Deprecated - use canMoveItemOutOfDrive instead.
      &quot;canMoveItemWithinDrive&quot;: True or False, # Whether the current user can move this item within this shared drive. Note that a request to change the parent of the item may still fail depending on the new parent that is being added. Only populated for items in shared drives.
      &quot;canMoveItemWithinTeamDrive&quot;: True or False, # Deprecated - use canMoveItemWithinDrive instead.
      &quot;canMoveTeamDriveItem&quot;: True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
      &quot;canReadDrive&quot;: True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
      &quot;canReadRevisions&quot;: True or False, # Whether the current user can read the revisions resource of this file. For a shared drive item, whether revisions of non-folder descendants of this item, or this item itself if it is not a folder, can be read.
      &quot;canReadTeamDrive&quot;: True or False, # Deprecated - use canReadDrive instead.
      &quot;canRemoveChildren&quot;: True or False, # Whether the current user can remove children from this folder. This is always false when the item is not a folder. For a folder in a shared drive, use canDeleteChildren or canTrashChildren instead.
      &quot;canRemoveMyDriveParent&quot;: True or False, # Whether the current user can remove a parent from the item without adding another parent in the same request. Not populated for shared drive files.
      &quot;canRename&quot;: True or False, # Whether the current user can rename this file.
      &quot;canShare&quot;: True or False, # Whether the current user can modify the sharing settings for this file.
      &quot;canTrash&quot;: True or False, # Whether the current user can move this file to trash.
      &quot;canTrashChildren&quot;: True or False, # Whether the current user can trash children of this folder. This is false when the item is not a folder. Only populated for items in shared drives.
      &quot;canUntrash&quot;: True or False, # Whether the current user can restore this file from trash.
    },
    &quot;contentHints&quot;: { # Additional information about the content of the file. These fields are never populated in responses.
      &quot;indexableText&quot;: &quot;A String&quot;, # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
      &quot;thumbnail&quot;: { # A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.
        &quot;image&quot;: &quot;A String&quot;, # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
        &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the thumbnail.
      },
    },
    &quot;contentRestrictions&quot;: [ # Restrictions for accessing the content of the file. Only populated if such a restriction exists.
      { # A restriction for accessing the content of the file.
        &quot;readOnly&quot;: True or False, # Whether the content of the file is read-only.
        &quot;reason&quot;: &quot;A String&quot;, # Reason for why the content of the file is restricted. This is only mutable on requests that also set readOnly=true.
        &quot;restrictingUser&quot;: { # Information about a Drive user. # The user who set the content restriction. Only populated if readOnly is true.
          &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
          &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
          &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
          &quot;me&quot;: True or False, # Whether this user is the requesting user.
          &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
          &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
        },
        &quot;restrictionTime&quot;: &quot;A String&quot;, # The time at which the content restriction was set (formatted RFC 3339 timestamp). Only populated if readOnly is true.
        &quot;type&quot;: &quot;A String&quot;, # The type of the content restriction. Currently the only possible value is globalContentRestriction.
      },
    ],
    &quot;copyRequiresWriterPermission&quot;: True or False, # Whether the options to copy, print, or download this file, should be disabled for readers and commenters.
    &quot;createdTime&quot;: &quot;A String&quot;, # The time at which the file was created (RFC 3339 date-time).
    &quot;description&quot;: &quot;A String&quot;, # A short description of the file.
    &quot;driveId&quot;: &quot;A String&quot;, # ID of the shared drive the file resides in. Only populated for items in shared drives.
    &quot;explicitlyTrashed&quot;: True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
    &quot;exportLinks&quot;: { # Links for exporting Google Docs to specific formats.
      &quot;a_key&quot;: &quot;A String&quot;, # A mapping from export format to URL
    },
    &quot;fileExtension&quot;: &quot;A String&quot;, # The final component of fullFileExtension. This is only available for files with binary content in Google Drive.
    &quot;folderColorRgb&quot;: &quot;A String&quot;, # 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.
    &quot;fullFileExtension&quot;: &quot;A String&quot;, # The full file extension extracted from the name field. May contain multiple concatenated extensions, such as &quot;tar.gz&quot;. This is only available for files with binary content in Google 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.
    &quot;hasAugmentedPermissions&quot;: True or False, # Whether there are permissions directly on this file. This field is only populated for items in shared drives.
    &quot;hasThumbnail&quot;: True or False, # Whether this file has a thumbnail. This does not indicate whether the requesting app has access to the thumbnail. To check access, look for the presence of the thumbnailLink field.
    &quot;headRevisionId&quot;: &quot;A String&quot;, # The ID of the file&#x27;s head revision. This is currently only available for files with binary content in Google Drive.
    &quot;iconLink&quot;: &quot;A String&quot;, # A static, unauthenticated link to the file&#x27;s icon.
    &quot;id&quot;: &quot;A String&quot;, # The ID of the file.
    &quot;imageMediaMetadata&quot;: { # Additional metadata about image media, if available.
      &quot;aperture&quot;: 3.14, # The aperture used to create the photo (f-number).
      &quot;cameraMake&quot;: &quot;A String&quot;, # The make of the camera used to create the photo.
      &quot;cameraModel&quot;: &quot;A String&quot;, # The model of the camera used to create the photo.
      &quot;colorSpace&quot;: &quot;A String&quot;, # The color space of the photo.
      &quot;exposureBias&quot;: 3.14, # The exposure bias of the photo (APEX value).
      &quot;exposureMode&quot;: &quot;A String&quot;, # The exposure mode used to create the photo.
      &quot;exposureTime&quot;: 3.14, # The length of the exposure, in seconds.
      &quot;flashUsed&quot;: True or False, # Whether a flash was used to create the photo.
      &quot;focalLength&quot;: 3.14, # The focal length used to create the photo, in millimeters.
      &quot;height&quot;: 42, # The height of the image in pixels.
      &quot;isoSpeed&quot;: 42, # The ISO speed used to create the photo.
      &quot;lens&quot;: &quot;A String&quot;, # The lens used to create the photo.
      &quot;location&quot;: { # Geographic location information stored in the image.
        &quot;altitude&quot;: 3.14, # The altitude stored in the image.
        &quot;latitude&quot;: 3.14, # The latitude stored in the image.
        &quot;longitude&quot;: 3.14, # The longitude stored in the image.
      },
      &quot;maxApertureValue&quot;: 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
      &quot;meteringMode&quot;: &quot;A String&quot;, # The metering mode used to create the photo.
      &quot;rotation&quot;: 42, # The number of clockwise 90 degree rotations applied from the image&#x27;s original orientation.
      &quot;sensor&quot;: &quot;A String&quot;, # The type of sensor used to create the photo.
      &quot;subjectDistance&quot;: 42, # The distance to the subject of the photo, in meters.
      &quot;time&quot;: &quot;A String&quot;, # The date and time the photo was taken (EXIF DateTime).
      &quot;whiteBalance&quot;: &quot;A String&quot;, # The white balance mode used to create the photo.
      &quot;width&quot;: 42, # The width of the image in pixels.
    },
    &quot;isAppAuthorized&quot;: True or False, # Whether the file was created or opened by the requesting app.
    &quot;kind&quot;: &quot;drive#file&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#file&quot;.
    &quot;lastModifyingUser&quot;: { # Information about a Drive user. # The last user to modify the file.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
    &quot;md5Checksum&quot;: &quot;A String&quot;, # The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.
    &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the file.
        # Google 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.
    &quot;modifiedByMe&quot;: True or False, # Whether the file has been modified by this user.
    &quot;modifiedByMeTime&quot;: &quot;A String&quot;, # The last time the file was modified by the user (RFC 3339 date-time).
    &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the file was modified by anyone (RFC 3339 date-time).
        # Note that setting modifiedTime will also update modifiedByMeTime for the user.
    &quot;name&quot;: &quot;A String&quot;, # The name of the file. This is not necessarily unique within a folder. Note that for immutable items such as the top level folders of shared drives, My Drive root folder, and Application Data folder the name is constant.
    &quot;originalFilename&quot;: &quot;A String&quot;, # 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 Google Drive.
    &quot;ownedByMe&quot;: True or False, # Whether the user owns the file. Not populated for items in shared drives.
    &quot;owners&quot;: [ # The owners of the file. Currently, only certain legacy files may have more than one owner. Not populated for items in shared drives.
      { # Information about a Drive user.
        &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
        &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
        &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
        &quot;me&quot;: True or False, # Whether this user is the requesting user.
        &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
        &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
      },
    ],
    &quot;parents&quot;: [ # 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 user&#x27;s My Drive folder. If not specified as part of a copy request, the file will inherit any discoverable parents of the source file. Update requests must use the addParents and removeParents parameters to modify the parents list.
      &quot;A String&quot;,
    ],
    &quot;permissionIds&quot;: [ # List of permission IDs for users with access to this file.
      &quot;A String&quot;,
    ],
    &quot;permissions&quot;: [ # The full list of permissions for the file. This is only available if the requesting user can share the file. Not populated for items in shared drives.
      { # A permission for a file. A permission grants a user, group, domain or the world access to a file or a folder hierarchy.
        &quot;allowFileDiscovery&quot;: True or False, # Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type domain or anyone.
        &quot;deleted&quot;: True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
        &quot;displayName&quot;: &quot;A String&quot;, # The &quot;pretty&quot; name of the value of the permission. The following is a list of examples for each type of permission:
            # - user - User&#x27;s full name, as defined for their Google account, such as &quot;Joe Smith.&quot;
            # - group - Name of the Google Group, such as &quot;The Company Administrators.&quot;
            # - domain - String domain name, such as &quot;thecompany.com.&quot;
            # - anyone - No displayName is present.
        &quot;domain&quot;: &quot;A String&quot;, # The domain to which this permission refers.
        &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user or group to which this permission refers.
        &quot;expirationTime&quot;: &quot;A String&quot;, # The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
            # - They can only be set on user and group permissions
            # - The time must be in the future
            # - The time cannot be more than a year in the future
        &quot;id&quot;: &quot;A String&quot;, # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId. IDs should be treated as opaque values.
        &quot;kind&quot;: &quot;drive#permission&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#permission&quot;.
        &quot;permissionDetails&quot;: [ # Details of whether the permissions on this shared drive item are inherited or directly on this item. This is an output-only field which is present only for shared drive items.
          {
            &quot;inherited&quot;: True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
            &quot;inheritedFrom&quot;: &quot;A String&quot;, # The ID of the item from which this permission is inherited. This is an output-only field.
            &quot;permissionType&quot;: &quot;A String&quot;, # The permission type for this user. While new values may be added in future, the following are currently possible:
                # - file
                # - member
            &quot;role&quot;: &quot;A String&quot;, # The primary role for this user. While new values may be added in the future, the following are currently possible:
                # - organizer
                # - fileOrganizer
                # - writer
                # - commenter
                # - reader
          },
        ],
        &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
        &quot;role&quot;: &quot;A String&quot;, # The role granted by this permission. While new values may be supported in the future, the following are currently allowed:
            # - owner
            # - organizer
            # - fileOrganizer
            # - writer
            # - commenter
            # - reader
        &quot;teamDrivePermissionDetails&quot;: [ # Deprecated - use permissionDetails instead.
          {
            &quot;inherited&quot;: True or False, # Deprecated - use permissionDetails/inherited instead.
            &quot;inheritedFrom&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/inheritedFrom instead.
            &quot;role&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/role instead.
            &quot;teamDrivePermissionType&quot;: &quot;A String&quot;, # Deprecated - use permissionDetails/permissionType instead.
          },
        ],
        &quot;type&quot;: &quot;A String&quot;, # The type of the grantee. Valid values are:
            # - user
            # - group
            # - domain
            # - anyone  When creating a permission, if type is user or group, you must provide an emailAddress for the user or group. When type is domain, you must provide a domain. There isn&#x27;t extra information required for a anyone type.
      },
    ],
    &quot;properties&quot;: { # A collection of arbitrary key-value pairs which are visible to all apps.
        # Entries with null values are cleared in update and copy requests.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;quotaBytesUsed&quot;: &quot;A String&quot;, # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
    &quot;shared&quot;: True or False, # Whether the file has been shared. Not populated for items in shared drives.
    &quot;sharedWithMeTime&quot;: &quot;A String&quot;, # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
    &quot;sharingUser&quot;: { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
    &quot;shortcutDetails&quot;: { # Shortcut file details. Only populated for shortcut files, which have the mimeType field set to application/vnd.google-apps.shortcut.
      &quot;targetId&quot;: &quot;A String&quot;, # The ID of the file that this shortcut points to.
      &quot;targetMimeType&quot;: &quot;A String&quot;, # The MIME type of the file that this shortcut points to. The value of this field is a snapshot of the target&#x27;s MIME type, captured when the shortcut is created.
    },
    &quot;size&quot;: &quot;A String&quot;, # The size of the file&#x27;s content in bytes. This is only applicable to files with binary content in Google Drive.
    &quot;spaces&quot;: [ # The list of spaces which contain the file. The currently supported values are &#x27;drive&#x27;, &#x27;appDataFolder&#x27; and &#x27;photos&#x27;.
      &quot;A String&quot;,
    ],
    &quot;starred&quot;: True or False, # Whether the user has starred the file.
    &quot;teamDriveId&quot;: &quot;A String&quot;, # Deprecated - use driveId instead.
    &quot;thumbnailLink&quot;: &quot;A String&quot;, # A short-lived link to the file&#x27;s thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file&#x27;s content.
    &quot;thumbnailVersion&quot;: &quot;A String&quot;, # The thumbnail version for use in thumbnail cache invalidation.
    &quot;trashed&quot;: True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file. The trashed item is excluded from all files.list responses returned for any user who does not own the file. However, all users with access to the file can see the trashed item metadata in an API response. All users with access can copy, download, export, and share the file.
    &quot;trashedTime&quot;: &quot;A String&quot;, # The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.
    &quot;trashingUser&quot;: { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # 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.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
    &quot;version&quot;: &quot;A String&quot;, # 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.
    &quot;videoMediaMetadata&quot;: { # Additional metadata about video media. This may not be available immediately upon upload.
      &quot;durationMillis&quot;: &quot;A String&quot;, # The duration of the video in milliseconds.
      &quot;height&quot;: 42, # The height of the video in pixels.
      &quot;width&quot;: 42, # The width of the video in pixels.
    },
    &quot;viewedByMe&quot;: True or False, # Whether the file has been viewed by this user.
    &quot;viewedByMeTime&quot;: &quot;A String&quot;, # The last time the file was viewed by the user (RFC 3339 date-time).
    &quot;viewersCanCopyContent&quot;: True or False, # Deprecated - use copyRequiresWriterPermission instead.
    &quot;webContentLink&quot;: &quot;A String&quot;, # A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.
    &quot;webViewLink&quot;: &quot;A String&quot;, # A link for opening the file in a relevant Google editor or viewer in a browser.
    &quot;writersCanShare&quot;: True or False, # Whether users with only writer permission can modify the file&#x27;s permissions. Not populated for items in shared drives.
  }</pre>
</div>

<div class="method">
    <code class="details" id="watch">watch(fileId, body=None, acknowledgeAbuse=None, supportsAllDrives=None, supportsTeamDrives=None)</code>
  <pre>Subscribes to changes to a file

Args:
  fileId: string, The ID of the file. (required)
  body: object, The request body.
    The object takes the form of:

{ # An notification channel used to watch for resource changes.
    &quot;address&quot;: &quot;A String&quot;, # The address where notifications are delivered for this channel.
    &quot;expiration&quot;: &quot;A String&quot;, # Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.
    &quot;id&quot;: &quot;A String&quot;, # A UUID or similar unique string that identifies this channel.
    &quot;kind&quot;: &quot;api#channel&quot;, # Identifies this as a notification channel used to watch for changes to a resource, which is &quot;api#channel&quot;.
    &quot;params&quot;: { # Additional parameters controlling delivery channel behavior. Optional.
      &quot;a_key&quot;: &quot;A String&quot;, # Declares a new parameter by name.
    },
    &quot;payload&quot;: True or False, # A Boolean value to indicate whether payload is wanted. Optional.
    &quot;resourceId&quot;: &quot;A String&quot;, # An opaque ID that identifies the resource being watched on this channel. Stable across different API versions.
    &quot;resourceUri&quot;: &quot;A String&quot;, # A version-specific identifier for the watched resource.
    &quot;token&quot;: &quot;A String&quot;, # An arbitrary string delivered to the target address with each notification delivered over this channel. Optional.
    &quot;type&quot;: &quot;A String&quot;, # The type of delivery mechanism used for this channel.
  }

  acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.
  supportsAllDrives: boolean, Whether the requesting application supports both My Drives and shared drives.
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.

Returns:
  An object of the form:

    { # An notification channel used to watch for resource changes.
      &quot;address&quot;: &quot;A String&quot;, # The address where notifications are delivered for this channel.
      &quot;expiration&quot;: &quot;A String&quot;, # Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.
      &quot;id&quot;: &quot;A String&quot;, # A UUID or similar unique string that identifies this channel.
      &quot;kind&quot;: &quot;api#channel&quot;, # Identifies this as a notification channel used to watch for changes to a resource, which is &quot;api#channel&quot;.
      &quot;params&quot;: { # Additional parameters controlling delivery channel behavior. Optional.
        &quot;a_key&quot;: &quot;A String&quot;, # Declares a new parameter by name.
      },
      &quot;payload&quot;: True or False, # A Boolean value to indicate whether payload is wanted. Optional.
      &quot;resourceId&quot;: &quot;A String&quot;, # An opaque ID that identifies the resource being watched on this channel. Stable across different API versions.
      &quot;resourceUri&quot;: &quot;A String&quot;, # A version-specific identifier for the watched resource.
      &quot;token&quot;: &quot;A String&quot;, # An arbitrary string delivered to the target address with each notification delivered over this channel. Optional.
      &quot;type&quot;: &quot;A String&quot;, # The type of delivery mechanism used for this channel.
    }</pre>
</div>

<div class="method">
    <code class="details" id="watch_media">watch_media(fileId, body=None, acknowledgeAbuse=None, supportsAllDrives=None, supportsTeamDrives=None)</code>
  <pre>Subscribes to changes to a file

Args:
  fileId: string, The ID of the file. (required)
  body: object, The request body.
    The object takes the form of:

{ # An notification channel used to watch for resource changes.
    &quot;address&quot;: &quot;A String&quot;, # The address where notifications are delivered for this channel.
    &quot;expiration&quot;: &quot;A String&quot;, # Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.
    &quot;id&quot;: &quot;A String&quot;, # A UUID or similar unique string that identifies this channel.
    &quot;kind&quot;: &quot;api#channel&quot;, # Identifies this as a notification channel used to watch for changes to a resource, which is &quot;api#channel&quot;.
    &quot;params&quot;: { # Additional parameters controlling delivery channel behavior. Optional.
      &quot;a_key&quot;: &quot;A String&quot;, # Declares a new parameter by name.
    },
    &quot;payload&quot;: True or False, # A Boolean value to indicate whether payload is wanted. Optional.
    &quot;resourceId&quot;: &quot;A String&quot;, # An opaque ID that identifies the resource being watched on this channel. Stable across different API versions.
    &quot;resourceUri&quot;: &quot;A String&quot;, # A version-specific identifier for the watched resource.
    &quot;token&quot;: &quot;A String&quot;, # An arbitrary string delivered to the target address with each notification delivered over this channel. Optional.
    &quot;type&quot;: &quot;A String&quot;, # The type of delivery mechanism used for this channel.
  }

  acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.
  supportsAllDrives: boolean, Whether the requesting application supports both My Drives and shared drives.
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.

Returns:
  The media object as a string.

    </pre>
</div>

</body></html>