<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, ignoreDefaultVisibility=None, ocrLanguage=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, media_mime_type=None, useContentAsIndexableText=None, ignoreDefaultVisibility=None, ocrLanguage=None)</a></code></p>
<p class="firstline">Creates a new file.</p>
<p class="toc_element">
  <code><a href="#delete">delete(fileId)</a></code></p>
<p class="firstline">Permanently deletes a file owned by the user without moving it to the trash. If the target is a folder, all descendants owned by the user are also deleted.</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.</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.</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, 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, 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, q=None, pageSize=None, pageToken=None, spaces=None, corpus=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, media_body=None, addParents=None, removeParents=None, media_mime_type=None, useContentAsIndexableText=None, keepRevisionForever=None, ocrLanguage=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, 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, 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, ignoreDefaultVisibility=None, ocrLanguage=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.
  "mimeType": "A String", # The MIME type of the file.
      # Drive will attempt to automatically detect an appropriate value from uploaded content if no value is provided. The value cannot be changed unless a new revision is uploaded.
      # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
  "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 client-contructable thumbnail URLs or 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.
  "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
  "ownedByMe": True or False, # Whether the user owns the file.
  "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 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 the file.
    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
    "canCopy": True or False, # Whether the user can copy the file.
    "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
    "canEdit": True or False, # Whether the user can edit the file's content.
    "canComment": True or False, # Whether the user can comment on the file.
  },
  "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 My Drive folder. Update requests must use the addParents and removeParents parameters to modify the values.
    "A String",
  ],
  "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
  "shared": True or False, # Whether the file has been shared.
  "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
    { # 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.
      "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.
      "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.
      "role": "A String", # The role granted by this permission. Valid values are:
          # - owner
          # - writer
          # - commenter
          # - reader
      "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
      "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.
    },
  ],
  "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 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 Drive.
  "viewersCanCopyContent": True or False, # Whether users with only reader or commenter permission can copy the file's content. This affects copy, download, and print operations.
  "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.
    { # 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.
  "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 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.
  "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 Drive.
  "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
    "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 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 Drive.
  "starred": True or False, # Whether the user has starred the file.
  "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
}

  keepRevisionForever: boolean, Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.
  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.
  ocrLanguage: string, A language hint for OCR processing during image import (ISO 639-1 code).

Returns:
  An object of the form:

    { # The metadata for a file.
    "hasThumbnail": True or False, # Whether this file has a thumbnail.
    "mimeType": "A String", # The MIME type of the file.
        # Drive will attempt to automatically detect an appropriate value from uploaded content if no value is provided. The value cannot be changed unless a new revision is uploaded.
        # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
    "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 client-contructable thumbnail URLs or 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.
    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
    "ownedByMe": True or False, # Whether the user owns the file.
    "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 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 the file.
      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
      "canCopy": True or False, # Whether the user can copy the file.
      "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
      "canEdit": True or False, # Whether the user can edit the file's content.
      "canComment": True or False, # Whether the user can comment on the file.
    },
    "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 My Drive folder. Update requests must use the addParents and removeParents parameters to modify the values.
      "A String",
    ],
    "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
    "shared": True or False, # Whether the file has been shared.
    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
      { # 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.
        "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.
        "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.
        "role": "A String", # The role granted by this permission. Valid values are:
            # - owner
            # - writer
            # - commenter
            # - reader
        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
        "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.
      },
    ],
    "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 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 Drive.
    "viewersCanCopyContent": True or False, # Whether users with only reader or commenter permission can copy the file's content. This affects copy, download, and print operations.
    "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.
      { # 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.
    "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 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.
    "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 Drive.
    "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
      "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 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 Drive.
    "starred": True or False, # Whether the user has starred the file.
    "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
  }</pre>
</div>

<div class="method">
    <code class="details" id="create">create(body=None, media_body=None, keepRevisionForever=None, media_mime_type=None, useContentAsIndexableText=None, ignoreDefaultVisibility=None, ocrLanguage=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.
  "mimeType": "A String", # The MIME type of the file.
      # Drive will attempt to automatically detect an appropriate value from uploaded content if no value is provided. The value cannot be changed unless a new revision is uploaded.
      # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
  "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 client-contructable thumbnail URLs or 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.
  "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
  "ownedByMe": True or False, # Whether the user owns the file.
  "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 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 the file.
    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
    "canCopy": True or False, # Whether the user can copy the file.
    "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
    "canEdit": True or False, # Whether the user can edit the file's content.
    "canComment": True or False, # Whether the user can comment on the file.
  },
  "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 My Drive folder. Update requests must use the addParents and removeParents parameters to modify the values.
    "A String",
  ],
  "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
  "shared": True or False, # Whether the file has been shared.
  "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
    { # 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.
      "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.
      "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.
      "role": "A String", # The role granted by this permission. Valid values are:
          # - owner
          # - writer
          # - commenter
          # - reader
      "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
      "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.
    },
  ],
  "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 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 Drive.
  "viewersCanCopyContent": True or False, # Whether users with only reader or commenter permission can copy the file's content. This affects copy, download, and print operations.
  "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.
    { # 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.
  "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 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.
  "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 Drive.
  "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
    "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 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 Drive.
  "starred": True or False, # Whether the user has starred the file.
  "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in 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 Drive.
  media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
  useContentAsIndexableText: boolean, Whether to use the uploaded content as indexable text.
  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.
  ocrLanguage: string, A language hint for OCR processing during image import (ISO 639-1 code).

Returns:
  An object of the form:

    { # The metadata for a file.
    "hasThumbnail": True or False, # Whether this file has a thumbnail.
    "mimeType": "A String", # The MIME type of the file.
        # Drive will attempt to automatically detect an appropriate value from uploaded content if no value is provided. The value cannot be changed unless a new revision is uploaded.
        # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
    "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 client-contructable thumbnail URLs or 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.
    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
    "ownedByMe": True or False, # Whether the user owns the file.
    "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 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 the file.
      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
      "canCopy": True or False, # Whether the user can copy the file.
      "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
      "canEdit": True or False, # Whether the user can edit the file's content.
      "canComment": True or False, # Whether the user can comment on the file.
    },
    "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 My Drive folder. Update requests must use the addParents and removeParents parameters to modify the values.
      "A String",
    ],
    "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
    "shared": True or False, # Whether the file has been shared.
    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
      { # 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.
        "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.
        "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.
        "role": "A String", # The role granted by this permission. Valid values are:
            # - owner
            # - writer
            # - commenter
            # - reader
        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
        "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.
      },
    ],
    "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 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 Drive.
    "viewersCanCopyContent": True or False, # Whether users with only reader or commenter permission can copy the file's content. This affects copy, download, and print operations.
    "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.
      { # 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.
    "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 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.
    "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 Drive.
    "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
      "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 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 Drive.
    "starred": True or False, # Whether the user has starred the file.
    "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
  }</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(fileId)</code>
  <pre>Permanently deletes a file owned by the user without moving it to the trash. If the target is a folder, all descendants owned by the user are also deleted.

Args:
  fileId: string, The ID of the file. (required)
</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.

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.

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, acknowledgeAbuse=None)</code>
  <pre>Gets a file's metadata or content by ID.

Args:
  fileId: string, The ID of the file. (required)
  acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.

Returns:
  An object of the form:

    { # The metadata for a file.
    "hasThumbnail": True or False, # Whether this file has a thumbnail.
    "mimeType": "A String", # The MIME type of the file.
        # Drive will attempt to automatically detect an appropriate value from uploaded content if no value is provided. The value cannot be changed unless a new revision is uploaded.
        # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
    "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 client-contructable thumbnail URLs or 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.
    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
    "ownedByMe": True or False, # Whether the user owns the file.
    "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 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 the file.
      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
      "canCopy": True or False, # Whether the user can copy the file.
      "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
      "canEdit": True or False, # Whether the user can edit the file's content.
      "canComment": True or False, # Whether the user can comment on the file.
    },
    "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 My Drive folder. Update requests must use the addParents and removeParents parameters to modify the values.
      "A String",
    ],
    "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
    "shared": True or False, # Whether the file has been shared.
    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
      { # 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.
        "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.
        "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.
        "role": "A String", # The role granted by this permission. Valid values are:
            # - owner
            # - writer
            # - commenter
            # - reader
        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
        "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.
      },
    ],
    "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 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 Drive.
    "viewersCanCopyContent": True or False, # Whether users with only reader or commenter permission can copy the file's content. This affects copy, download, and print operations.
    "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.
      { # 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.
    "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 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.
    "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 Drive.
    "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
      "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 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 Drive.
    "starred": True or False, # Whether the user has starred the file.
    "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
  }</pre>
</div>

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

Args:
  fileId: string, The ID of the file. (required)
  acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.

Returns:
  The media object as a string.

    </pre>
</div>

<div class="method">
    <code class="details" id="list">list(orderBy=None, q=None, pageSize=None, pageToken=None, spaces=None, corpus=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', '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.
  q: string, A query for filtering the file results. See the "Search for Files" guide for supported syntax.
  pageSize: integer, The maximum number of files to return per page.
  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.
  spaces: string, A comma-separated list of spaces to query within the corpus. Supported values are 'drive', 'appDataFolder' and 'photos'.
  corpus: string, The source of files to list.
    Allowed values
      domain - Files shared to the user's domain.
      user - Files owned by or shared to the user.

Returns:
  An object of the form:

    { # A list of files.
    "files": [ # The page of files.
      { # The metadata for a file.
        "hasThumbnail": True or False, # Whether this file has a thumbnail.
        "mimeType": "A String", # The MIME type of the file.
            # Drive will attempt to automatically detect an appropriate value from uploaded content if no value is provided. The value cannot be changed unless a new revision is uploaded.
            # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
        "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 client-contructable thumbnail URLs or 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.
        "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
        "ownedByMe": True or False, # Whether the user owns the file.
        "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 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 the file.
          "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
          "canCopy": True or False, # Whether the user can copy the file.
          "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
          "canEdit": True or False, # Whether the user can edit the file's content.
          "canComment": True or False, # Whether the user can comment on the file.
        },
        "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 My Drive folder. Update requests must use the addParents and removeParents parameters to modify the values.
          "A String",
        ],
        "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
        "shared": True or False, # Whether the file has been shared.
        "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
          { # 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.
            "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.
            "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.
            "role": "A String", # The role granted by this permission. Valid values are:
                # - owner
                # - writer
                # - commenter
                # - reader
            "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
            "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.
          },
        ],
        "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 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 Drive.
        "viewersCanCopyContent": True or False, # Whether users with only reader or commenter permission can copy the file's content. This affects copy, download, and print operations.
        "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.
          { # 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.
        "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 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.
        "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 Drive.
        "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
          "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 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 Drive.
        "starred": True or False, # Whether the user has starred the file.
        "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
      },
    ],
    "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.
    "kind": "drive#fileList", # Identifies what kind of resource this is. Value: the fixed string "drive#fileList".
  }</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, media_body=None, addParents=None, removeParents=None, media_mime_type=None, useContentAsIndexableText=None, keepRevisionForever=None, ocrLanguage=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.
  "mimeType": "A String", # The MIME type of the file.
      # Drive will attempt to automatically detect an appropriate value from uploaded content if no value is provided. The value cannot be changed unless a new revision is uploaded.
      # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
  "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 client-contructable thumbnail URLs or 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.
  "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
  "ownedByMe": True or False, # Whether the user owns the file.
  "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 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 the file.
    "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
    "canCopy": True or False, # Whether the user can copy the file.
    "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
    "canEdit": True or False, # Whether the user can edit the file's content.
    "canComment": True or False, # Whether the user can comment on the file.
  },
  "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 My Drive folder. Update requests must use the addParents and removeParents parameters to modify the values.
    "A String",
  ],
  "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
  "shared": True or False, # Whether the file has been shared.
  "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
    { # 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.
      "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.
      "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.
      "role": "A String", # The role granted by this permission. Valid values are:
          # - owner
          # - writer
          # - commenter
          # - reader
      "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
      "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.
    },
  ],
  "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 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 Drive.
  "viewersCanCopyContent": True or False, # Whether users with only reader or commenter permission can copy the file's content. This affects copy, download, and print operations.
  "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.
    { # 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.
  "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 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.
  "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 Drive.
  "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
    "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 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 Drive.
  "starred": True or False, # Whether the user has starred the file.
  "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
}

  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
  addParents: string, A comma-separated list of parent IDs to add.
  removeParents: string, A comma-separated list of parent IDs to remove.
  media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
  useContentAsIndexableText: boolean, Whether to use the uploaded content as indexable text.
  keepRevisionForever: boolean, Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Drive.
  ocrLanguage: string, A language hint for OCR processing during image import (ISO 639-1 code).

Returns:
  An object of the form:

    { # The metadata for a file.
    "hasThumbnail": True or False, # Whether this file has a thumbnail.
    "mimeType": "A String", # The MIME type of the file.
        # Drive will attempt to automatically detect an appropriate value from uploaded content if no value is provided. The value cannot be changed unless a new revision is uploaded.
        # If a file is created with a Google Doc MIME type, the uploaded content will be imported if possible. The supported import formats are published in the About resource.
    "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 client-contructable thumbnail URLs or 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.
    "writersCanShare": True or False, # Whether users with only writer permission can modify the file's permissions.
    "ownedByMe": True or False, # Whether the user owns the file.
    "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 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 the file.
      "canReadRevisions": True or False, # Whether the current user has read access to the Revisions resource of the file.
      "canCopy": True or False, # Whether the user can copy the file.
      "canShare": True or False, # Whether the user can modify the file's permissions and sharing settings.
      "canEdit": True or False, # Whether the user can edit the file's content.
      "canComment": True or False, # Whether the user can comment on the file.
    },
    "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 My Drive folder. Update requests must use the addParents and removeParents parameters to modify the values.
      "A String",
    ],
    "sharedWithMeTime": "A String", # The time at which the file was shared with the user, if applicable (RFC 3339 date-time).
    "shared": True or False, # Whether the file has been shared.
    "permissions": [ # The full list of permissions for the file. This is only available if the requesting user can share the file.
      { # 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.
        "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.
        "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.
        "role": "A String", # The role granted by this permission. Valid values are:
            # - owner
            # - writer
            # - commenter
            # - reader
        "expirationTime": "A String", # The time at which this permission will expire (RFC 3339 date-time).
        "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.
      },
    ],
    "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 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 Drive.
    "viewersCanCopyContent": True or False, # Whether users with only reader or commenter permission can copy the file's content. This affects copy, download, and print operations.
    "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.
      { # 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.
    "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 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.
    "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 Drive.
    "spaces": [ # The list of spaces which contain the file. The currently supported values are 'drive', 'appDataFolder' and 'photos'.
      "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 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 Drive.
    "starred": True or False, # Whether the user has starred the file.
    "headRevisionId": "A String", # The ID of the file's head revision. This is currently only available for files with binary content in Drive.
  }</pre>
</div>

<div class="method">
    <code class="details" id="watch">watch(fileId, body, 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.
  }

  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, 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.
  }

  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>