<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, keepRevisionForever=None, supportsTeamDrives=None, ocrLanguage=None, ignoreDefaultVisibility=None, supportsAllDrives=None)</a></code></p>
<p class="firstline">Creates a copy of a file and applies any requested updates with patch semantics.</p>
<p class="toc_element">
  <code><a href="#create">create(body=None, media_body=None, keepRevisionForever=None, useContentAsIndexableText=None, supportsTeamDrives=None, ocrLanguage=None, ignoreDefaultVisibility=None, supportsAllDrives=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, supportsTeamDrives=None, supportsAllDrives=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 requests.</p>
<p class="toc_element">
  <code><a href="#get">get(fileId, supportsTeamDrives=None, supportsAllDrives=None, acknowledgeAbuse=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, supportsTeamDrives=None, supportsAllDrives=None, acknowledgeAbuse=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(orderBy=None, pageSize=None, supportsTeamDrives=None, spaces=None, q=None, pageToken=None, corpus=None, teamDriveId=None, includeItemsFromAllDrives=None, includeTeamDriveItems=None, corpora=None, supportsAllDrives=None, driveId=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, keepRevisionForever=None, removeParents=None, supportsTeamDrives=None, media_body=None, ocrLanguage=None, addParents=None, useContentAsIndexableText=None, supportsAllDrives=None, media_mime_type=None)</a></code></p>
<p class="firstline">Updates a file's metadata and/or content with patch semantics.</p>
<p class="toc_element">
  <code><a href="#watch">watch(fileId, body, supportsTeamDrives=None, supportsAllDrives=None, acknowledgeAbuse=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, supportsTeamDrives=None, supportsAllDrives=None, acknowledgeAbuse=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, keepRevisionForever=None, supportsTeamDrives=None, ocrLanguage=None, ignoreDefaultVisibility=None, supportsAllDrives=None)</code>
  <pre>Creates a copy of a file and applies any requested updates with patch semantics.

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

{ # The metadata for a file.
  "hasThumbnail": 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.
  "mimeType": "A String", # 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.
  "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
  "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
  "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
  "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
  "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
  "teamDriveId": "A String", # Deprecated - use driveId instead.
  "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for items in shared drives.
  "ownedByMe": True or False, # Whether the user owns the file. Not populated for items in shared drives.
  "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
  "id": "A String", # The ID of the file.
  "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
    "me": True or False, # Whether this user is the requesting user.
    "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
    "displayName": "A String", # A plain text displayable name for this user.
    "permissionId": "A String", # The user's ID as visible in Permission resources.
    "emailAddress": "A String", # 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.
    "photoLink": "A String", # A link to the user's profile photo, if available.
  },
  "size": "A String", # The size of the file's content in bytes. This is only applicable to files with binary content in Google Drive.
  "videoMediaMetadata": { # Additional metadata about video media. This may not be available immediately upon upload.
    "width": 42, # The width of the video in pixels.
    "durationMillis": "A String", # The duration of the video in milliseconds.
    "height": 42, # The height of the video in pixels.
  },
  "lastModifyingUser": { # Information about a Drive user. # The last user to modify the file.
    "me": True or False, # Whether this user is the requesting user.
    "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
    "displayName": "A String", # A plain text displayable name for this user.
    "permissionId": "A String", # The user's ID as visible in Permission resources.
    "emailAddress": "A String", # 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.
    "photoLink": "A String", # A link to the user's profile photo, if available.
  },
  "folderColorRgb": "A String", # 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.
  "appProperties": { # 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.
    "a_key": "A String",
  },
  "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
    "canMoveItemOutOfDrive": 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.
    "canUntrash": True or False, # Whether the current user can restore this file from trash.
    "canMoveItemWithinTeamDrive": True or False, # Deprecated - use canMoveItemWithinDrive instead.
    "canDeleteChildren": 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.
    "canMoveChildrenWithinTeamDrive": True or False, # Deprecated - use canMoveChildrenWithinDrive instead.
    "canListChildren": 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.
    "canRename": True or False, # Whether the current user can rename this file.
    "canReadDrive": True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
    "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
    "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
    "canTrashChildren": 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.
    "canMoveChildrenWithinDrive": 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.
    "canReadRevisions": 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.
    "canMoveItemWithinDrive": 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.
    "canCopy": 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.
    "canMoveItemIntoTeamDrive": True or False, # Deprecated - use canMoveItemOutOfDrive instead.
    "canMoveItemOutOfTeamDrive": True or False, # Deprecated - use canMoveItemOutOfDrive instead.
    "canComment": True or False, # Whether the current user can comment on this file.
    "canMoveChildrenOutOfDrive": 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.
    "canChangeViewersCanCopyContent": True or False, # Deprecated
    "canTrash": True or False, # Whether the current user can move this file to trash.
    "canDelete": True or False, # Whether the current user can delete this file.
    "canMoveTeamDriveItem": True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
    "canDownload": True or False, # Whether the current user can download this file.
    "canChangeCopyRequiresWriterPermission": True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
    "canMoveChildrenOutOfTeamDrive": True or False, # Deprecated - use canMoveChildrenOutOfDrive instead.
    "canRemoveChildren": 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.
    "canReadTeamDrive": True or False, # Deprecated - use canReadDrive instead.
    "canEdit": True or False, # Whether the current user can edit this file.
  },
  "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.
  "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
  "version": "A String", # 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.
  "parents": [ # 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'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.
    "A String",
  ],
  "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
  "exportLinks": { # Links for exporting Google Docs to specific formats.
    "a_key": "A String", # A mapping from export format to URL
  },
  "shared": True or False, # Whether the file has been shared. Not populated for items in shared drives.
  "copyRequiresWriterPermission": True or False, # Whether the options to copy, print, or download this file, should be disabled for readers and commenters.
  "fullFileExtension": "A String", # The full file extension extracted from the name field. May contain multiple concatenated extensions, such as "tar.gz". This is only available for files with binary content in 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.
  "originalFilename": "A String", # 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.
  "viewersCanCopyContent": True or False, # Deprecated - use copyRequiresWriterPermission instead.
  "description": "A String", # A short description of the file.
  "modifiedTime": "A String", # The last time the file was modified by anyone (RFC 3339 date-time).
      # Note that setting modifiedTime will also update modifiedByMeTime for the user.
  "viewedByMe": True or False, # Whether the file has been viewed by this user.
  "modifiedByMe": True or False, # Whether the file has been modified by this user.
  "owners": [ # 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.
      "me": True or False, # Whether this user is the requesting user.
      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in Permission resources.
      "emailAddress": "A String", # 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.
      "photoLink": "A String", # A link to the user's profile photo, if available.
    },
  ],
  "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
  "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
  "starred": True or False, # Whether the user has starred the file.
  "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
      # Entries with null values are cleared in update and copy requests.
    "a_key": "A String",
  },
  "md5Checksum": "A String", # The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.
  "iconLink": "A String", # A static, unauthenticated link to the file's icon.
  "imageMediaMetadata": { # Additional metadata about image media, if available.
    "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
    "exposureTime": 3.14, # The length of the exposure, in seconds.
    "cameraMake": "A String", # The make of the camera used to create the photo.
    "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
    "width": 42, # The width of the image in pixels.
    "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
    "exposureMode": "A String", # The exposure mode used to create the photo.
    "colorSpace": "A String", # The color space of the photo.
    "location": { # Geographic location information stored in the image.
      "latitude": 3.14, # The latitude stored in the image.
      "altitude": 3.14, # The altitude stored in the image.
      "longitude": 3.14, # The longitude stored in the image.
    },
    "subjectDistance": 42, # The distance to the subject of the photo, in meters.
    "height": 42, # The height of the image in pixels.
    "lens": "A String", # The lens used to create the photo.
    "isoSpeed": 42, # The ISO speed used to create the photo.
    "meteringMode": "A String", # The metering mode used to create the photo.
    "flashUsed": True or False, # Whether a flash was used to create the photo.
    "time": "A String", # The date and time the photo was taken (EXIF DateTime).
    "aperture": 3.14, # The aperture used to create the photo (f-number).
    "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
    "sensor": "A String", # The type of sensor used to create the photo.
    "whiteBalance": "A String", # The white balance mode used to create the photo.
    "cameraModel": "A String", # The model of the camera used to create the photo.
  },
  "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
  "name": "A String", # 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.
  "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.
  "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives.
    "me": True or False, # Whether this user is the requesting user.
    "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
    "displayName": "A String", # A plain text displayable name for this user.
    "permissionId": "A String", # The user's ID as visible in Permission resources.
    "emailAddress": "A String", # 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.
    "photoLink": "A String", # A link to the user's profile photo, if available.
  },
  "driveId": "A String", # ID of the shared drive the file resides in. Only populated for items in shared drives.
  "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
    "A String",
  ],
  "permissionIds": [ # List of permission IDs for users with access to this file.
    "A String",
  ],
  "trashed": True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file, and other users cannot see files in the owner's trash.
  "contentHints": { # Additional information about the content of the file. These fields are never populated in responses.
    "indexableText": "A String", # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
    "thumbnail": { # A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.
      "mimeType": "A String", # The MIME type of the thumbnail.
      "image": "A String", # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
    },
  },
  "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Google Drive.
  "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for shared drive files.
  "permissions": [ # 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.
      "domain": "A String", # The domain to which this permission refers.
      "displayName": "A String", # A displayable name for users, groups or domains.
      "teamDrivePermissionDetails": [ # Deprecated - use permissionDetails instead.
        {
          "inheritedFrom": "A String", # Deprecated - use permissionDetails/inheritedFrom instead.
          "role": "A String", # Deprecated - use permissionDetails/role instead.
          "teamDrivePermissionType": "A String", # Deprecated - use permissionDetails/permissionType instead.
          "inherited": True or False, # Deprecated - use permissionDetails/inherited instead.
        },
      ],
      "allowFileDiscovery": 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.
      "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
      "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
      "emailAddress": "A String", # The email address of the user or group to which this permission refers.
      "photoLink": "A String", # A link to the user's profile photo, if available.
      "permissionDetails": [ # 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.
        {
          "role": "A String", # 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
          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the shared drive.
          "permissionType": "A String", # The permission type for this user. While new values may be added in future, the following are currently possible:
              # - file
              # - member
          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
        },
      ],
      "expirationTime": "A String", # 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
      "role": "A String", # 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
      "type": "A String", # The type of the grantee. Valid values are:
          # - user
          # - group
          # - domain
          # - anyone
      "id": "A String", # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId.
    },
  ],
  "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Google Drive.
}

  keepRevisionForever: boolean, Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Google Drive.
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
  ocrLanguage: string, A language hint for OCR processing during image import (ISO 639-1 code).
  ignoreDefaultVisibility: boolean, Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the domain by default; this parameter bypasses that behavior for the request. Permissions are still inherited from parent folders.
  supportsAllDrives: boolean, Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.

Returns:
  An object of the form:

    { # The metadata for a file.
    "hasThumbnail": 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.
    "mimeType": "A String", # 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.
    "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
    "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
    "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
    "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
    "teamDriveId": "A String", # Deprecated - use driveId instead.
    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for items in shared drives.
    "ownedByMe": True or False, # Whether the user owns the file. Not populated for items in shared drives.
    "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
    "id": "A String", # The ID of the file.
    "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
      "me": True or False, # Whether this user is the requesting user.
      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in Permission resources.
      "emailAddress": "A String", # 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.
      "photoLink": "A String", # A link to the user's profile photo, if available.
    },
    "size": "A String", # The size of the file's content in bytes. This is only applicable to files with binary content in Google Drive.
    "videoMediaMetadata": { # Additional metadata about video media. This may not be available immediately upon upload.
      "width": 42, # The width of the video in pixels.
      "durationMillis": "A String", # The duration of the video in milliseconds.
      "height": 42, # The height of the video in pixels.
    },
    "lastModifyingUser": { # Information about a Drive user. # The last user to modify the file.
      "me": True or False, # Whether this user is the requesting user.
      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in Permission resources.
      "emailAddress": "A String", # 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.
      "photoLink": "A String", # A link to the user's profile photo, if available.
    },
    "folderColorRgb": "A String", # 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.
    "appProperties": { # 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.
      "a_key": "A String",
    },
    "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
      "canMoveItemOutOfDrive": 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.
      "canUntrash": True or False, # Whether the current user can restore this file from trash.
      "canMoveItemWithinTeamDrive": True or False, # Deprecated - use canMoveItemWithinDrive instead.
      "canDeleteChildren": 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.
      "canMoveChildrenWithinTeamDrive": True or False, # Deprecated - use canMoveChildrenWithinDrive instead.
      "canListChildren": 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.
      "canRename": True or False, # Whether the current user can rename this file.
      "canReadDrive": True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
      "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
      "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
      "canTrashChildren": 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.
      "canMoveChildrenWithinDrive": 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.
      "canReadRevisions": 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.
      "canMoveItemWithinDrive": 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.
      "canCopy": 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.
      "canMoveItemIntoTeamDrive": True or False, # Deprecated - use canMoveItemOutOfDrive instead.
      "canMoveItemOutOfTeamDrive": True or False, # Deprecated - use canMoveItemOutOfDrive instead.
      "canComment": True or False, # Whether the current user can comment on this file.
      "canMoveChildrenOutOfDrive": 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.
      "canChangeViewersCanCopyContent": True or False, # Deprecated
      "canTrash": True or False, # Whether the current user can move this file to trash.
      "canDelete": True or False, # Whether the current user can delete this file.
      "canMoveTeamDriveItem": True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
      "canDownload": True or False, # Whether the current user can download this file.
      "canChangeCopyRequiresWriterPermission": True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
      "canMoveChildrenOutOfTeamDrive": True or False, # Deprecated - use canMoveChildrenOutOfDrive instead.
      "canRemoveChildren": 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.
      "canReadTeamDrive": True or False, # Deprecated - use canReadDrive instead.
      "canEdit": True or False, # Whether the current user can edit this file.
    },
    "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.
    "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
    "version": "A String", # 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.
    "parents": [ # 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'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.
      "A String",
    ],
    "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
    "exportLinks": { # Links for exporting Google Docs to specific formats.
      "a_key": "A String", # A mapping from export format to URL
    },
    "shared": True or False, # Whether the file has been shared. Not populated for items in shared drives.
    "copyRequiresWriterPermission": True or False, # Whether the options to copy, print, or download this file, should be disabled for readers and commenters.
    "fullFileExtension": "A String", # The full file extension extracted from the name field. May contain multiple concatenated extensions, such as "tar.gz". This is only available for files with binary content in 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.
    "originalFilename": "A String", # 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.
    "viewersCanCopyContent": True or False, # Deprecated - use copyRequiresWriterPermission instead.
    "description": "A String", # A short description of the file.
    "modifiedTime": "A String", # The last time the file was modified by anyone (RFC 3339 date-time).
        # Note that setting modifiedTime will also update modifiedByMeTime for the user.
    "viewedByMe": True or False, # Whether the file has been viewed by this user.
    "modifiedByMe": True or False, # Whether the file has been modified by this user.
    "owners": [ # 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.
        "me": True or False, # Whether this user is the requesting user.
        "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
        "displayName": "A String", # A plain text displayable name for this user.
        "permissionId": "A String", # The user's ID as visible in Permission resources.
        "emailAddress": "A String", # 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.
        "photoLink": "A String", # A link to the user's profile photo, if available.
      },
    ],
    "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
    "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
    "starred": True or False, # Whether the user has starred the file.
    "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
        # Entries with null values are cleared in update and copy requests.
      "a_key": "A String",
    },
    "md5Checksum": "A String", # The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.
    "iconLink": "A String", # A static, unauthenticated link to the file's icon.
    "imageMediaMetadata": { # Additional metadata about image media, if available.
      "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
      "exposureTime": 3.14, # The length of the exposure, in seconds.
      "cameraMake": "A String", # The make of the camera used to create the photo.
      "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
      "width": 42, # The width of the image in pixels.
      "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
      "exposureMode": "A String", # The exposure mode used to create the photo.
      "colorSpace": "A String", # The color space of the photo.
      "location": { # Geographic location information stored in the image.
        "latitude": 3.14, # The latitude stored in the image.
        "altitude": 3.14, # The altitude stored in the image.
        "longitude": 3.14, # The longitude stored in the image.
      },
      "subjectDistance": 42, # The distance to the subject of the photo, in meters.
      "height": 42, # The height of the image in pixels.
      "lens": "A String", # The lens used to create the photo.
      "isoSpeed": 42, # The ISO speed used to create the photo.
      "meteringMode": "A String", # The metering mode used to create the photo.
      "flashUsed": True or False, # Whether a flash was used to create the photo.
      "time": "A String", # The date and time the photo was taken (EXIF DateTime).
      "aperture": 3.14, # The aperture used to create the photo (f-number).
      "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
      "sensor": "A String", # The type of sensor used to create the photo.
      "whiteBalance": "A String", # The white balance mode used to create the photo.
      "cameraModel": "A String", # The model of the camera used to create the photo.
    },
    "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
    "name": "A String", # 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.
    "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.
    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives.
      "me": True or False, # Whether this user is the requesting user.
      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in Permission resources.
      "emailAddress": "A String", # 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.
      "photoLink": "A String", # A link to the user's profile photo, if available.
    },
    "driveId": "A String", # ID of the shared drive the file resides in. Only populated for items in shared drives.
    "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
      "A String",
    ],
    "permissionIds": [ # List of permission IDs for users with access to this file.
      "A String",
    ],
    "trashed": True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file, and other users cannot see files in the owner's trash.
    "contentHints": { # Additional information about the content of the file. These fields are never populated in responses.
      "indexableText": "A String", # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
      "thumbnail": { # A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.
        "mimeType": "A String", # The MIME type of the thumbnail.
        "image": "A String", # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
      },
    },
    "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Google Drive.
    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for shared drive files.
    "permissions": [ # 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.
        "domain": "A String", # The domain to which this permission refers.
        "displayName": "A String", # A displayable name for users, groups or domains.
        "teamDrivePermissionDetails": [ # Deprecated - use permissionDetails instead.
          {
            "inheritedFrom": "A String", # Deprecated - use permissionDetails/inheritedFrom instead.
            "role": "A String", # Deprecated - use permissionDetails/role instead.
            "teamDrivePermissionType": "A String", # Deprecated - use permissionDetails/permissionType instead.
            "inherited": True or False, # Deprecated - use permissionDetails/inherited instead.
          },
        ],
        "allowFileDiscovery": 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.
        "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
        "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
        "emailAddress": "A String", # The email address of the user or group to which this permission refers.
        "photoLink": "A String", # A link to the user's profile photo, if available.
        "permissionDetails": [ # 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.
          {
            "role": "A String", # 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
            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the shared drive.
            "permissionType": "A String", # The permission type for this user. While new values may be added in future, the following are currently possible:
                # - file
                # - member
            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
          },
        ],
        "expirationTime": "A String", # 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
        "role": "A String", # 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
        "type": "A String", # The type of the grantee. Valid values are:
            # - user
            # - group
            # - domain
            # - anyone
        "id": "A String", # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId.
      },
    ],
    "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Google Drive.
  }</pre>
</div>

<div class="method">
    <code class="details" id="create">create(body=None, media_body=None, keepRevisionForever=None, useContentAsIndexableText=None, supportsTeamDrives=None, ocrLanguage=None, ignoreDefaultVisibility=None, supportsAllDrives=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.
  "hasThumbnail": 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.
  "mimeType": "A String", # 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.
  "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
  "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
  "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
  "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
  "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
  "teamDriveId": "A String", # Deprecated - use driveId instead.
  "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for items in shared drives.
  "ownedByMe": True or False, # Whether the user owns the file. Not populated for items in shared drives.
  "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
  "id": "A String", # The ID of the file.
  "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
    "me": True or False, # Whether this user is the requesting user.
    "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
    "displayName": "A String", # A plain text displayable name for this user.
    "permissionId": "A String", # The user's ID as visible in Permission resources.
    "emailAddress": "A String", # 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.
    "photoLink": "A String", # A link to the user's profile photo, if available.
  },
  "size": "A String", # The size of the file's content in bytes. This is only applicable to files with binary content in Google Drive.
  "videoMediaMetadata": { # Additional metadata about video media. This may not be available immediately upon upload.
    "width": 42, # The width of the video in pixels.
    "durationMillis": "A String", # The duration of the video in milliseconds.
    "height": 42, # The height of the video in pixels.
  },
  "lastModifyingUser": { # Information about a Drive user. # The last user to modify the file.
    "me": True or False, # Whether this user is the requesting user.
    "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
    "displayName": "A String", # A plain text displayable name for this user.
    "permissionId": "A String", # The user's ID as visible in Permission resources.
    "emailAddress": "A String", # 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.
    "photoLink": "A String", # A link to the user's profile photo, if available.
  },
  "folderColorRgb": "A String", # 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.
  "appProperties": { # 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.
    "a_key": "A String",
  },
  "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
    "canMoveItemOutOfDrive": 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.
    "canUntrash": True or False, # Whether the current user can restore this file from trash.
    "canMoveItemWithinTeamDrive": True or False, # Deprecated - use canMoveItemWithinDrive instead.
    "canDeleteChildren": 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.
    "canMoveChildrenWithinTeamDrive": True or False, # Deprecated - use canMoveChildrenWithinDrive instead.
    "canListChildren": 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.
    "canRename": True or False, # Whether the current user can rename this file.
    "canReadDrive": True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
    "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
    "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
    "canTrashChildren": 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.
    "canMoveChildrenWithinDrive": 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.
    "canReadRevisions": 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.
    "canMoveItemWithinDrive": 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.
    "canCopy": 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.
    "canMoveItemIntoTeamDrive": True or False, # Deprecated - use canMoveItemOutOfDrive instead.
    "canMoveItemOutOfTeamDrive": True or False, # Deprecated - use canMoveItemOutOfDrive instead.
    "canComment": True or False, # Whether the current user can comment on this file.
    "canMoveChildrenOutOfDrive": 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.
    "canChangeViewersCanCopyContent": True or False, # Deprecated
    "canTrash": True or False, # Whether the current user can move this file to trash.
    "canDelete": True or False, # Whether the current user can delete this file.
    "canMoveTeamDriveItem": True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
    "canDownload": True or False, # Whether the current user can download this file.
    "canChangeCopyRequiresWriterPermission": True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
    "canMoveChildrenOutOfTeamDrive": True or False, # Deprecated - use canMoveChildrenOutOfDrive instead.
    "canRemoveChildren": 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.
    "canReadTeamDrive": True or False, # Deprecated - use canReadDrive instead.
    "canEdit": True or False, # Whether the current user can edit this file.
  },
  "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.
  "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
  "version": "A String", # 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.
  "parents": [ # 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'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.
    "A String",
  ],
  "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
  "exportLinks": { # Links for exporting Google Docs to specific formats.
    "a_key": "A String", # A mapping from export format to URL
  },
  "shared": True or False, # Whether the file has been shared. Not populated for items in shared drives.
  "copyRequiresWriterPermission": True or False, # Whether the options to copy, print, or download this file, should be disabled for readers and commenters.
  "fullFileExtension": "A String", # The full file extension extracted from the name field. May contain multiple concatenated extensions, such as "tar.gz". This is only available for files with binary content in 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.
  "originalFilename": "A String", # 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.
  "viewersCanCopyContent": True or False, # Deprecated - use copyRequiresWriterPermission instead.
  "description": "A String", # A short description of the file.
  "modifiedTime": "A String", # The last time the file was modified by anyone (RFC 3339 date-time).
      # Note that setting modifiedTime will also update modifiedByMeTime for the user.
  "viewedByMe": True or False, # Whether the file has been viewed by this user.
  "modifiedByMe": True or False, # Whether the file has been modified by this user.
  "owners": [ # 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.
      "me": True or False, # Whether this user is the requesting user.
      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in Permission resources.
      "emailAddress": "A String", # 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.
      "photoLink": "A String", # A link to the user's profile photo, if available.
    },
  ],
  "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
  "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
  "starred": True or False, # Whether the user has starred the file.
  "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
      # Entries with null values are cleared in update and copy requests.
    "a_key": "A String",
  },
  "md5Checksum": "A String", # The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.
  "iconLink": "A String", # A static, unauthenticated link to the file's icon.
  "imageMediaMetadata": { # Additional metadata about image media, if available.
    "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
    "exposureTime": 3.14, # The length of the exposure, in seconds.
    "cameraMake": "A String", # The make of the camera used to create the photo.
    "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
    "width": 42, # The width of the image in pixels.
    "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
    "exposureMode": "A String", # The exposure mode used to create the photo.
    "colorSpace": "A String", # The color space of the photo.
    "location": { # Geographic location information stored in the image.
      "latitude": 3.14, # The latitude stored in the image.
      "altitude": 3.14, # The altitude stored in the image.
      "longitude": 3.14, # The longitude stored in the image.
    },
    "subjectDistance": 42, # The distance to the subject of the photo, in meters.
    "height": 42, # The height of the image in pixels.
    "lens": "A String", # The lens used to create the photo.
    "isoSpeed": 42, # The ISO speed used to create the photo.
    "meteringMode": "A String", # The metering mode used to create the photo.
    "flashUsed": True or False, # Whether a flash was used to create the photo.
    "time": "A String", # The date and time the photo was taken (EXIF DateTime).
    "aperture": 3.14, # The aperture used to create the photo (f-number).
    "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
    "sensor": "A String", # The type of sensor used to create the photo.
    "whiteBalance": "A String", # The white balance mode used to create the photo.
    "cameraModel": "A String", # The model of the camera used to create the photo.
  },
  "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
  "name": "A String", # 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.
  "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.
  "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives.
    "me": True or False, # Whether this user is the requesting user.
    "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
    "displayName": "A String", # A plain text displayable name for this user.
    "permissionId": "A String", # The user's ID as visible in Permission resources.
    "emailAddress": "A String", # 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.
    "photoLink": "A String", # A link to the user's profile photo, if available.
  },
  "driveId": "A String", # ID of the shared drive the file resides in. Only populated for items in shared drives.
  "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
    "A String",
  ],
  "permissionIds": [ # List of permission IDs for users with access to this file.
    "A String",
  ],
  "trashed": True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file, and other users cannot see files in the owner's trash.
  "contentHints": { # Additional information about the content of the file. These fields are never populated in responses.
    "indexableText": "A String", # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
    "thumbnail": { # A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.
      "mimeType": "A String", # The MIME type of the thumbnail.
      "image": "A String", # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
    },
  },
  "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Google Drive.
  "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for shared drive files.
  "permissions": [ # 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.
      "domain": "A String", # The domain to which this permission refers.
      "displayName": "A String", # A displayable name for users, groups or domains.
      "teamDrivePermissionDetails": [ # Deprecated - use permissionDetails instead.
        {
          "inheritedFrom": "A String", # Deprecated - use permissionDetails/inheritedFrom instead.
          "role": "A String", # Deprecated - use permissionDetails/role instead.
          "teamDrivePermissionType": "A String", # Deprecated - use permissionDetails/permissionType instead.
          "inherited": True or False, # Deprecated - use permissionDetails/inherited instead.
        },
      ],
      "allowFileDiscovery": 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.
      "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
      "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
      "emailAddress": "A String", # The email address of the user or group to which this permission refers.
      "photoLink": "A String", # A link to the user's profile photo, if available.
      "permissionDetails": [ # 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.
        {
          "role": "A String", # 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
          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the shared drive.
          "permissionType": "A String", # The permission type for this user. While new values may be added in future, the following are currently possible:
              # - file
              # - member
          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
        },
      ],
      "expirationTime": "A String", # 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
      "role": "A String", # 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
      "type": "A String", # The type of the grantee. Valid values are:
          # - user
          # - group
          # - domain
          # - anyone
      "id": "A String", # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId.
    },
  ],
  "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Google Drive.
}

  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
  keepRevisionForever: boolean, Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Google Drive.
  useContentAsIndexableText: boolean, Whether to use the uploaded content as indexable text.
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
  ocrLanguage: string, A language hint for OCR processing during image import (ISO 639-1 code).
  ignoreDefaultVisibility: boolean, Whether to ignore the domain's default visibility settings for the created file. Domain administrators can choose to make all uploaded files visible to the domain by default; this parameter bypasses that behavior for the request. Permissions are still inherited from parent folders.
  supportsAllDrives: boolean, Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.
  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.
    "hasThumbnail": 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.
    "mimeType": "A String", # 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.
    "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
    "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
    "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
    "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
    "teamDriveId": "A String", # Deprecated - use driveId instead.
    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for items in shared drives.
    "ownedByMe": True or False, # Whether the user owns the file. Not populated for items in shared drives.
    "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
    "id": "A String", # The ID of the file.
    "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
      "me": True or False, # Whether this user is the requesting user.
      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in Permission resources.
      "emailAddress": "A String", # 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.
      "photoLink": "A String", # A link to the user's profile photo, if available.
    },
    "size": "A String", # The size of the file's content in bytes. This is only applicable to files with binary content in Google Drive.
    "videoMediaMetadata": { # Additional metadata about video media. This may not be available immediately upon upload.
      "width": 42, # The width of the video in pixels.
      "durationMillis": "A String", # The duration of the video in milliseconds.
      "height": 42, # The height of the video in pixels.
    },
    "lastModifyingUser": { # Information about a Drive user. # The last user to modify the file.
      "me": True or False, # Whether this user is the requesting user.
      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in Permission resources.
      "emailAddress": "A String", # 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.
      "photoLink": "A String", # A link to the user's profile photo, if available.
    },
    "folderColorRgb": "A String", # 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.
    "appProperties": { # 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.
      "a_key": "A String",
    },
    "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
      "canMoveItemOutOfDrive": 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.
      "canUntrash": True or False, # Whether the current user can restore this file from trash.
      "canMoveItemWithinTeamDrive": True or False, # Deprecated - use canMoveItemWithinDrive instead.
      "canDeleteChildren": 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.
      "canMoveChildrenWithinTeamDrive": True or False, # Deprecated - use canMoveChildrenWithinDrive instead.
      "canListChildren": 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.
      "canRename": True or False, # Whether the current user can rename this file.
      "canReadDrive": True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
      "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
      "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
      "canTrashChildren": 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.
      "canMoveChildrenWithinDrive": 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.
      "canReadRevisions": 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.
      "canMoveItemWithinDrive": 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.
      "canCopy": 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.
      "canMoveItemIntoTeamDrive": True or False, # Deprecated - use canMoveItemOutOfDrive instead.
      "canMoveItemOutOfTeamDrive": True or False, # Deprecated - use canMoveItemOutOfDrive instead.
      "canComment": True or False, # Whether the current user can comment on this file.
      "canMoveChildrenOutOfDrive": 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.
      "canChangeViewersCanCopyContent": True or False, # Deprecated
      "canTrash": True or False, # Whether the current user can move this file to trash.
      "canDelete": True or False, # Whether the current user can delete this file.
      "canMoveTeamDriveItem": True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
      "canDownload": True or False, # Whether the current user can download this file.
      "canChangeCopyRequiresWriterPermission": True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
      "canMoveChildrenOutOfTeamDrive": True or False, # Deprecated - use canMoveChildrenOutOfDrive instead.
      "canRemoveChildren": 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.
      "canReadTeamDrive": True or False, # Deprecated - use canReadDrive instead.
      "canEdit": True or False, # Whether the current user can edit this file.
    },
    "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.
    "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
    "version": "A String", # 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.
    "parents": [ # 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'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.
      "A String",
    ],
    "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
    "exportLinks": { # Links for exporting Google Docs to specific formats.
      "a_key": "A String", # A mapping from export format to URL
    },
    "shared": True or False, # Whether the file has been shared. Not populated for items in shared drives.
    "copyRequiresWriterPermission": True or False, # Whether the options to copy, print, or download this file, should be disabled for readers and commenters.
    "fullFileExtension": "A String", # The full file extension extracted from the name field. May contain multiple concatenated extensions, such as "tar.gz". This is only available for files with binary content in 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.
    "originalFilename": "A String", # 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.
    "viewersCanCopyContent": True or False, # Deprecated - use copyRequiresWriterPermission instead.
    "description": "A String", # A short description of the file.
    "modifiedTime": "A String", # The last time the file was modified by anyone (RFC 3339 date-time).
        # Note that setting modifiedTime will also update modifiedByMeTime for the user.
    "viewedByMe": True or False, # Whether the file has been viewed by this user.
    "modifiedByMe": True or False, # Whether the file has been modified by this user.
    "owners": [ # 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.
        "me": True or False, # Whether this user is the requesting user.
        "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
        "displayName": "A String", # A plain text displayable name for this user.
        "permissionId": "A String", # The user's ID as visible in Permission resources.
        "emailAddress": "A String", # 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.
        "photoLink": "A String", # A link to the user's profile photo, if available.
      },
    ],
    "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
    "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
    "starred": True or False, # Whether the user has starred the file.
    "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
        # Entries with null values are cleared in update and copy requests.
      "a_key": "A String",
    },
    "md5Checksum": "A String", # The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.
    "iconLink": "A String", # A static, unauthenticated link to the file's icon.
    "imageMediaMetadata": { # Additional metadata about image media, if available.
      "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
      "exposureTime": 3.14, # The length of the exposure, in seconds.
      "cameraMake": "A String", # The make of the camera used to create the photo.
      "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
      "width": 42, # The width of the image in pixels.
      "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
      "exposureMode": "A String", # The exposure mode used to create the photo.
      "colorSpace": "A String", # The color space of the photo.
      "location": { # Geographic location information stored in the image.
        "latitude": 3.14, # The latitude stored in the image.
        "altitude": 3.14, # The altitude stored in the image.
        "longitude": 3.14, # The longitude stored in the image.
      },
      "subjectDistance": 42, # The distance to the subject of the photo, in meters.
      "height": 42, # The height of the image in pixels.
      "lens": "A String", # The lens used to create the photo.
      "isoSpeed": 42, # The ISO speed used to create the photo.
      "meteringMode": "A String", # The metering mode used to create the photo.
      "flashUsed": True or False, # Whether a flash was used to create the photo.
      "time": "A String", # The date and time the photo was taken (EXIF DateTime).
      "aperture": 3.14, # The aperture used to create the photo (f-number).
      "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
      "sensor": "A String", # The type of sensor used to create the photo.
      "whiteBalance": "A String", # The white balance mode used to create the photo.
      "cameraModel": "A String", # The model of the camera used to create the photo.
    },
    "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
    "name": "A String", # 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.
    "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.
    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives.
      "me": True or False, # Whether this user is the requesting user.
      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in Permission resources.
      "emailAddress": "A String", # 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.
      "photoLink": "A String", # A link to the user's profile photo, if available.
    },
    "driveId": "A String", # ID of the shared drive the file resides in. Only populated for items in shared drives.
    "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
      "A String",
    ],
    "permissionIds": [ # List of permission IDs for users with access to this file.
      "A String",
    ],
    "trashed": True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file, and other users cannot see files in the owner's trash.
    "contentHints": { # Additional information about the content of the file. These fields are never populated in responses.
      "indexableText": "A String", # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
      "thumbnail": { # A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.
        "mimeType": "A String", # The MIME type of the thumbnail.
        "image": "A String", # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
      },
    },
    "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Google Drive.
    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for shared drive files.
    "permissions": [ # 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.
        "domain": "A String", # The domain to which this permission refers.
        "displayName": "A String", # A displayable name for users, groups or domains.
        "teamDrivePermissionDetails": [ # Deprecated - use permissionDetails instead.
          {
            "inheritedFrom": "A String", # Deprecated - use permissionDetails/inheritedFrom instead.
            "role": "A String", # Deprecated - use permissionDetails/role instead.
            "teamDrivePermissionType": "A String", # Deprecated - use permissionDetails/permissionType instead.
            "inherited": True or False, # Deprecated - use permissionDetails/inherited instead.
          },
        ],
        "allowFileDiscovery": 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.
        "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
        "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
        "emailAddress": "A String", # The email address of the user or group to which this permission refers.
        "photoLink": "A String", # A link to the user's profile photo, if available.
        "permissionDetails": [ # 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.
          {
            "role": "A String", # 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
            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the shared drive.
            "permissionType": "A String", # The permission type for this user. While new values may be added in future, the following are currently possible:
                # - file
                # - member
            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
          },
        ],
        "expirationTime": "A String", # 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
        "role": "A String", # 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
        "type": "A String", # The type of the grantee. Valid values are:
            # - user
            # - group
            # - domain
            # - anyone
        "id": "A String", # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId.
      },
    ],
    "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Google Drive.
  }</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(fileId, supportsTeamDrives=None, supportsAllDrives=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)
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
  supportsAllDrives: boolean, Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.
</pre>
</div>

<div class="method">
    <code class="details" id="emptyTrash">emptyTrash()</code>
  <pre>Permanently deletes all of the user'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 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 'drive' and 'appDataFolder'.

Returns:
  An object of the form:

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

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

Args:
  fileId: string, The ID of the file. (required)
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
  supportsAllDrives: boolean, Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.
  acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.

Returns:
  An object of the form:

    { # The metadata for a file.
    "hasThumbnail": 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.
    "mimeType": "A String", # 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.
    "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
    "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
    "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
    "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
    "teamDriveId": "A String", # Deprecated - use driveId instead.
    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for items in shared drives.
    "ownedByMe": True or False, # Whether the user owns the file. Not populated for items in shared drives.
    "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
    "id": "A String", # The ID of the file.
    "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
      "me": True or False, # Whether this user is the requesting user.
      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in Permission resources.
      "emailAddress": "A String", # 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.
      "photoLink": "A String", # A link to the user's profile photo, if available.
    },
    "size": "A String", # The size of the file's content in bytes. This is only applicable to files with binary content in Google Drive.
    "videoMediaMetadata": { # Additional metadata about video media. This may not be available immediately upon upload.
      "width": 42, # The width of the video in pixels.
      "durationMillis": "A String", # The duration of the video in milliseconds.
      "height": 42, # The height of the video in pixels.
    },
    "lastModifyingUser": { # Information about a Drive user. # The last user to modify the file.
      "me": True or False, # Whether this user is the requesting user.
      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in Permission resources.
      "emailAddress": "A String", # 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.
      "photoLink": "A String", # A link to the user's profile photo, if available.
    },
    "folderColorRgb": "A String", # 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.
    "appProperties": { # 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.
      "a_key": "A String",
    },
    "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
      "canMoveItemOutOfDrive": 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.
      "canUntrash": True or False, # Whether the current user can restore this file from trash.
      "canMoveItemWithinTeamDrive": True or False, # Deprecated - use canMoveItemWithinDrive instead.
      "canDeleteChildren": 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.
      "canMoveChildrenWithinTeamDrive": True or False, # Deprecated - use canMoveChildrenWithinDrive instead.
      "canListChildren": 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.
      "canRename": True or False, # Whether the current user can rename this file.
      "canReadDrive": True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
      "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
      "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
      "canTrashChildren": 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.
      "canMoveChildrenWithinDrive": 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.
      "canReadRevisions": 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.
      "canMoveItemWithinDrive": 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.
      "canCopy": 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.
      "canMoveItemIntoTeamDrive": True or False, # Deprecated - use canMoveItemOutOfDrive instead.
      "canMoveItemOutOfTeamDrive": True or False, # Deprecated - use canMoveItemOutOfDrive instead.
      "canComment": True or False, # Whether the current user can comment on this file.
      "canMoveChildrenOutOfDrive": 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.
      "canChangeViewersCanCopyContent": True or False, # Deprecated
      "canTrash": True or False, # Whether the current user can move this file to trash.
      "canDelete": True or False, # Whether the current user can delete this file.
      "canMoveTeamDriveItem": True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
      "canDownload": True or False, # Whether the current user can download this file.
      "canChangeCopyRequiresWriterPermission": True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
      "canMoveChildrenOutOfTeamDrive": True or False, # Deprecated - use canMoveChildrenOutOfDrive instead.
      "canRemoveChildren": 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.
      "canReadTeamDrive": True or False, # Deprecated - use canReadDrive instead.
      "canEdit": True or False, # Whether the current user can edit this file.
    },
    "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.
    "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
    "version": "A String", # 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.
    "parents": [ # 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'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.
      "A String",
    ],
    "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
    "exportLinks": { # Links for exporting Google Docs to specific formats.
      "a_key": "A String", # A mapping from export format to URL
    },
    "shared": True or False, # Whether the file has been shared. Not populated for items in shared drives.
    "copyRequiresWriterPermission": True or False, # Whether the options to copy, print, or download this file, should be disabled for readers and commenters.
    "fullFileExtension": "A String", # The full file extension extracted from the name field. May contain multiple concatenated extensions, such as "tar.gz". This is only available for files with binary content in 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.
    "originalFilename": "A String", # 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.
    "viewersCanCopyContent": True or False, # Deprecated - use copyRequiresWriterPermission instead.
    "description": "A String", # A short description of the file.
    "modifiedTime": "A String", # The last time the file was modified by anyone (RFC 3339 date-time).
        # Note that setting modifiedTime will also update modifiedByMeTime for the user.
    "viewedByMe": True or False, # Whether the file has been viewed by this user.
    "modifiedByMe": True or False, # Whether the file has been modified by this user.
    "owners": [ # 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.
        "me": True or False, # Whether this user is the requesting user.
        "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
        "displayName": "A String", # A plain text displayable name for this user.
        "permissionId": "A String", # The user's ID as visible in Permission resources.
        "emailAddress": "A String", # 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.
        "photoLink": "A String", # A link to the user's profile photo, if available.
      },
    ],
    "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
    "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
    "starred": True or False, # Whether the user has starred the file.
    "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
        # Entries with null values are cleared in update and copy requests.
      "a_key": "A String",
    },
    "md5Checksum": "A String", # The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.
    "iconLink": "A String", # A static, unauthenticated link to the file's icon.
    "imageMediaMetadata": { # Additional metadata about image media, if available.
      "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
      "exposureTime": 3.14, # The length of the exposure, in seconds.
      "cameraMake": "A String", # The make of the camera used to create the photo.
      "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
      "width": 42, # The width of the image in pixels.
      "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
      "exposureMode": "A String", # The exposure mode used to create the photo.
      "colorSpace": "A String", # The color space of the photo.
      "location": { # Geographic location information stored in the image.
        "latitude": 3.14, # The latitude stored in the image.
        "altitude": 3.14, # The altitude stored in the image.
        "longitude": 3.14, # The longitude stored in the image.
      },
      "subjectDistance": 42, # The distance to the subject of the photo, in meters.
      "height": 42, # The height of the image in pixels.
      "lens": "A String", # The lens used to create the photo.
      "isoSpeed": 42, # The ISO speed used to create the photo.
      "meteringMode": "A String", # The metering mode used to create the photo.
      "flashUsed": True or False, # Whether a flash was used to create the photo.
      "time": "A String", # The date and time the photo was taken (EXIF DateTime).
      "aperture": 3.14, # The aperture used to create the photo (f-number).
      "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
      "sensor": "A String", # The type of sensor used to create the photo.
      "whiteBalance": "A String", # The white balance mode used to create the photo.
      "cameraModel": "A String", # The model of the camera used to create the photo.
    },
    "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
    "name": "A String", # 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.
    "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.
    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives.
      "me": True or False, # Whether this user is the requesting user.
      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in Permission resources.
      "emailAddress": "A String", # 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.
      "photoLink": "A String", # A link to the user's profile photo, if available.
    },
    "driveId": "A String", # ID of the shared drive the file resides in. Only populated for items in shared drives.
    "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
      "A String",
    ],
    "permissionIds": [ # List of permission IDs for users with access to this file.
      "A String",
    ],
    "trashed": True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file, and other users cannot see files in the owner's trash.
    "contentHints": { # Additional information about the content of the file. These fields are never populated in responses.
      "indexableText": "A String", # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
      "thumbnail": { # A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.
        "mimeType": "A String", # The MIME type of the thumbnail.
        "image": "A String", # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
      },
    },
    "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Google Drive.
    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for shared drive files.
    "permissions": [ # 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.
        "domain": "A String", # The domain to which this permission refers.
        "displayName": "A String", # A displayable name for users, groups or domains.
        "teamDrivePermissionDetails": [ # Deprecated - use permissionDetails instead.
          {
            "inheritedFrom": "A String", # Deprecated - use permissionDetails/inheritedFrom instead.
            "role": "A String", # Deprecated - use permissionDetails/role instead.
            "teamDrivePermissionType": "A String", # Deprecated - use permissionDetails/permissionType instead.
            "inherited": True or False, # Deprecated - use permissionDetails/inherited instead.
          },
        ],
        "allowFileDiscovery": 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.
        "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
        "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
        "emailAddress": "A String", # The email address of the user or group to which this permission refers.
        "photoLink": "A String", # A link to the user's profile photo, if available.
        "permissionDetails": [ # 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.
          {
            "role": "A String", # 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
            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the shared drive.
            "permissionType": "A String", # The permission type for this user. While new values may be added in future, the following are currently possible:
                # - file
                # - member
            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
          },
        ],
        "expirationTime": "A String", # 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
        "role": "A String", # 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
        "type": "A String", # The type of the grantee. Valid values are:
            # - user
            # - group
            # - domain
            # - anyone
        "id": "A String", # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId.
      },
    ],
    "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Google Drive.
  }</pre>
</div>

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

Args:
  fileId: string, The ID of the file. (required)
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
  supportsAllDrives: boolean, Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.
  acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.

Returns:
  The media object as a string.

    </pre>
</div>

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

Args:
  orderBy: string, A comma-separated list of sort keys. Valid keys are 'createdTime', 'folder', 'modifiedByMeTime', 'modifiedTime', 'name', 'name_natural', 'quotaBytesUsed', 'recency', 'sharedWithMeTime', 'starred', and 'viewedByMeTime'. Each key sorts ascending by default, but may be reversed with the 'desc' modifier. Example usage: ?orderBy=folder,modifiedTime desc,name. Please note that there is a current limitation for users with approximately one million files in which the requested sort order is ignored.
  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.
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
  spaces: string, A comma-separated list of spaces to query within the corpus. Supported values are 'drive', 'appDataFolder' and 'photos'.
  q: string, A query for filtering the file results. See the "Search for Files" guide for supported syntax.
  pageToken: string, The token for continuing a previous list request on the next page. This should be set to the value of 'nextPageToken' from the previous response.
  corpus: string, The source of files to list. Deprecated: use 'corpora' instead.
    Allowed values
      domain - Files shared to the user's domain.
      user - Files owned by or shared to the user.
  teamDriveId: string, Deprecated use driveId instead.
  includeItemsFromAllDrives: boolean, Deprecated - Whether both My Drive and shared drive items should be included in results. This parameter will only be effective until June 1, 2020. Afterwards shared drive items will be included in the results.
  includeTeamDriveItems: boolean, Deprecated use includeItemsFromAllDrives instead.
  corpora: string, Bodies of items (files/documents) to which the query applies. Supported bodies are 'user', 'domain', 'drive' and 'allDrives'. Prefer 'user' or 'drive' to 'allDrives' for efficiency.
  supportsAllDrives: boolean, Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.
  driveId: string, ID of the shared drive to search.

Returns:
  An object of the form:

    { # A list of files.
    "files": [ # 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.
        "hasThumbnail": 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.
        "mimeType": "A String", # 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.
        "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
        "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
        "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
        "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
        "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
        "teamDriveId": "A String", # Deprecated - use driveId instead.
        "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for items in shared drives.
        "ownedByMe": True or False, # Whether the user owns the file. Not populated for items in shared drives.
        "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
        "id": "A String", # The ID of the file.
        "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
          "me": True or False, # Whether this user is the requesting user.
          "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
          "displayName": "A String", # A plain text displayable name for this user.
          "permissionId": "A String", # The user's ID as visible in Permission resources.
          "emailAddress": "A String", # 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.
          "photoLink": "A String", # A link to the user's profile photo, if available.
        },
        "size": "A String", # The size of the file's content in bytes. This is only applicable to files with binary content in Google Drive.
        "videoMediaMetadata": { # Additional metadata about video media. This may not be available immediately upon upload.
          "width": 42, # The width of the video in pixels.
          "durationMillis": "A String", # The duration of the video in milliseconds.
          "height": 42, # The height of the video in pixels.
        },
        "lastModifyingUser": { # Information about a Drive user. # The last user to modify the file.
          "me": True or False, # Whether this user is the requesting user.
          "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
          "displayName": "A String", # A plain text displayable name for this user.
          "permissionId": "A String", # The user's ID as visible in Permission resources.
          "emailAddress": "A String", # 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.
          "photoLink": "A String", # A link to the user's profile photo, if available.
        },
        "folderColorRgb": "A String", # 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.
        "appProperties": { # 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.
          "a_key": "A String",
        },
        "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
          "canMoveItemOutOfDrive": 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.
          "canUntrash": True or False, # Whether the current user can restore this file from trash.
          "canMoveItemWithinTeamDrive": True or False, # Deprecated - use canMoveItemWithinDrive instead.
          "canDeleteChildren": 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.
          "canMoveChildrenWithinTeamDrive": True or False, # Deprecated - use canMoveChildrenWithinDrive instead.
          "canListChildren": 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.
          "canRename": True or False, # Whether the current user can rename this file.
          "canReadDrive": True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
          "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
          "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
          "canTrashChildren": 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.
          "canMoveChildrenWithinDrive": 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.
          "canReadRevisions": 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.
          "canMoveItemWithinDrive": 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.
          "canCopy": 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.
          "canMoveItemIntoTeamDrive": True or False, # Deprecated - use canMoveItemOutOfDrive instead.
          "canMoveItemOutOfTeamDrive": True or False, # Deprecated - use canMoveItemOutOfDrive instead.
          "canComment": True or False, # Whether the current user can comment on this file.
          "canMoveChildrenOutOfDrive": 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.
          "canChangeViewersCanCopyContent": True or False, # Deprecated
          "canTrash": True or False, # Whether the current user can move this file to trash.
          "canDelete": True or False, # Whether the current user can delete this file.
          "canMoveTeamDriveItem": True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
          "canDownload": True or False, # Whether the current user can download this file.
          "canChangeCopyRequiresWriterPermission": True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
          "canMoveChildrenOutOfTeamDrive": True or False, # Deprecated - use canMoveChildrenOutOfDrive instead.
          "canRemoveChildren": 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.
          "canReadTeamDrive": True or False, # Deprecated - use canReadDrive instead.
          "canEdit": True or False, # Whether the current user can edit this file.
        },
        "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.
        "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
        "version": "A String", # 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.
        "parents": [ # 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'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.
          "A String",
        ],
        "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
        "exportLinks": { # Links for exporting Google Docs to specific formats.
          "a_key": "A String", # A mapping from export format to URL
        },
        "shared": True or False, # Whether the file has been shared. Not populated for items in shared drives.
        "copyRequiresWriterPermission": True or False, # Whether the options to copy, print, or download this file, should be disabled for readers and commenters.
        "fullFileExtension": "A String", # The full file extension extracted from the name field. May contain multiple concatenated extensions, such as "tar.gz". This is only available for files with binary content in 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.
        "originalFilename": "A String", # 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.
        "viewersCanCopyContent": True or False, # Deprecated - use copyRequiresWriterPermission instead.
        "description": "A String", # A short description of the file.
        "modifiedTime": "A String", # The last time the file was modified by anyone (RFC 3339 date-time).
            # Note that setting modifiedTime will also update modifiedByMeTime for the user.
        "viewedByMe": True or False, # Whether the file has been viewed by this user.
        "modifiedByMe": True or False, # Whether the file has been modified by this user.
        "owners": [ # 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.
            "me": True or False, # Whether this user is the requesting user.
            "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
            "displayName": "A String", # A plain text displayable name for this user.
            "permissionId": "A String", # The user's ID as visible in Permission resources.
            "emailAddress": "A String", # 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.
            "photoLink": "A String", # A link to the user's profile photo, if available.
          },
        ],
        "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
        "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
        "starred": True or False, # Whether the user has starred the file.
        "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
            # Entries with null values are cleared in update and copy requests.
          "a_key": "A String",
        },
        "md5Checksum": "A String", # The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.
        "iconLink": "A String", # A static, unauthenticated link to the file's icon.
        "imageMediaMetadata": { # Additional metadata about image media, if available.
          "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
          "exposureTime": 3.14, # The length of the exposure, in seconds.
          "cameraMake": "A String", # The make of the camera used to create the photo.
          "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
          "width": 42, # The width of the image in pixels.
          "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
          "exposureMode": "A String", # The exposure mode used to create the photo.
          "colorSpace": "A String", # The color space of the photo.
          "location": { # Geographic location information stored in the image.
            "latitude": 3.14, # The latitude stored in the image.
            "altitude": 3.14, # The altitude stored in the image.
            "longitude": 3.14, # The longitude stored in the image.
          },
          "subjectDistance": 42, # The distance to the subject of the photo, in meters.
          "height": 42, # The height of the image in pixels.
          "lens": "A String", # The lens used to create the photo.
          "isoSpeed": 42, # The ISO speed used to create the photo.
          "meteringMode": "A String", # The metering mode used to create the photo.
          "flashUsed": True or False, # Whether a flash was used to create the photo.
          "time": "A String", # The date and time the photo was taken (EXIF DateTime).
          "aperture": 3.14, # The aperture used to create the photo (f-number).
          "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
          "sensor": "A String", # The type of sensor used to create the photo.
          "whiteBalance": "A String", # The white balance mode used to create the photo.
          "cameraModel": "A String", # The model of the camera used to create the photo.
        },
        "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
        "name": "A String", # 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.
        "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.
        "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives.
          "me": True or False, # Whether this user is the requesting user.
          "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
          "displayName": "A String", # A plain text displayable name for this user.
          "permissionId": "A String", # The user's ID as visible in Permission resources.
          "emailAddress": "A String", # 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.
          "photoLink": "A String", # A link to the user's profile photo, if available.
        },
        "driveId": "A String", # ID of the shared drive the file resides in. Only populated for items in shared drives.
        "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
          "A String",
        ],
        "permissionIds": [ # List of permission IDs for users with access to this file.
          "A String",
        ],
        "trashed": True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file, and other users cannot see files in the owner's trash.
        "contentHints": { # Additional information about the content of the file. These fields are never populated in responses.
          "indexableText": "A String", # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
          "thumbnail": { # A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.
            "mimeType": "A String", # The MIME type of the thumbnail.
            "image": "A String", # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
          },
        },
        "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Google Drive.
        "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for shared drive files.
        "permissions": [ # 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.
            "domain": "A String", # The domain to which this permission refers.
            "displayName": "A String", # A displayable name for users, groups or domains.
            "teamDrivePermissionDetails": [ # Deprecated - use permissionDetails instead.
              {
                "inheritedFrom": "A String", # Deprecated - use permissionDetails/inheritedFrom instead.
                "role": "A String", # Deprecated - use permissionDetails/role instead.
                "teamDrivePermissionType": "A String", # Deprecated - use permissionDetails/permissionType instead.
                "inherited": True or False, # Deprecated - use permissionDetails/inherited instead.
              },
            ],
            "allowFileDiscovery": 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.
            "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
            "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
            "emailAddress": "A String", # The email address of the user or group to which this permission refers.
            "photoLink": "A String", # A link to the user's profile photo, if available.
            "permissionDetails": [ # 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.
              {
                "role": "A String", # 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
                "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the shared drive.
                "permissionType": "A String", # The permission type for this user. While new values may be added in future, the following are currently possible:
                    # - file
                    # - member
                "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
              },
            ],
            "expirationTime": "A String", # 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
            "role": "A String", # 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
            "type": "A String", # The type of the grantee. Valid values are:
                # - user
                # - group
                # - domain
                # - anyone
            "id": "A String", # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId.
          },
        ],
        "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Google Drive.
      },
    ],
    "incompleteSearch": 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 "allDrives" 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 "user" or "drive".
    "kind": "drive#fileList", # Identifies what kind of resource this is. Value: the fixed string "drive#fileList".
    "nextPageToken": "A String", # 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 'execute()' 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, keepRevisionForever=None, removeParents=None, supportsTeamDrives=None, media_body=None, ocrLanguage=None, addParents=None, useContentAsIndexableText=None, supportsAllDrives=None, media_mime_type=None)</code>
  <pre>Updates a file's metadata and/or content with 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.
  "hasThumbnail": 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.
  "mimeType": "A String", # 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.
  "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
  "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
  "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
  "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
  "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
  "teamDriveId": "A String", # Deprecated - use driveId instead.
  "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for items in shared drives.
  "ownedByMe": True or False, # Whether the user owns the file. Not populated for items in shared drives.
  "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
  "id": "A String", # The ID of the file.
  "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
    "me": True or False, # Whether this user is the requesting user.
    "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
    "displayName": "A String", # A plain text displayable name for this user.
    "permissionId": "A String", # The user's ID as visible in Permission resources.
    "emailAddress": "A String", # 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.
    "photoLink": "A String", # A link to the user's profile photo, if available.
  },
  "size": "A String", # The size of the file's content in bytes. This is only applicable to files with binary content in Google Drive.
  "videoMediaMetadata": { # Additional metadata about video media. This may not be available immediately upon upload.
    "width": 42, # The width of the video in pixels.
    "durationMillis": "A String", # The duration of the video in milliseconds.
    "height": 42, # The height of the video in pixels.
  },
  "lastModifyingUser": { # Information about a Drive user. # The last user to modify the file.
    "me": True or False, # Whether this user is the requesting user.
    "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
    "displayName": "A String", # A plain text displayable name for this user.
    "permissionId": "A String", # The user's ID as visible in Permission resources.
    "emailAddress": "A String", # 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.
    "photoLink": "A String", # A link to the user's profile photo, if available.
  },
  "folderColorRgb": "A String", # 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.
  "appProperties": { # 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.
    "a_key": "A String",
  },
  "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
    "canMoveItemOutOfDrive": 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.
    "canUntrash": True or False, # Whether the current user can restore this file from trash.
    "canMoveItemWithinTeamDrive": True or False, # Deprecated - use canMoveItemWithinDrive instead.
    "canDeleteChildren": 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.
    "canMoveChildrenWithinTeamDrive": True or False, # Deprecated - use canMoveChildrenWithinDrive instead.
    "canListChildren": 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.
    "canRename": True or False, # Whether the current user can rename this file.
    "canReadDrive": True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
    "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
    "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
    "canTrashChildren": 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.
    "canMoveChildrenWithinDrive": 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.
    "canReadRevisions": 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.
    "canMoveItemWithinDrive": 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.
    "canCopy": 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.
    "canMoveItemIntoTeamDrive": True or False, # Deprecated - use canMoveItemOutOfDrive instead.
    "canMoveItemOutOfTeamDrive": True or False, # Deprecated - use canMoveItemOutOfDrive instead.
    "canComment": True or False, # Whether the current user can comment on this file.
    "canMoveChildrenOutOfDrive": 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.
    "canChangeViewersCanCopyContent": True or False, # Deprecated
    "canTrash": True or False, # Whether the current user can move this file to trash.
    "canDelete": True or False, # Whether the current user can delete this file.
    "canMoveTeamDriveItem": True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
    "canDownload": True or False, # Whether the current user can download this file.
    "canChangeCopyRequiresWriterPermission": True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
    "canMoveChildrenOutOfTeamDrive": True or False, # Deprecated - use canMoveChildrenOutOfDrive instead.
    "canRemoveChildren": 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.
    "canReadTeamDrive": True or False, # Deprecated - use canReadDrive instead.
    "canEdit": True or False, # Whether the current user can edit this file.
  },
  "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.
  "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
  "version": "A String", # 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.
  "parents": [ # 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'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.
    "A String",
  ],
  "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
  "exportLinks": { # Links for exporting Google Docs to specific formats.
    "a_key": "A String", # A mapping from export format to URL
  },
  "shared": True or False, # Whether the file has been shared. Not populated for items in shared drives.
  "copyRequiresWriterPermission": True or False, # Whether the options to copy, print, or download this file, should be disabled for readers and commenters.
  "fullFileExtension": "A String", # The full file extension extracted from the name field. May contain multiple concatenated extensions, such as "tar.gz". This is only available for files with binary content in 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.
  "originalFilename": "A String", # 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.
  "viewersCanCopyContent": True or False, # Deprecated - use copyRequiresWriterPermission instead.
  "description": "A String", # A short description of the file.
  "modifiedTime": "A String", # The last time the file was modified by anyone (RFC 3339 date-time).
      # Note that setting modifiedTime will also update modifiedByMeTime for the user.
  "viewedByMe": True or False, # Whether the file has been viewed by this user.
  "modifiedByMe": True or False, # Whether the file has been modified by this user.
  "owners": [ # 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.
      "me": True or False, # Whether this user is the requesting user.
      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in Permission resources.
      "emailAddress": "A String", # 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.
      "photoLink": "A String", # A link to the user's profile photo, if available.
    },
  ],
  "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
  "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
  "starred": True or False, # Whether the user has starred the file.
  "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
      # Entries with null values are cleared in update and copy requests.
    "a_key": "A String",
  },
  "md5Checksum": "A String", # The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.
  "iconLink": "A String", # A static, unauthenticated link to the file's icon.
  "imageMediaMetadata": { # Additional metadata about image media, if available.
    "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
    "exposureTime": 3.14, # The length of the exposure, in seconds.
    "cameraMake": "A String", # The make of the camera used to create the photo.
    "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
    "width": 42, # The width of the image in pixels.
    "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
    "exposureMode": "A String", # The exposure mode used to create the photo.
    "colorSpace": "A String", # The color space of the photo.
    "location": { # Geographic location information stored in the image.
      "latitude": 3.14, # The latitude stored in the image.
      "altitude": 3.14, # The altitude stored in the image.
      "longitude": 3.14, # The longitude stored in the image.
    },
    "subjectDistance": 42, # The distance to the subject of the photo, in meters.
    "height": 42, # The height of the image in pixels.
    "lens": "A String", # The lens used to create the photo.
    "isoSpeed": 42, # The ISO speed used to create the photo.
    "meteringMode": "A String", # The metering mode used to create the photo.
    "flashUsed": True or False, # Whether a flash was used to create the photo.
    "time": "A String", # The date and time the photo was taken (EXIF DateTime).
    "aperture": 3.14, # The aperture used to create the photo (f-number).
    "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
    "sensor": "A String", # The type of sensor used to create the photo.
    "whiteBalance": "A String", # The white balance mode used to create the photo.
    "cameraModel": "A String", # The model of the camera used to create the photo.
  },
  "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
  "name": "A String", # 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.
  "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.
  "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives.
    "me": True or False, # Whether this user is the requesting user.
    "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
    "displayName": "A String", # A plain text displayable name for this user.
    "permissionId": "A String", # The user's ID as visible in Permission resources.
    "emailAddress": "A String", # 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.
    "photoLink": "A String", # A link to the user's profile photo, if available.
  },
  "driveId": "A String", # ID of the shared drive the file resides in. Only populated for items in shared drives.
  "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
    "A String",
  ],
  "permissionIds": [ # List of permission IDs for users with access to this file.
    "A String",
  ],
  "trashed": True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file, and other users cannot see files in the owner's trash.
  "contentHints": { # Additional information about the content of the file. These fields are never populated in responses.
    "indexableText": "A String", # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
    "thumbnail": { # A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.
      "mimeType": "A String", # The MIME type of the thumbnail.
      "image": "A String", # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
    },
  },
  "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Google Drive.
  "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for shared drive files.
  "permissions": [ # 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.
      "domain": "A String", # The domain to which this permission refers.
      "displayName": "A String", # A displayable name for users, groups or domains.
      "teamDrivePermissionDetails": [ # Deprecated - use permissionDetails instead.
        {
          "inheritedFrom": "A String", # Deprecated - use permissionDetails/inheritedFrom instead.
          "role": "A String", # Deprecated - use permissionDetails/role instead.
          "teamDrivePermissionType": "A String", # Deprecated - use permissionDetails/permissionType instead.
          "inherited": True or False, # Deprecated - use permissionDetails/inherited instead.
        },
      ],
      "allowFileDiscovery": 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.
      "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
      "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
      "emailAddress": "A String", # The email address of the user or group to which this permission refers.
      "photoLink": "A String", # A link to the user's profile photo, if available.
      "permissionDetails": [ # 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.
        {
          "role": "A String", # 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
          "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the shared drive.
          "permissionType": "A String", # The permission type for this user. While new values may be added in future, the following are currently possible:
              # - file
              # - member
          "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
        },
      ],
      "expirationTime": "A String", # 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
      "role": "A String", # 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
      "type": "A String", # The type of the grantee. Valid values are:
          # - user
          # - group
          # - domain
          # - anyone
      "id": "A String", # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId.
    },
  ],
  "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Google Drive.
}

  keepRevisionForever: boolean, Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Google Drive.
  removeParents: string, A comma-separated list of parent IDs to remove.
  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
  ocrLanguage: string, A language hint for OCR processing during image import (ISO 639-1 code).
  addParents: string, A comma-separated list of parent IDs to add.
  useContentAsIndexableText: boolean, Whether to use the uploaded content as indexable text.
  supportsAllDrives: boolean, Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.
  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.
    "hasThumbnail": 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.
    "mimeType": "A String", # 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.
    "modifiedByMeTime": "A String", # The last time the file was modified by the user (RFC 3339 date-time).
    "thumbnailLink": "A String", # A short-lived link to the file's thumbnail, if available. Typically lasts on the order of hours. Only populated when the requesting app can access the file's content.
    "thumbnailVersion": "A String", # The thumbnail version for use in thumbnail cache invalidation.
    "explicitlyTrashed": True or False, # Whether the file has been explicitly trashed, as opposed to recursively trashed from a parent folder.
    "isAppAuthorized": True or False, # Whether the file was created or opened by the requesting app.
    "teamDriveId": "A String", # Deprecated - use driveId instead.
    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions. Not populated for items in shared drives.
    "ownedByMe": True or False, # Whether the user owns the file. Not populated for items in shared drives.
    "viewedByMeTime": "A String", # The last time the file was viewed by the user (RFC 3339 date-time).
    "id": "A String", # The ID of the file.
    "sharingUser": { # Information about a Drive user. # The user who shared the file with the requesting user, if applicable.
      "me": True or False, # Whether this user is the requesting user.
      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in Permission resources.
      "emailAddress": "A String", # 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.
      "photoLink": "A String", # A link to the user's profile photo, if available.
    },
    "size": "A String", # The size of the file's content in bytes. This is only applicable to files with binary content in Google Drive.
    "videoMediaMetadata": { # Additional metadata about video media. This may not be available immediately upon upload.
      "width": 42, # The width of the video in pixels.
      "durationMillis": "A String", # The duration of the video in milliseconds.
      "height": 42, # The height of the video in pixels.
    },
    "lastModifyingUser": { # Information about a Drive user. # The last user to modify the file.
      "me": True or False, # Whether this user is the requesting user.
      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in Permission resources.
      "emailAddress": "A String", # 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.
      "photoLink": "A String", # A link to the user's profile photo, if available.
    },
    "folderColorRgb": "A String", # 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.
    "appProperties": { # 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.
      "a_key": "A String",
    },
    "capabilities": { # Capabilities the current user has on this file. Each capability corresponds to a fine-grained action that a user may take.
      "canMoveItemOutOfDrive": 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.
      "canUntrash": True or False, # Whether the current user can restore this file from trash.
      "canMoveItemWithinTeamDrive": True or False, # Deprecated - use canMoveItemWithinDrive instead.
      "canDeleteChildren": 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.
      "canMoveChildrenWithinTeamDrive": True or False, # Deprecated - use canMoveChildrenWithinDrive instead.
      "canListChildren": 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.
      "canRename": True or False, # Whether the current user can rename this file.
      "canReadDrive": True or False, # Whether the current user can read the shared drive to which this file belongs. Only populated for items in shared drives.
      "canAddChildren": True or False, # Whether the current user can add children to this folder. This is always false when the item is not a folder.
      "canShare": True or False, # Whether the current user can modify the sharing settings for this file.
      "canTrashChildren": 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.
      "canMoveChildrenWithinDrive": 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.
      "canReadRevisions": 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.
      "canMoveItemWithinDrive": 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.
      "canCopy": 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.
      "canMoveItemIntoTeamDrive": True or False, # Deprecated - use canMoveItemOutOfDrive instead.
      "canMoveItemOutOfTeamDrive": True or False, # Deprecated - use canMoveItemOutOfDrive instead.
      "canComment": True or False, # Whether the current user can comment on this file.
      "canMoveChildrenOutOfDrive": 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.
      "canChangeViewersCanCopyContent": True or False, # Deprecated
      "canTrash": True or False, # Whether the current user can move this file to trash.
      "canDelete": True or False, # Whether the current user can delete this file.
      "canMoveTeamDriveItem": True or False, # Deprecated - use canMoveItemWithinDrive or canMoveItemOutOfDrive instead.
      "canDownload": True or False, # Whether the current user can download this file.
      "canChangeCopyRequiresWriterPermission": True or False, # Whether the current user can change the copyRequiresWriterPermission restriction of this file.
      "canMoveChildrenOutOfTeamDrive": True or False, # Deprecated - use canMoveChildrenOutOfDrive instead.
      "canRemoveChildren": 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.
      "canReadTeamDrive": True or False, # Deprecated - use canReadDrive instead.
      "canEdit": True or False, # Whether the current user can edit this file.
    },
    "trashedTime": "A String", # The time that the item was trashed (RFC 3339 date-time). Only populated for items in shared drives.
    "webViewLink": "A String", # A link for opening the file in a relevant Google editor or viewer in a browser.
    "version": "A String", # 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.
    "parents": [ # 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'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.
      "A String",
    ],
    "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
    "exportLinks": { # Links for exporting Google Docs to specific formats.
      "a_key": "A String", # A mapping from export format to URL
    },
    "shared": True or False, # Whether the file has been shared. Not populated for items in shared drives.
    "copyRequiresWriterPermission": True or False, # Whether the options to copy, print, or download this file, should be disabled for readers and commenters.
    "fullFileExtension": "A String", # The full file extension extracted from the name field. May contain multiple concatenated extensions, such as "tar.gz". This is only available for files with binary content in 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.
    "originalFilename": "A String", # 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.
    "viewersCanCopyContent": True or False, # Deprecated - use copyRequiresWriterPermission instead.
    "description": "A String", # A short description of the file.
    "modifiedTime": "A String", # The last time the file was modified by anyone (RFC 3339 date-time).
        # Note that setting modifiedTime will also update modifiedByMeTime for the user.
    "viewedByMe": True or False, # Whether the file has been viewed by this user.
    "modifiedByMe": True or False, # Whether the file has been modified by this user.
    "owners": [ # 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.
        "me": True or False, # Whether this user is the requesting user.
        "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
        "displayName": "A String", # A plain text displayable name for this user.
        "permissionId": "A String", # The user's ID as visible in Permission resources.
        "emailAddress": "A String", # 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.
        "photoLink": "A String", # A link to the user's profile photo, if available.
      },
    ],
    "createdTime": "A String", # The time at which the file was created (RFC 3339 date-time).
    "quotaBytesUsed": "A String", # The number of storage quota bytes used by the file. This includes the head revision as well as previous revisions with keepForever enabled.
    "starred": True or False, # Whether the user has starred the file.
    "properties": { # A collection of arbitrary key-value pairs which are visible to all apps.
        # Entries with null values are cleared in update and copy requests.
      "a_key": "A String",
    },
    "md5Checksum": "A String", # The MD5 checksum for the content of the file. This is only applicable to files with binary content in Google Drive.
    "iconLink": "A String", # A static, unauthenticated link to the file's icon.
    "imageMediaMetadata": { # Additional metadata about image media, if available.
      "exposureBias": 3.14, # The exposure bias of the photo (APEX value).
      "exposureTime": 3.14, # The length of the exposure, in seconds.
      "cameraMake": "A String", # The make of the camera used to create the photo.
      "maxApertureValue": 3.14, # The smallest f-number of the lens at the focal length used to create the photo (APEX value).
      "width": 42, # The width of the image in pixels.
      "focalLength": 3.14, # The focal length used to create the photo, in millimeters.
      "exposureMode": "A String", # The exposure mode used to create the photo.
      "colorSpace": "A String", # The color space of the photo.
      "location": { # Geographic location information stored in the image.
        "latitude": 3.14, # The latitude stored in the image.
        "altitude": 3.14, # The altitude stored in the image.
        "longitude": 3.14, # The longitude stored in the image.
      },
      "subjectDistance": 42, # The distance to the subject of the photo, in meters.
      "height": 42, # The height of the image in pixels.
      "lens": "A String", # The lens used to create the photo.
      "isoSpeed": 42, # The ISO speed used to create the photo.
      "meteringMode": "A String", # The metering mode used to create the photo.
      "flashUsed": True or False, # Whether a flash was used to create the photo.
      "time": "A String", # The date and time the photo was taken (EXIF DateTime).
      "aperture": 3.14, # The aperture used to create the photo (f-number).
      "rotation": 42, # The rotation in clockwise degrees from the image's original orientation.
      "sensor": "A String", # The type of sensor used to create the photo.
      "whiteBalance": "A String", # The white balance mode used to create the photo.
      "cameraModel": "A String", # The model of the camera used to create the photo.
    },
    "kind": "drive#file", # Identifies what kind of resource this is. Value: the fixed string "drive#file".
    "name": "A String", # 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.
    "webContentLink": "A String", # A link for downloading the content of the file in a browser. This is only available for files with binary content in Google Drive.
    "trashingUser": { # Information about a Drive user. # If the file has been explicitly trashed, the user who trashed it. Only populated for items in shared drives.
      "me": True or False, # Whether this user is the requesting user.
      "kind": "drive#user", # Identifies what kind of resource this is. Value: the fixed string "drive#user".
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in Permission resources.
      "emailAddress": "A String", # 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.
      "photoLink": "A String", # A link to the user's profile photo, if available.
    },
    "driveId": "A String", # ID of the shared drive the file resides in. Only populated for items in shared drives.
    "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
      "A String",
    ],
    "permissionIds": [ # List of permission IDs for users with access to this file.
      "A String",
    ],
    "trashed": True or False, # Whether the file has been trashed, either explicitly or from a trashed parent folder. Only the owner may trash a file, and other users cannot see files in the owner's trash.
    "contentHints": { # Additional information about the content of the file. These fields are never populated in responses.
      "indexableText": "A String", # Text to be indexed for the file to improve fullText queries. This is limited to 128KB in length and may contain HTML elements.
      "thumbnail": { # A thumbnail for the file. This will only be used if Google Drive cannot generate a standard thumbnail.
        "mimeType": "A String", # The MIME type of the thumbnail.
        "image": "A String", # The thumbnail data encoded with URL-safe Base64 (RFC 4648 section 5).
      },
    },
    "fileExtension": "A String", # The final component of fullFileExtension. This is only available for files with binary content in Google Drive.
    "hasAugmentedPermissions": True or False, # Whether any users are granted file access directly on this file. This field is only populated for shared drive files.
    "permissions": [ # 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.
        "domain": "A String", # The domain to which this permission refers.
        "displayName": "A String", # A displayable name for users, groups or domains.
        "teamDrivePermissionDetails": [ # Deprecated - use permissionDetails instead.
          {
            "inheritedFrom": "A String", # Deprecated - use permissionDetails/inheritedFrom instead.
            "role": "A String", # Deprecated - use permissionDetails/role instead.
            "teamDrivePermissionType": "A String", # Deprecated - use permissionDetails/permissionType instead.
            "inherited": True or False, # Deprecated - use permissionDetails/inherited instead.
          },
        ],
        "allowFileDiscovery": 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.
        "deleted": True or False, # Whether the account associated with this permission has been deleted. This field only pertains to user and group permissions.
        "kind": "drive#permission", # Identifies what kind of resource this is. Value: the fixed string "drive#permission".
        "emailAddress": "A String", # The email address of the user or group to which this permission refers.
        "photoLink": "A String", # A link to the user's profile photo, if available.
        "permissionDetails": [ # 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.
          {
            "role": "A String", # 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
            "inheritedFrom": "A String", # The ID of the item from which this permission is inherited. This is an output-only field and is only populated for members of the shared drive.
            "permissionType": "A String", # The permission type for this user. While new values may be added in future, the following are currently possible:
                # - file
                # - member
            "inherited": True or False, # Whether this permission is inherited. This field is always populated. This is an output-only field.
          },
        ],
        "expirationTime": "A String", # 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
        "role": "A String", # 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
        "type": "A String", # The type of the grantee. Valid values are:
            # - user
            # - group
            # - domain
            # - anyone
        "id": "A String", # The ID of this permission. This is a unique identifier for the grantee, and is published in User resources as permissionId.
      },
    ],
    "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Google Drive.
  }</pre>
</div>

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

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

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

  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
  supportsAllDrives: boolean, Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.
  acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.

Returns:
  An object of the form:

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

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

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

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

  supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
  supportsAllDrives: boolean, Deprecated - Whether the requesting application supports both My Drives and shared drives. This parameter will only be effective until June 1, 2020. Afterwards all applications are assumed to support shared drives.
  acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.

Returns:
  The media object as a string.

    </pre>
</div>

</body></html>