<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_v2.html">Drive API</a> . <a href="drive_v2.files.html">files</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#copy">copy(fileId, body, pinned=None, convert=None, visibility=None, ocrLanguage=None, ocr=None, timedTextLanguage=None, timedTextTrackName=None)</a></code></p>
<p class="firstline">Creates a copy of the specified file.</p>
<p class="toc_element">
  <code><a href="#delete">delete(fileId)</a></code></p>
<p class="firstline">Permanently deletes a file by ID. Skips the trash. The currently authenticated user must own the file.</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="#generateIds">generateIds(space=None, maxResults=None)</a></code></p>
<p class="firstline">Generates a set of file IDs which can be provided in insert requests.</p>
<p class="toc_element">
  <code><a href="#get">get(fileId, projection=None, revisionId=None, acknowledgeAbuse=None, updateViewedDate=None)</a></code></p>
<p class="firstline">Gets a file's metadata by ID.</p>
<p class="toc_element">
  <code><a href="#get_media">get_media(fileId, projection=None, revisionId=None, acknowledgeAbuse=None, updateViewedDate=None)</a></code></p>
<p class="firstline">Gets a file's metadata by ID.</p>
<p class="toc_element">
  <code><a href="#insert">insert(body=None, media_body=None, convert=None, useContentAsIndexableText=None, visibility=None, ocrLanguage=None, ocr=None, timedTextLanguage=None, timedTextTrackName=None, pinned=None)</a></code></p>
<p class="firstline">Insert a new file.</p>
<p class="toc_element">
  <code><a href="#list">list(orderBy=None, q=None, projection=None, pageToken=None, maxResults=None, spaces=None, corpus=None)</a></code></p>
<p class="firstline">Lists the user's 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="#patch">patch(fileId, body, newRevision=None, modifiedDateBehavior=None, pinned=None, ocrLanguage=None, ocr=None, addParents=None, removeParents=None, updateViewedDate=None, timedTextTrackName=None, convert=None, useContentAsIndexableText=None, setModifiedDate=None, timedTextLanguage=None)</a></code></p>
<p class="firstline">Updates file metadata and/or content. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#touch">touch(fileId)</a></code></p>
<p class="firstline">Set the file's updated time to the current server time.</p>
<p class="toc_element">
  <code><a href="#trash">trash(fileId)</a></code></p>
<p class="firstline">Moves a file to the trash. The currently authenticated user must own the file.</p>
<p class="toc_element">
  <code><a href="#untrash">untrash(fileId)</a></code></p>
<p class="firstline">Restores a file from the trash.</p>
<p class="toc_element">
  <code><a href="#update">update(fileId, body=None, newRevision=None, modifiedDateBehavior=None, media_body=None, ocrLanguage=None, ocr=None, pinned=None, addParents=None, removeParents=None, updateViewedDate=None, timedTextTrackName=None, convert=None, useContentAsIndexableText=None, setModifiedDate=None, timedTextLanguage=None)</a></code></p>
<p class="firstline">Updates file metadata and/or content.</p>
<p class="toc_element">
  <code><a href="#watch">watch(fileId, body, projection=None, revisionId=None, acknowledgeAbuse=None, updateViewedDate=None)</a></code></p>
<p class="firstline">Subscribe to changes on a file</p>
<p class="toc_element">
  <code><a href="#watch_media">watch_media(fileId, body, projection=None, revisionId=None, acknowledgeAbuse=None, updateViewedDate=None)</a></code></p>
<p class="firstline">Subscribe to changes on a file</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="copy">copy(fileId, body, pinned=None, convert=None, visibility=None, ocrLanguage=None, ocr=None, timedTextLanguage=None, timedTextTrackName=None)</code>
  <pre>Creates a copy of the specified file.

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

{ # The metadata for a file.
  "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
  "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
  "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 requesting user.
  "appDataContents": True or False, # Whether this file is in the Application Data folder.
  "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours.
  "labels": { # A group of labels for the file.
    "restricted": True or False, # Whether viewers and commenters are prevented from downloading, printing, and copying this file.
    "hidden": True or False, # Deprecated.
    "viewed": True or False, # Whether this file has been viewed by this user.
    "starred": True or False, # Whether this file is starred by the user.
    "trashed": True or False, # Whether this file has been trashed. This label applies to all users accessing the file; however, only owners are allowed to see and untrash files.
  },
  "indexableText": { # Indexable text attributes for the file (can only be written)
    "text": "A String", # The text to be indexed for this file.
  },
  "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
  "lastModifyingUserName": "A String", # Name of the last user to modify this file.
  "writersCanShare": True or False, # Whether writers can share the document with other users.
  "owners": [ # The owner(s) of this file.
    { # The JSON template for a user.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
  ],
  "ownedByMe": True or False, # Whether the file is owned by the current user.
  "id": "A String", # The ID of the file.
  "sharingUser": { # The JSON template for a user. # User that shared the item with the current user, if available.
    "picture": { # The user's profile picture.
      "url": "A String", # A URL that points to a profile picture of this user.
    },
    "kind": "drive#user", # This is always drive#user.
    "displayName": "A String", # A plain text displayable name for this user.
    "permissionId": "A String", # The user's ID as visible in the permissions collection.
    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
    "emailAddress": "A String", # The email address of the user.
  },
  "videoMediaMetadata": { # Metadata about video media. This will only be present for video types.
    "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": { # The JSON template for a user. # The last user to modify this file.
    "picture": { # The user's profile picture.
      "url": "A String", # A URL that points to a profile picture of this user.
    },
    "kind": "drive#user", # This is always drive#user.
    "displayName": "A String", # A plain text displayable name for this user.
    "permissionId": "A String", # The user's ID as visible in the permissions collection.
    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
    "emailAddress": "A String", # The email address of the user.
  },
  "copyable": True or False, # Whether the file can be copied by the current user.
  "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
  "markedViewedByMeDate": "A String", # Time this file was explicitly marked viewed by the user (formatted RFC 3339 timestamp).
  "ownerNames": [ # Name(s) of the owner(s) of this file.
    "A String",
  ],
  "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
  "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
  "etag": "A String", # ETag of the file.
  "parents": [ # Collection of parent folders which contain this file.
      # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
    { # A reference to a file's parent.
      "selfLink": "A String", # A link back to this reference.
      "kind": "drive#parentReference", # This is always drive#parentReference.
      "id": "A String", # The ID of the parent.
      "isRoot": True or False, # Whether or not the parent is the root folder.
      "parentLink": "A String", # A link to the parent.
    },
  ],
  "exportLinks": { # Links for exporting Google Docs to specific formats.
    "a_key": "A String", # A mapping from export format to URL
  },
  "shared": True or False, # Whether the file has been shared.
  "permissions": [ # The list of permissions for users with access to this file.
    { # A permission for a file.
      "withLink": True or False, # Whether the link is required for this permission.
      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
      "name": "A String", # The name for this permission.
      "kind": "drive#permission", # This is always drive#permission.
      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "authKey": "A String", # The authkey parameter required for this permission.
      "etag": "A String", # The ETag of the permission.
      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
      "photoLink": "A String", # A link to the profile photo, if available.
      "role": "A String", # The primary role for this user. Allowed values are:
          # - owner
          # - reader
          # - writer
      "type": "A String", # The account type. Allowed values are:
          # - user
          # - group
          # - domain
          # - anyone
      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
        "A String",
      ],
      "selfLink": "A String", # A link back to this permission.
    },
  ],
  "fullFileExtension": "A String", # The full file extension; extracted from the title. May contain multiple concatenated extensions, such as "tar.gz". Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
    "a_key": "A String",
  },
  "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
    "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).
    "isoSpeed": 42, # The ISO speed used to create the photo.
    "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.
    "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
    "width": 42, # The width of the image in pixels.
    "meteringMode": "A String", # The metering mode used to create the photo.
    "flashUsed": True or False, # Whether a flash was used to create the photo.
    "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.
  },
  "description": "A String", # A short description of the file.
  "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
  "editable": True or False, # Whether the file can be edited by the current user.
  "kind": "drive#file", # The type of file. This is always drive#file.
  "canComment": True or False, # Whether the current user can comment on the file.
  "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
  "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
  "properties": [ # The list of properties.
    { # A key-value pair attached to a file that is either public or private to an application.
        # The following limits apply to file properties:
        # - Maximum of 100 properties total per file
        # - Maximum of 30 private properties per app
        # - Maximum of 30 public properties
        # - Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding for a single property.
      "kind": "drive#property", # This is always drive#property.
      "value": "A String", # The value of this property.
      "etag": "A String", # ETag of the property.
      "visibility": "A String", # The visibility of this property.
      "key": "A String", # The key of this property.
      "selfLink": "A String", # The link back to this property.
    },
  ],
  "md5Checksum": "A String", # An MD5 checksum for the content of this file. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "iconLink": "A String", # A link to the file's icon.
  "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
  "embedLink": "A String", # A link for embedding the file.
  "alternateLink": "A String", # A link for opening the file in a relevant Google editor or viewer.
  "title": "A String", # The title of this file.
  "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
  "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
    "mimeType": "A String", # The MIME type of the thumbnail.
    "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to RFC 4648 section 5.
  },
  "downloadUrl": "A String",
  "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
    "withLink": True or False, # Whether the link is required for this permission.
    "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
    "name": "A String", # The name for this permission.
    "kind": "drive#permission", # This is always drive#permission.
    "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
    "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
    "authKey": "A String", # The authkey parameter required for this permission.
    "etag": "A String", # The ETag of the permission.
    "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
    "photoLink": "A String", # A link to the profile photo, if available.
    "role": "A String", # The primary role for this user. Allowed values are:
        # - owner
        # - reader
        # - writer
    "type": "A String", # The account type. Allowed values are:
        # - user
        # - group
        # - domain
        # - anyone
    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
      "A String",
    ],
    "selfLink": "A String", # A link back to this permission.
  },
  "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
    "A String",
  ],
  "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
  "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "selfLink": "A String", # A link back to this file.
  "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
}

  pinned: boolean, Whether to pin the head revision of the new copy. A file can have a maximum of 200 pinned revisions.
  convert: boolean, Whether to convert this file to the corresponding Google Docs format.
  visibility: string, The visibility of the new file. This parameter is only relevant when the source is not a native Google Doc and convert=false.
    Allowed values
      DEFAULT - The visibility of the new file is determined by the user's default visibility/sharing policies.
      PRIVATE - The new file will be visible to only the owner.
  ocrLanguage: string, If ocr is true, hints at the language to use. Valid values are BCP 47 codes.
  ocr: boolean, Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads.
  timedTextLanguage: string, The language of the timed text.
  timedTextTrackName: string, The timed text track name.

Returns:
  An object of the form:

    { # The metadata for a file.
    "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
    "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
    "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 requesting user.
    "appDataContents": True or False, # Whether this file is in the Application Data folder.
    "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours.
    "labels": { # A group of labels for the file.
      "restricted": True or False, # Whether viewers and commenters are prevented from downloading, printing, and copying this file.
      "hidden": True or False, # Deprecated.
      "viewed": True or False, # Whether this file has been viewed by this user.
      "starred": True or False, # Whether this file is starred by the user.
      "trashed": True or False, # Whether this file has been trashed. This label applies to all users accessing the file; however, only owners are allowed to see and untrash files.
    },
    "indexableText": { # Indexable text attributes for the file (can only be written)
      "text": "A String", # The text to be indexed for this file.
    },
    "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
    "lastModifyingUserName": "A String", # Name of the last user to modify this file.
    "writersCanShare": True or False, # Whether writers can share the document with other users.
    "owners": [ # The owner(s) of this file.
      { # The JSON template for a user.
        "picture": { # The user's profile picture.
          "url": "A String", # A URL that points to a profile picture of this user.
        },
        "kind": "drive#user", # This is always drive#user.
        "displayName": "A String", # A plain text displayable name for this user.
        "permissionId": "A String", # The user's ID as visible in the permissions collection.
        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
        "emailAddress": "A String", # The email address of the user.
      },
    ],
    "ownedByMe": True or False, # Whether the file is owned by the current user.
    "id": "A String", # The ID of the file.
    "sharingUser": { # The JSON template for a user. # User that shared the item with the current user, if available.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
    "videoMediaMetadata": { # Metadata about video media. This will only be present for video types.
      "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": { # The JSON template for a user. # The last user to modify this file.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
    "copyable": True or False, # Whether the file can be copied by the current user.
    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
    "markedViewedByMeDate": "A String", # Time this file was explicitly marked viewed by the user (formatted RFC 3339 timestamp).
    "ownerNames": [ # Name(s) of the owner(s) of this file.
      "A String",
    ],
    "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
    "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
    "etag": "A String", # ETag of the file.
    "parents": [ # Collection of parent folders which contain this file.
        # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
      { # A reference to a file's parent.
        "selfLink": "A String", # A link back to this reference.
        "kind": "drive#parentReference", # This is always drive#parentReference.
        "id": "A String", # The ID of the parent.
        "isRoot": True or False, # Whether or not the parent is the root folder.
        "parentLink": "A String", # A link to the parent.
      },
    ],
    "exportLinks": { # Links for exporting Google Docs to specific formats.
      "a_key": "A String", # A mapping from export format to URL
    },
    "shared": True or False, # Whether the file has been shared.
    "permissions": [ # The list of permissions for users with access to this file.
      { # A permission for a file.
        "withLink": True or False, # Whether the link is required for this permission.
        "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
        "name": "A String", # The name for this permission.
        "kind": "drive#permission", # This is always drive#permission.
        "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
        "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
        "authKey": "A String", # The authkey parameter required for this permission.
        "etag": "A String", # The ETag of the permission.
        "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
        "photoLink": "A String", # A link to the profile photo, if available.
        "role": "A String", # The primary role for this user. Allowed values are:
            # - owner
            # - reader
            # - writer
        "type": "A String", # The account type. Allowed values are:
            # - user
            # - group
            # - domain
            # - anyone
        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
          "A String",
        ],
        "selfLink": "A String", # A link back to this permission.
      },
    ],
    "fullFileExtension": "A String", # The full file extension; extracted from the title. May contain multiple concatenated extensions, such as "tar.gz". Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
      "a_key": "A String",
    },
    "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
      "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).
      "isoSpeed": 42, # The ISO speed used to create the photo.
      "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.
      "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
      "width": 42, # The width of the image in pixels.
      "meteringMode": "A String", # The metering mode used to create the photo.
      "flashUsed": True or False, # Whether a flash was used to create the photo.
      "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.
    },
    "description": "A String", # A short description of the file.
    "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
    "editable": True or False, # Whether the file can be edited by the current user.
    "kind": "drive#file", # The type of file. This is always drive#file.
    "canComment": True or False, # Whether the current user can comment on the file.
    "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
    "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
    "properties": [ # The list of properties.
      { # A key-value pair attached to a file that is either public or private to an application.
          # The following limits apply to file properties:
          # - Maximum of 100 properties total per file
          # - Maximum of 30 private properties per app
          # - Maximum of 30 public properties
          # - Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding for a single property.
        "kind": "drive#property", # This is always drive#property.
        "value": "A String", # The value of this property.
        "etag": "A String", # ETag of the property.
        "visibility": "A String", # The visibility of this property.
        "key": "A String", # The key of this property.
        "selfLink": "A String", # The link back to this property.
      },
    ],
    "md5Checksum": "A String", # An MD5 checksum for the content of this file. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "iconLink": "A String", # A link to the file's icon.
    "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
    "embedLink": "A String", # A link for embedding the file.
    "alternateLink": "A String", # A link for opening the file in a relevant Google editor or viewer.
    "title": "A String", # The title of this file.
    "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
    "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
      "mimeType": "A String", # The MIME type of the thumbnail.
      "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to RFC 4648 section 5.
    },
    "downloadUrl": "A String",
    "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
      "withLink": True or False, # Whether the link is required for this permission.
      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
      "name": "A String", # The name for this permission.
      "kind": "drive#permission", # This is always drive#permission.
      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "authKey": "A String", # The authkey parameter required for this permission.
      "etag": "A String", # The ETag of the permission.
      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
      "photoLink": "A String", # A link to the profile photo, if available.
      "role": "A String", # The primary role for this user. Allowed values are:
          # - owner
          # - reader
          # - writer
      "type": "A String", # The account type. Allowed values are:
          # - user
          # - group
          # - domain
          # - anyone
      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
        "A String",
      ],
      "selfLink": "A String", # A link back to this permission.
    },
    "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
      "A String",
    ],
    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
    "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "selfLink": "A String", # A link back to this file.
    "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
  }</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(fileId)</code>
  <pre>Permanently deletes a file by ID. Skips the trash. The currently authenticated user must own the file.

Args:
  fileId: string, The ID of the file to delete. (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="generateIds">generateIds(space=None, maxResults=None)</code>
  <pre>Generates a set of file IDs which can be provided in insert requests.

Args:
  space: string, The space in which the IDs can be used to create new files. Supported values are 'drive' and 'appDataFolder'.
  maxResults: integer, Maximum number of IDs to return.

Returns:
  An object of the form:

    { # A list of generated IDs which can be provided in insert requests
    "kind": "drive#generatedIds", # This is always 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, projection=None, revisionId=None, acknowledgeAbuse=None, updateViewedDate=None)</code>
  <pre>Gets a file's metadata by ID.

Args:
  fileId: string, The ID for the file in question. (required)
  projection: string, This parameter is deprecated and has no function.
    Allowed values
      BASIC - Deprecated
      FULL - Deprecated
  revisionId: string, Specifies the Revision ID that should be downloaded. Ignored unless alt=media is specified.
  acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files.
  updateViewedDate: boolean, Whether to update the view date after successfully retrieving the file.

Returns:
  An object of the form:

    { # The metadata for a file.
    "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
    "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
    "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 requesting user.
    "appDataContents": True or False, # Whether this file is in the Application Data folder.
    "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours.
    "labels": { # A group of labels for the file.
      "restricted": True or False, # Whether viewers and commenters are prevented from downloading, printing, and copying this file.
      "hidden": True or False, # Deprecated.
      "viewed": True or False, # Whether this file has been viewed by this user.
      "starred": True or False, # Whether this file is starred by the user.
      "trashed": True or False, # Whether this file has been trashed. This label applies to all users accessing the file; however, only owners are allowed to see and untrash files.
    },
    "indexableText": { # Indexable text attributes for the file (can only be written)
      "text": "A String", # The text to be indexed for this file.
    },
    "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
    "lastModifyingUserName": "A String", # Name of the last user to modify this file.
    "writersCanShare": True or False, # Whether writers can share the document with other users.
    "owners": [ # The owner(s) of this file.
      { # The JSON template for a user.
        "picture": { # The user's profile picture.
          "url": "A String", # A URL that points to a profile picture of this user.
        },
        "kind": "drive#user", # This is always drive#user.
        "displayName": "A String", # A plain text displayable name for this user.
        "permissionId": "A String", # The user's ID as visible in the permissions collection.
        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
        "emailAddress": "A String", # The email address of the user.
      },
    ],
    "ownedByMe": True or False, # Whether the file is owned by the current user.
    "id": "A String", # The ID of the file.
    "sharingUser": { # The JSON template for a user. # User that shared the item with the current user, if available.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
    "videoMediaMetadata": { # Metadata about video media. This will only be present for video types.
      "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": { # The JSON template for a user. # The last user to modify this file.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
    "copyable": True or False, # Whether the file can be copied by the current user.
    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
    "markedViewedByMeDate": "A String", # Time this file was explicitly marked viewed by the user (formatted RFC 3339 timestamp).
    "ownerNames": [ # Name(s) of the owner(s) of this file.
      "A String",
    ],
    "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
    "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
    "etag": "A String", # ETag of the file.
    "parents": [ # Collection of parent folders which contain this file.
        # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
      { # A reference to a file's parent.
        "selfLink": "A String", # A link back to this reference.
        "kind": "drive#parentReference", # This is always drive#parentReference.
        "id": "A String", # The ID of the parent.
        "isRoot": True or False, # Whether or not the parent is the root folder.
        "parentLink": "A String", # A link to the parent.
      },
    ],
    "exportLinks": { # Links for exporting Google Docs to specific formats.
      "a_key": "A String", # A mapping from export format to URL
    },
    "shared": True or False, # Whether the file has been shared.
    "permissions": [ # The list of permissions for users with access to this file.
      { # A permission for a file.
        "withLink": True or False, # Whether the link is required for this permission.
        "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
        "name": "A String", # The name for this permission.
        "kind": "drive#permission", # This is always drive#permission.
        "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
        "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
        "authKey": "A String", # The authkey parameter required for this permission.
        "etag": "A String", # The ETag of the permission.
        "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
        "photoLink": "A String", # A link to the profile photo, if available.
        "role": "A String", # The primary role for this user. Allowed values are:
            # - owner
            # - reader
            # - writer
        "type": "A String", # The account type. Allowed values are:
            # - user
            # - group
            # - domain
            # - anyone
        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
          "A String",
        ],
        "selfLink": "A String", # A link back to this permission.
      },
    ],
    "fullFileExtension": "A String", # The full file extension; extracted from the title. May contain multiple concatenated extensions, such as "tar.gz". Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
      "a_key": "A String",
    },
    "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
      "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).
      "isoSpeed": 42, # The ISO speed used to create the photo.
      "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.
      "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
      "width": 42, # The width of the image in pixels.
      "meteringMode": "A String", # The metering mode used to create the photo.
      "flashUsed": True or False, # Whether a flash was used to create the photo.
      "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.
    },
    "description": "A String", # A short description of the file.
    "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
    "editable": True or False, # Whether the file can be edited by the current user.
    "kind": "drive#file", # The type of file. This is always drive#file.
    "canComment": True or False, # Whether the current user can comment on the file.
    "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
    "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
    "properties": [ # The list of properties.
      { # A key-value pair attached to a file that is either public or private to an application.
          # The following limits apply to file properties:
          # - Maximum of 100 properties total per file
          # - Maximum of 30 private properties per app
          # - Maximum of 30 public properties
          # - Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding for a single property.
        "kind": "drive#property", # This is always drive#property.
        "value": "A String", # The value of this property.
        "etag": "A String", # ETag of the property.
        "visibility": "A String", # The visibility of this property.
        "key": "A String", # The key of this property.
        "selfLink": "A String", # The link back to this property.
      },
    ],
    "md5Checksum": "A String", # An MD5 checksum for the content of this file. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "iconLink": "A String", # A link to the file's icon.
    "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
    "embedLink": "A String", # A link for embedding the file.
    "alternateLink": "A String", # A link for opening the file in a relevant Google editor or viewer.
    "title": "A String", # The title of this file.
    "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
    "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
      "mimeType": "A String", # The MIME type of the thumbnail.
      "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to RFC 4648 section 5.
    },
    "downloadUrl": "A String",
    "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
      "withLink": True or False, # Whether the link is required for this permission.
      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
      "name": "A String", # The name for this permission.
      "kind": "drive#permission", # This is always drive#permission.
      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "authKey": "A String", # The authkey parameter required for this permission.
      "etag": "A String", # The ETag of the permission.
      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
      "photoLink": "A String", # A link to the profile photo, if available.
      "role": "A String", # The primary role for this user. Allowed values are:
          # - owner
          # - reader
          # - writer
      "type": "A String", # The account type. Allowed values are:
          # - user
          # - group
          # - domain
          # - anyone
      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
        "A String",
      ],
      "selfLink": "A String", # A link back to this permission.
    },
    "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
      "A String",
    ],
    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
    "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "selfLink": "A String", # A link back to this file.
    "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
  }</pre>
</div>

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

Args:
  fileId: string, The ID for the file in question. (required)
  projection: string, This parameter is deprecated and has no function.
    Allowed values
      BASIC - Deprecated
      FULL - Deprecated
  revisionId: string, Specifies the Revision ID that should be downloaded. Ignored unless alt=media is specified.
  acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files.
  updateViewedDate: boolean, Whether to update the view date after successfully retrieving the file.

Returns:
  The media object as a string.

    </pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(body=None, media_body=None, convert=None, useContentAsIndexableText=None, visibility=None, ocrLanguage=None, ocr=None, timedTextLanguage=None, timedTextTrackName=None, pinned=None)</code>
  <pre>Insert a new file.

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

{ # The metadata for a file.
  "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
  "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
  "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 requesting user.
  "appDataContents": True or False, # Whether this file is in the Application Data folder.
  "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours.
  "labels": { # A group of labels for the file.
    "restricted": True or False, # Whether viewers and commenters are prevented from downloading, printing, and copying this file.
    "hidden": True or False, # Deprecated.
    "viewed": True or False, # Whether this file has been viewed by this user.
    "starred": True or False, # Whether this file is starred by the user.
    "trashed": True or False, # Whether this file has been trashed. This label applies to all users accessing the file; however, only owners are allowed to see and untrash files.
  },
  "indexableText": { # Indexable text attributes for the file (can only be written)
    "text": "A String", # The text to be indexed for this file.
  },
  "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
  "lastModifyingUserName": "A String", # Name of the last user to modify this file.
  "writersCanShare": True or False, # Whether writers can share the document with other users.
  "owners": [ # The owner(s) of this file.
    { # The JSON template for a user.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
  ],
  "ownedByMe": True or False, # Whether the file is owned by the current user.
  "id": "A String", # The ID of the file.
  "sharingUser": { # The JSON template for a user. # User that shared the item with the current user, if available.
    "picture": { # The user's profile picture.
      "url": "A String", # A URL that points to a profile picture of this user.
    },
    "kind": "drive#user", # This is always drive#user.
    "displayName": "A String", # A plain text displayable name for this user.
    "permissionId": "A String", # The user's ID as visible in the permissions collection.
    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
    "emailAddress": "A String", # The email address of the user.
  },
  "videoMediaMetadata": { # Metadata about video media. This will only be present for video types.
    "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": { # The JSON template for a user. # The last user to modify this file.
    "picture": { # The user's profile picture.
      "url": "A String", # A URL that points to a profile picture of this user.
    },
    "kind": "drive#user", # This is always drive#user.
    "displayName": "A String", # A plain text displayable name for this user.
    "permissionId": "A String", # The user's ID as visible in the permissions collection.
    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
    "emailAddress": "A String", # The email address of the user.
  },
  "copyable": True or False, # Whether the file can be copied by the current user.
  "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
  "markedViewedByMeDate": "A String", # Time this file was explicitly marked viewed by the user (formatted RFC 3339 timestamp).
  "ownerNames": [ # Name(s) of the owner(s) of this file.
    "A String",
  ],
  "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
  "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
  "etag": "A String", # ETag of the file.
  "parents": [ # Collection of parent folders which contain this file.
      # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
    { # A reference to a file's parent.
      "selfLink": "A String", # A link back to this reference.
      "kind": "drive#parentReference", # This is always drive#parentReference.
      "id": "A String", # The ID of the parent.
      "isRoot": True or False, # Whether or not the parent is the root folder.
      "parentLink": "A String", # A link to the parent.
    },
  ],
  "exportLinks": { # Links for exporting Google Docs to specific formats.
    "a_key": "A String", # A mapping from export format to URL
  },
  "shared": True or False, # Whether the file has been shared.
  "permissions": [ # The list of permissions for users with access to this file.
    { # A permission for a file.
      "withLink": True or False, # Whether the link is required for this permission.
      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
      "name": "A String", # The name for this permission.
      "kind": "drive#permission", # This is always drive#permission.
      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "authKey": "A String", # The authkey parameter required for this permission.
      "etag": "A String", # The ETag of the permission.
      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
      "photoLink": "A String", # A link to the profile photo, if available.
      "role": "A String", # The primary role for this user. Allowed values are:
          # - owner
          # - reader
          # - writer
      "type": "A String", # The account type. Allowed values are:
          # - user
          # - group
          # - domain
          # - anyone
      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
        "A String",
      ],
      "selfLink": "A String", # A link back to this permission.
    },
  ],
  "fullFileExtension": "A String", # The full file extension; extracted from the title. May contain multiple concatenated extensions, such as "tar.gz". Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
    "a_key": "A String",
  },
  "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
    "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).
    "isoSpeed": 42, # The ISO speed used to create the photo.
    "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.
    "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
    "width": 42, # The width of the image in pixels.
    "meteringMode": "A String", # The metering mode used to create the photo.
    "flashUsed": True or False, # Whether a flash was used to create the photo.
    "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.
  },
  "description": "A String", # A short description of the file.
  "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
  "editable": True or False, # Whether the file can be edited by the current user.
  "kind": "drive#file", # The type of file. This is always drive#file.
  "canComment": True or False, # Whether the current user can comment on the file.
  "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
  "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
  "properties": [ # The list of properties.
    { # A key-value pair attached to a file that is either public or private to an application.
        # The following limits apply to file properties:
        # - Maximum of 100 properties total per file
        # - Maximum of 30 private properties per app
        # - Maximum of 30 public properties
        # - Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding for a single property.
      "kind": "drive#property", # This is always drive#property.
      "value": "A String", # The value of this property.
      "etag": "A String", # ETag of the property.
      "visibility": "A String", # The visibility of this property.
      "key": "A String", # The key of this property.
      "selfLink": "A String", # The link back to this property.
    },
  ],
  "md5Checksum": "A String", # An MD5 checksum for the content of this file. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "iconLink": "A String", # A link to the file's icon.
  "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
  "embedLink": "A String", # A link for embedding the file.
  "alternateLink": "A String", # A link for opening the file in a relevant Google editor or viewer.
  "title": "A String", # The title of this file.
  "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
  "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
    "mimeType": "A String", # The MIME type of the thumbnail.
    "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to RFC 4648 section 5.
  },
  "downloadUrl": "A String",
  "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
    "withLink": True or False, # Whether the link is required for this permission.
    "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
    "name": "A String", # The name for this permission.
    "kind": "drive#permission", # This is always drive#permission.
    "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
    "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
    "authKey": "A String", # The authkey parameter required for this permission.
    "etag": "A String", # The ETag of the permission.
    "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
    "photoLink": "A String", # A link to the profile photo, if available.
    "role": "A String", # The primary role for this user. Allowed values are:
        # - owner
        # - reader
        # - writer
    "type": "A String", # The account type. Allowed values are:
        # - user
        # - group
        # - domain
        # - anyone
    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
      "A String",
    ],
    "selfLink": "A String", # A link back to this permission.
  },
  "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
    "A String",
  ],
  "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
  "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "selfLink": "A String", # A link back to this file.
  "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
}

  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
  convert: boolean, Whether to convert this file to the corresponding Google Docs format.
  useContentAsIndexableText: boolean, Whether to use the content as indexable text.
  visibility: string, The visibility of the new file. This parameter is only relevant when convert=false.
    Allowed values
      DEFAULT - The visibility of the new file is determined by the user's default visibility/sharing policies.
      PRIVATE - The new file will be visible to only the owner.
  ocrLanguage: string, If ocr is true, hints at the language to use. Valid values are BCP 47 codes.
  ocr: boolean, Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads.
  timedTextLanguage: string, The language of the timed text.
  timedTextTrackName: string, The timed text track name.
  pinned: boolean, Whether to pin the head revision of the uploaded file. A file can have a maximum of 200 pinned revisions.

Returns:
  An object of the form:

    { # The metadata for a file.
    "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
    "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
    "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 requesting user.
    "appDataContents": True or False, # Whether this file is in the Application Data folder.
    "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours.
    "labels": { # A group of labels for the file.
      "restricted": True or False, # Whether viewers and commenters are prevented from downloading, printing, and copying this file.
      "hidden": True or False, # Deprecated.
      "viewed": True or False, # Whether this file has been viewed by this user.
      "starred": True or False, # Whether this file is starred by the user.
      "trashed": True or False, # Whether this file has been trashed. This label applies to all users accessing the file; however, only owners are allowed to see and untrash files.
    },
    "indexableText": { # Indexable text attributes for the file (can only be written)
      "text": "A String", # The text to be indexed for this file.
    },
    "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
    "lastModifyingUserName": "A String", # Name of the last user to modify this file.
    "writersCanShare": True or False, # Whether writers can share the document with other users.
    "owners": [ # The owner(s) of this file.
      { # The JSON template for a user.
        "picture": { # The user's profile picture.
          "url": "A String", # A URL that points to a profile picture of this user.
        },
        "kind": "drive#user", # This is always drive#user.
        "displayName": "A String", # A plain text displayable name for this user.
        "permissionId": "A String", # The user's ID as visible in the permissions collection.
        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
        "emailAddress": "A String", # The email address of the user.
      },
    ],
    "ownedByMe": True or False, # Whether the file is owned by the current user.
    "id": "A String", # The ID of the file.
    "sharingUser": { # The JSON template for a user. # User that shared the item with the current user, if available.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
    "videoMediaMetadata": { # Metadata about video media. This will only be present for video types.
      "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": { # The JSON template for a user. # The last user to modify this file.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
    "copyable": True or False, # Whether the file can be copied by the current user.
    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
    "markedViewedByMeDate": "A String", # Time this file was explicitly marked viewed by the user (formatted RFC 3339 timestamp).
    "ownerNames": [ # Name(s) of the owner(s) of this file.
      "A String",
    ],
    "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
    "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
    "etag": "A String", # ETag of the file.
    "parents": [ # Collection of parent folders which contain this file.
        # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
      { # A reference to a file's parent.
        "selfLink": "A String", # A link back to this reference.
        "kind": "drive#parentReference", # This is always drive#parentReference.
        "id": "A String", # The ID of the parent.
        "isRoot": True or False, # Whether or not the parent is the root folder.
        "parentLink": "A String", # A link to the parent.
      },
    ],
    "exportLinks": { # Links for exporting Google Docs to specific formats.
      "a_key": "A String", # A mapping from export format to URL
    },
    "shared": True or False, # Whether the file has been shared.
    "permissions": [ # The list of permissions for users with access to this file.
      { # A permission for a file.
        "withLink": True or False, # Whether the link is required for this permission.
        "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
        "name": "A String", # The name for this permission.
        "kind": "drive#permission", # This is always drive#permission.
        "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
        "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
        "authKey": "A String", # The authkey parameter required for this permission.
        "etag": "A String", # The ETag of the permission.
        "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
        "photoLink": "A String", # A link to the profile photo, if available.
        "role": "A String", # The primary role for this user. Allowed values are:
            # - owner
            # - reader
            # - writer
        "type": "A String", # The account type. Allowed values are:
            # - user
            # - group
            # - domain
            # - anyone
        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
          "A String",
        ],
        "selfLink": "A String", # A link back to this permission.
      },
    ],
    "fullFileExtension": "A String", # The full file extension; extracted from the title. May contain multiple concatenated extensions, such as "tar.gz". Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
      "a_key": "A String",
    },
    "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
      "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).
      "isoSpeed": 42, # The ISO speed used to create the photo.
      "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.
      "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
      "width": 42, # The width of the image in pixels.
      "meteringMode": "A String", # The metering mode used to create the photo.
      "flashUsed": True or False, # Whether a flash was used to create the photo.
      "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.
    },
    "description": "A String", # A short description of the file.
    "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
    "editable": True or False, # Whether the file can be edited by the current user.
    "kind": "drive#file", # The type of file. This is always drive#file.
    "canComment": True or False, # Whether the current user can comment on the file.
    "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
    "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
    "properties": [ # The list of properties.
      { # A key-value pair attached to a file that is either public or private to an application.
          # The following limits apply to file properties:
          # - Maximum of 100 properties total per file
          # - Maximum of 30 private properties per app
          # - Maximum of 30 public properties
          # - Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding for a single property.
        "kind": "drive#property", # This is always drive#property.
        "value": "A String", # The value of this property.
        "etag": "A String", # ETag of the property.
        "visibility": "A String", # The visibility of this property.
        "key": "A String", # The key of this property.
        "selfLink": "A String", # The link back to this property.
      },
    ],
    "md5Checksum": "A String", # An MD5 checksum for the content of this file. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "iconLink": "A String", # A link to the file's icon.
    "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
    "embedLink": "A String", # A link for embedding the file.
    "alternateLink": "A String", # A link for opening the file in a relevant Google editor or viewer.
    "title": "A String", # The title of this file.
    "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
    "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
      "mimeType": "A String", # The MIME type of the thumbnail.
      "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to RFC 4648 section 5.
    },
    "downloadUrl": "A String",
    "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
      "withLink": True or False, # Whether the link is required for this permission.
      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
      "name": "A String", # The name for this permission.
      "kind": "drive#permission", # This is always drive#permission.
      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "authKey": "A String", # The authkey parameter required for this permission.
      "etag": "A String", # The ETag of the permission.
      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
      "photoLink": "A String", # A link to the profile photo, if available.
      "role": "A String", # The primary role for this user. Allowed values are:
          # - owner
          # - reader
          # - writer
      "type": "A String", # The account type. Allowed values are:
          # - user
          # - group
          # - domain
          # - anyone
      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
        "A String",
      ],
      "selfLink": "A String", # A link back to this permission.
    },
    "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
      "A String",
    ],
    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
    "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "selfLink": "A String", # A link back to this file.
    "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(orderBy=None, q=None, projection=None, pageToken=None, maxResults=None, spaces=None, corpus=None)</code>
  <pre>Lists the user's files.

Args:
  orderBy: string, A comma-separated list of sort keys. Valid keys are 'createdDate', 'folder', 'lastViewedByMeDate', 'modifiedByMeDate', 'modifiedDate', 'quotaBytesUsed', 'recency', 'sharedWithMeDate', 'starred', and 'title'. Each key sorts ascending by default, but may be reversed with the 'desc' modifier. Example usage: ?orderBy=folder,modifiedDate desc,title. 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, Query string for searching files.
  projection: string, This parameter is deprecated and has no function.
    Allowed values
      BASIC - Deprecated
      FULL - Deprecated
  pageToken: string, Page token for files.
  maxResults: integer, Maximum number of files to return.
  spaces: string, A comma-separated list of spaces to query. Supported values are 'drive', 'appDataFolder' and 'photos'.
  corpus: string, The body of items (files/documents) to which the query applies.
    Allowed values
      DEFAULT - The items that the user has accessed.
      DOMAIN - Items shared to the user's domain.

Returns:
  An object of the form:

    { # A list of files.
    "nextPageToken": "A String", # The page token for the next page of files.
    "kind": "drive#fileList", # This is always drive#fileList.
    "items": [ # The actual list of files.
      { # The metadata for a file.
        "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
        "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
        "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 requesting user.
        "appDataContents": True or False, # Whether this file is in the Application Data folder.
        "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours.
        "labels": { # A group of labels for the file.
          "restricted": True or False, # Whether viewers and commenters are prevented from downloading, printing, and copying this file.
          "hidden": True or False, # Deprecated.
          "viewed": True or False, # Whether this file has been viewed by this user.
          "starred": True or False, # Whether this file is starred by the user.
          "trashed": True or False, # Whether this file has been trashed. This label applies to all users accessing the file; however, only owners are allowed to see and untrash files.
        },
        "indexableText": { # Indexable text attributes for the file (can only be written)
          "text": "A String", # The text to be indexed for this file.
        },
        "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
        "lastModifyingUserName": "A String", # Name of the last user to modify this file.
        "writersCanShare": True or False, # Whether writers can share the document with other users.
        "owners": [ # The owner(s) of this file.
          { # The JSON template for a user.
            "picture": { # The user's profile picture.
              "url": "A String", # A URL that points to a profile picture of this user.
            },
            "kind": "drive#user", # This is always drive#user.
            "displayName": "A String", # A plain text displayable name for this user.
            "permissionId": "A String", # The user's ID as visible in the permissions collection.
            "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
            "emailAddress": "A String", # The email address of the user.
          },
        ],
        "ownedByMe": True or False, # Whether the file is owned by the current user.
        "id": "A String", # The ID of the file.
        "sharingUser": { # The JSON template for a user. # User that shared the item with the current user, if available.
          "picture": { # The user's profile picture.
            "url": "A String", # A URL that points to a profile picture of this user.
          },
          "kind": "drive#user", # This is always drive#user.
          "displayName": "A String", # A plain text displayable name for this user.
          "permissionId": "A String", # The user's ID as visible in the permissions collection.
          "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
          "emailAddress": "A String", # The email address of the user.
        },
        "videoMediaMetadata": { # Metadata about video media. This will only be present for video types.
          "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": { # The JSON template for a user. # The last user to modify this file.
          "picture": { # The user's profile picture.
            "url": "A String", # A URL that points to a profile picture of this user.
          },
          "kind": "drive#user", # This is always drive#user.
          "displayName": "A String", # A plain text displayable name for this user.
          "permissionId": "A String", # The user's ID as visible in the permissions collection.
          "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
          "emailAddress": "A String", # The email address of the user.
        },
        "copyable": True or False, # Whether the file can be copied by the current user.
        "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
        "markedViewedByMeDate": "A String", # Time this file was explicitly marked viewed by the user (formatted RFC 3339 timestamp).
        "ownerNames": [ # Name(s) of the owner(s) of this file.
          "A String",
        ],
        "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
        "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
        "etag": "A String", # ETag of the file.
        "parents": [ # Collection of parent folders which contain this file.
            # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
          { # A reference to a file's parent.
            "selfLink": "A String", # A link back to this reference.
            "kind": "drive#parentReference", # This is always drive#parentReference.
            "id": "A String", # The ID of the parent.
            "isRoot": True or False, # Whether or not the parent is the root folder.
            "parentLink": "A String", # A link to the parent.
          },
        ],
        "exportLinks": { # Links for exporting Google Docs to specific formats.
          "a_key": "A String", # A mapping from export format to URL
        },
        "shared": True or False, # Whether the file has been shared.
        "permissions": [ # The list of permissions for users with access to this file.
          { # A permission for a file.
            "withLink": True or False, # Whether the link is required for this permission.
            "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
            "name": "A String", # The name for this permission.
            "kind": "drive#permission", # This is always drive#permission.
            "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
            "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
            "authKey": "A String", # The authkey parameter required for this permission.
            "etag": "A String", # The ETag of the permission.
            "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
            "photoLink": "A String", # A link to the profile photo, if available.
            "role": "A String", # The primary role for this user. Allowed values are:
                # - owner
                # - reader
                # - writer
            "type": "A String", # The account type. Allowed values are:
                # - user
                # - group
                # - domain
                # - anyone
            "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
              "A String",
            ],
            "selfLink": "A String", # A link back to this permission.
          },
        ],
        "fullFileExtension": "A String", # The full file extension; extracted from the title. May contain multiple concatenated extensions, such as "tar.gz". Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
        "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
          "a_key": "A String",
        },
        "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
          "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).
          "isoSpeed": 42, # The ISO speed used to create the photo.
          "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.
          "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
          "width": 42, # The width of the image in pixels.
          "meteringMode": "A String", # The metering mode used to create the photo.
          "flashUsed": True or False, # Whether a flash was used to create the photo.
          "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.
        },
        "description": "A String", # A short description of the file.
        "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
        "editable": True or False, # Whether the file can be edited by the current user.
        "kind": "drive#file", # The type of file. This is always drive#file.
        "canComment": True or False, # Whether the current user can comment on the file.
        "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
        "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
        "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
        "properties": [ # The list of properties.
          { # A key-value pair attached to a file that is either public or private to an application.
              # The following limits apply to file properties:
              # - Maximum of 100 properties total per file
              # - Maximum of 30 private properties per app
              # - Maximum of 30 public properties
              # - Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding for a single property.
            "kind": "drive#property", # This is always drive#property.
            "value": "A String", # The value of this property.
            "etag": "A String", # ETag of the property.
            "visibility": "A String", # The visibility of this property.
            "key": "A String", # The key of this property.
            "selfLink": "A String", # The link back to this property.
          },
        ],
        "md5Checksum": "A String", # An MD5 checksum for the content of this file. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
        "iconLink": "A String", # A link to the file's icon.
        "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
        "embedLink": "A String", # A link for embedding the file.
        "alternateLink": "A String", # A link for opening the file in a relevant Google editor or viewer.
        "title": "A String", # The title of this file.
        "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
        "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
          "mimeType": "A String", # The MIME type of the thumbnail.
          "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to RFC 4648 section 5.
        },
        "downloadUrl": "A String",
        "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
          "withLink": True or False, # Whether the link is required for this permission.
          "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
          "name": "A String", # The name for this permission.
          "kind": "drive#permission", # This is always drive#permission.
          "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
          "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
          "authKey": "A String", # The authkey parameter required for this permission.
          "etag": "A String", # The ETag of the permission.
          "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
          "photoLink": "A String", # A link to the profile photo, if available.
          "role": "A String", # The primary role for this user. Allowed values are:
              # - owner
              # - reader
              # - writer
          "type": "A String", # The account type. Allowed values are:
              # - user
              # - group
              # - domain
              # - anyone
          "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
            "A String",
          ],
          "selfLink": "A String", # A link back to this permission.
        },
        "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
          "A String",
        ],
        "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
        "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
        "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
        "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
        "selfLink": "A String", # A link back to this file.
        "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
      },
    ],
    "nextLink": "A String", # A link to the next page of files.
    "etag": "A String", # The ETag of the list.
    "selfLink": "A String", # A link back to this list.
  }</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="patch">patch(fileId, body, newRevision=None, modifiedDateBehavior=None, pinned=None, ocrLanguage=None, ocr=None, addParents=None, removeParents=None, updateViewedDate=None, timedTextTrackName=None, convert=None, useContentAsIndexableText=None, setModifiedDate=None, timedTextLanguage=None)</code>
  <pre>Updates file metadata and/or content. This method supports patch semantics.

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

{ # The metadata for a file.
  "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
  "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
  "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 requesting user.
  "appDataContents": True or False, # Whether this file is in the Application Data folder.
  "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours.
  "labels": { # A group of labels for the file.
    "restricted": True or False, # Whether viewers and commenters are prevented from downloading, printing, and copying this file.
    "hidden": True or False, # Deprecated.
    "viewed": True or False, # Whether this file has been viewed by this user.
    "starred": True or False, # Whether this file is starred by the user.
    "trashed": True or False, # Whether this file has been trashed. This label applies to all users accessing the file; however, only owners are allowed to see and untrash files.
  },
  "indexableText": { # Indexable text attributes for the file (can only be written)
    "text": "A String", # The text to be indexed for this file.
  },
  "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
  "lastModifyingUserName": "A String", # Name of the last user to modify this file.
  "writersCanShare": True or False, # Whether writers can share the document with other users.
  "owners": [ # The owner(s) of this file.
    { # The JSON template for a user.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
  ],
  "ownedByMe": True or False, # Whether the file is owned by the current user.
  "id": "A String", # The ID of the file.
  "sharingUser": { # The JSON template for a user. # User that shared the item with the current user, if available.
    "picture": { # The user's profile picture.
      "url": "A String", # A URL that points to a profile picture of this user.
    },
    "kind": "drive#user", # This is always drive#user.
    "displayName": "A String", # A plain text displayable name for this user.
    "permissionId": "A String", # The user's ID as visible in the permissions collection.
    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
    "emailAddress": "A String", # The email address of the user.
  },
  "videoMediaMetadata": { # Metadata about video media. This will only be present for video types.
    "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": { # The JSON template for a user. # The last user to modify this file.
    "picture": { # The user's profile picture.
      "url": "A String", # A URL that points to a profile picture of this user.
    },
    "kind": "drive#user", # This is always drive#user.
    "displayName": "A String", # A plain text displayable name for this user.
    "permissionId": "A String", # The user's ID as visible in the permissions collection.
    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
    "emailAddress": "A String", # The email address of the user.
  },
  "copyable": True or False, # Whether the file can be copied by the current user.
  "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
  "markedViewedByMeDate": "A String", # Time this file was explicitly marked viewed by the user (formatted RFC 3339 timestamp).
  "ownerNames": [ # Name(s) of the owner(s) of this file.
    "A String",
  ],
  "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
  "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
  "etag": "A String", # ETag of the file.
  "parents": [ # Collection of parent folders which contain this file.
      # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
    { # A reference to a file's parent.
      "selfLink": "A String", # A link back to this reference.
      "kind": "drive#parentReference", # This is always drive#parentReference.
      "id": "A String", # The ID of the parent.
      "isRoot": True or False, # Whether or not the parent is the root folder.
      "parentLink": "A String", # A link to the parent.
    },
  ],
  "exportLinks": { # Links for exporting Google Docs to specific formats.
    "a_key": "A String", # A mapping from export format to URL
  },
  "shared": True or False, # Whether the file has been shared.
  "permissions": [ # The list of permissions for users with access to this file.
    { # A permission for a file.
      "withLink": True or False, # Whether the link is required for this permission.
      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
      "name": "A String", # The name for this permission.
      "kind": "drive#permission", # This is always drive#permission.
      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "authKey": "A String", # The authkey parameter required for this permission.
      "etag": "A String", # The ETag of the permission.
      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
      "photoLink": "A String", # A link to the profile photo, if available.
      "role": "A String", # The primary role for this user. Allowed values are:
          # - owner
          # - reader
          # - writer
      "type": "A String", # The account type. Allowed values are:
          # - user
          # - group
          # - domain
          # - anyone
      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
        "A String",
      ],
      "selfLink": "A String", # A link back to this permission.
    },
  ],
  "fullFileExtension": "A String", # The full file extension; extracted from the title. May contain multiple concatenated extensions, such as "tar.gz". Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
    "a_key": "A String",
  },
  "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
    "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).
    "isoSpeed": 42, # The ISO speed used to create the photo.
    "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.
    "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
    "width": 42, # The width of the image in pixels.
    "meteringMode": "A String", # The metering mode used to create the photo.
    "flashUsed": True or False, # Whether a flash was used to create the photo.
    "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.
  },
  "description": "A String", # A short description of the file.
  "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
  "editable": True or False, # Whether the file can be edited by the current user.
  "kind": "drive#file", # The type of file. This is always drive#file.
  "canComment": True or False, # Whether the current user can comment on the file.
  "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
  "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
  "properties": [ # The list of properties.
    { # A key-value pair attached to a file that is either public or private to an application.
        # The following limits apply to file properties:
        # - Maximum of 100 properties total per file
        # - Maximum of 30 private properties per app
        # - Maximum of 30 public properties
        # - Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding for a single property.
      "kind": "drive#property", # This is always drive#property.
      "value": "A String", # The value of this property.
      "etag": "A String", # ETag of the property.
      "visibility": "A String", # The visibility of this property.
      "key": "A String", # The key of this property.
      "selfLink": "A String", # The link back to this property.
    },
  ],
  "md5Checksum": "A String", # An MD5 checksum for the content of this file. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "iconLink": "A String", # A link to the file's icon.
  "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
  "embedLink": "A String", # A link for embedding the file.
  "alternateLink": "A String", # A link for opening the file in a relevant Google editor or viewer.
  "title": "A String", # The title of this file.
  "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
  "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
    "mimeType": "A String", # The MIME type of the thumbnail.
    "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to RFC 4648 section 5.
  },
  "downloadUrl": "A String",
  "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
    "withLink": True or False, # Whether the link is required for this permission.
    "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
    "name": "A String", # The name for this permission.
    "kind": "drive#permission", # This is always drive#permission.
    "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
    "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
    "authKey": "A String", # The authkey parameter required for this permission.
    "etag": "A String", # The ETag of the permission.
    "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
    "photoLink": "A String", # A link to the profile photo, if available.
    "role": "A String", # The primary role for this user. Allowed values are:
        # - owner
        # - reader
        # - writer
    "type": "A String", # The account type. Allowed values are:
        # - user
        # - group
        # - domain
        # - anyone
    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
      "A String",
    ],
    "selfLink": "A String", # A link back to this permission.
  },
  "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
    "A String",
  ],
  "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
  "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "selfLink": "A String", # A link back to this file.
  "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
}

  newRevision: boolean, Whether a blob upload should create a new revision. If false, the blob data in the current head revision is replaced. If true or not set, a new blob is created as head revision, and previous unpinned revisions are preserved for a short period of time. Pinned revisions are stored indefinitely, using additional storage quota, up to a maximum of 200 revisions. For details on how revisions are retained, see the Drive Help Center.
  modifiedDateBehavior: string, Determines the behavior in which modifiedDate is updated. This overrides setModifiedDate.
    Allowed values
      fromBody - Set modifiedDate to the value provided in the body of the request. No change if no value was provided.
      fromBodyIfNeeded - Set modifiedDate to the value provided in the body of the request depending on other contents of the update.
      fromBodyOrNow - Set modifiedDate to the value provided in the body of the request, or to the current time if no value was provided.
      noChange - Maintain the previous value of modifiedDate.
      now - Set modifiedDate to the current time.
      nowIfNeeded - Set modifiedDate to the current time depending on contents of the update.
  pinned: boolean, Whether to pin the new revision. A file can have a maximum of 200 pinned revisions.
  ocrLanguage: string, If ocr is true, hints at the language to use. Valid values are BCP 47 codes.
  ocr: boolean, Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads.
  addParents: string, Comma-separated list of parent IDs to add.
  removeParents: string, Comma-separated list of parent IDs to remove.
  updateViewedDate: boolean, Whether to update the view date after successfully updating the file.
  timedTextTrackName: string, The timed text track name.
  convert: boolean, This parameter is deprecated and has no function.
  useContentAsIndexableText: boolean, Whether to use the content as indexable text.
  setModifiedDate: boolean, Whether to set the modified date with the supplied modified date.
  timedTextLanguage: string, The language of the timed text.

Returns:
  An object of the form:

    { # The metadata for a file.
    "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
    "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
    "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 requesting user.
    "appDataContents": True or False, # Whether this file is in the Application Data folder.
    "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours.
    "labels": { # A group of labels for the file.
      "restricted": True or False, # Whether viewers and commenters are prevented from downloading, printing, and copying this file.
      "hidden": True or False, # Deprecated.
      "viewed": True or False, # Whether this file has been viewed by this user.
      "starred": True or False, # Whether this file is starred by the user.
      "trashed": True or False, # Whether this file has been trashed. This label applies to all users accessing the file; however, only owners are allowed to see and untrash files.
    },
    "indexableText": { # Indexable text attributes for the file (can only be written)
      "text": "A String", # The text to be indexed for this file.
    },
    "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
    "lastModifyingUserName": "A String", # Name of the last user to modify this file.
    "writersCanShare": True or False, # Whether writers can share the document with other users.
    "owners": [ # The owner(s) of this file.
      { # The JSON template for a user.
        "picture": { # The user's profile picture.
          "url": "A String", # A URL that points to a profile picture of this user.
        },
        "kind": "drive#user", # This is always drive#user.
        "displayName": "A String", # A plain text displayable name for this user.
        "permissionId": "A String", # The user's ID as visible in the permissions collection.
        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
        "emailAddress": "A String", # The email address of the user.
      },
    ],
    "ownedByMe": True or False, # Whether the file is owned by the current user.
    "id": "A String", # The ID of the file.
    "sharingUser": { # The JSON template for a user. # User that shared the item with the current user, if available.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
    "videoMediaMetadata": { # Metadata about video media. This will only be present for video types.
      "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": { # The JSON template for a user. # The last user to modify this file.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
    "copyable": True or False, # Whether the file can be copied by the current user.
    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
    "markedViewedByMeDate": "A String", # Time this file was explicitly marked viewed by the user (formatted RFC 3339 timestamp).
    "ownerNames": [ # Name(s) of the owner(s) of this file.
      "A String",
    ],
    "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
    "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
    "etag": "A String", # ETag of the file.
    "parents": [ # Collection of parent folders which contain this file.
        # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
      { # A reference to a file's parent.
        "selfLink": "A String", # A link back to this reference.
        "kind": "drive#parentReference", # This is always drive#parentReference.
        "id": "A String", # The ID of the parent.
        "isRoot": True or False, # Whether or not the parent is the root folder.
        "parentLink": "A String", # A link to the parent.
      },
    ],
    "exportLinks": { # Links for exporting Google Docs to specific formats.
      "a_key": "A String", # A mapping from export format to URL
    },
    "shared": True or False, # Whether the file has been shared.
    "permissions": [ # The list of permissions for users with access to this file.
      { # A permission for a file.
        "withLink": True or False, # Whether the link is required for this permission.
        "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
        "name": "A String", # The name for this permission.
        "kind": "drive#permission", # This is always drive#permission.
        "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
        "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
        "authKey": "A String", # The authkey parameter required for this permission.
        "etag": "A String", # The ETag of the permission.
        "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
        "photoLink": "A String", # A link to the profile photo, if available.
        "role": "A String", # The primary role for this user. Allowed values are:
            # - owner
            # - reader
            # - writer
        "type": "A String", # The account type. Allowed values are:
            # - user
            # - group
            # - domain
            # - anyone
        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
          "A String",
        ],
        "selfLink": "A String", # A link back to this permission.
      },
    ],
    "fullFileExtension": "A String", # The full file extension; extracted from the title. May contain multiple concatenated extensions, such as "tar.gz". Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
      "a_key": "A String",
    },
    "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
      "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).
      "isoSpeed": 42, # The ISO speed used to create the photo.
      "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.
      "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
      "width": 42, # The width of the image in pixels.
      "meteringMode": "A String", # The metering mode used to create the photo.
      "flashUsed": True or False, # Whether a flash was used to create the photo.
      "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.
    },
    "description": "A String", # A short description of the file.
    "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
    "editable": True or False, # Whether the file can be edited by the current user.
    "kind": "drive#file", # The type of file. This is always drive#file.
    "canComment": True or False, # Whether the current user can comment on the file.
    "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
    "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
    "properties": [ # The list of properties.
      { # A key-value pair attached to a file that is either public or private to an application.
          # The following limits apply to file properties:
          # - Maximum of 100 properties total per file
          # - Maximum of 30 private properties per app
          # - Maximum of 30 public properties
          # - Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding for a single property.
        "kind": "drive#property", # This is always drive#property.
        "value": "A String", # The value of this property.
        "etag": "A String", # ETag of the property.
        "visibility": "A String", # The visibility of this property.
        "key": "A String", # The key of this property.
        "selfLink": "A String", # The link back to this property.
      },
    ],
    "md5Checksum": "A String", # An MD5 checksum for the content of this file. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "iconLink": "A String", # A link to the file's icon.
    "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
    "embedLink": "A String", # A link for embedding the file.
    "alternateLink": "A String", # A link for opening the file in a relevant Google editor or viewer.
    "title": "A String", # The title of this file.
    "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
    "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
      "mimeType": "A String", # The MIME type of the thumbnail.
      "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to RFC 4648 section 5.
    },
    "downloadUrl": "A String",
    "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
      "withLink": True or False, # Whether the link is required for this permission.
      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
      "name": "A String", # The name for this permission.
      "kind": "drive#permission", # This is always drive#permission.
      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "authKey": "A String", # The authkey parameter required for this permission.
      "etag": "A String", # The ETag of the permission.
      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
      "photoLink": "A String", # A link to the profile photo, if available.
      "role": "A String", # The primary role for this user. Allowed values are:
          # - owner
          # - reader
          # - writer
      "type": "A String", # The account type. Allowed values are:
          # - user
          # - group
          # - domain
          # - anyone
      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
        "A String",
      ],
      "selfLink": "A String", # A link back to this permission.
    },
    "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
      "A String",
    ],
    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
    "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "selfLink": "A String", # A link back to this file.
    "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
  }</pre>
</div>

<div class="method">
    <code class="details" id="touch">touch(fileId)</code>
  <pre>Set the file's updated time to the current server time.

Args:
  fileId: string, The ID of the file to update. (required)

Returns:
  An object of the form:

    { # The metadata for a file.
    "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
    "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
    "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 requesting user.
    "appDataContents": True or False, # Whether this file is in the Application Data folder.
    "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours.
    "labels": { # A group of labels for the file.
      "restricted": True or False, # Whether viewers and commenters are prevented from downloading, printing, and copying this file.
      "hidden": True or False, # Deprecated.
      "viewed": True or False, # Whether this file has been viewed by this user.
      "starred": True or False, # Whether this file is starred by the user.
      "trashed": True or False, # Whether this file has been trashed. This label applies to all users accessing the file; however, only owners are allowed to see and untrash files.
    },
    "indexableText": { # Indexable text attributes for the file (can only be written)
      "text": "A String", # The text to be indexed for this file.
    },
    "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
    "lastModifyingUserName": "A String", # Name of the last user to modify this file.
    "writersCanShare": True or False, # Whether writers can share the document with other users.
    "owners": [ # The owner(s) of this file.
      { # The JSON template for a user.
        "picture": { # The user's profile picture.
          "url": "A String", # A URL that points to a profile picture of this user.
        },
        "kind": "drive#user", # This is always drive#user.
        "displayName": "A String", # A plain text displayable name for this user.
        "permissionId": "A String", # The user's ID as visible in the permissions collection.
        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
        "emailAddress": "A String", # The email address of the user.
      },
    ],
    "ownedByMe": True or False, # Whether the file is owned by the current user.
    "id": "A String", # The ID of the file.
    "sharingUser": { # The JSON template for a user. # User that shared the item with the current user, if available.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
    "videoMediaMetadata": { # Metadata about video media. This will only be present for video types.
      "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": { # The JSON template for a user. # The last user to modify this file.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
    "copyable": True or False, # Whether the file can be copied by the current user.
    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
    "markedViewedByMeDate": "A String", # Time this file was explicitly marked viewed by the user (formatted RFC 3339 timestamp).
    "ownerNames": [ # Name(s) of the owner(s) of this file.
      "A String",
    ],
    "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
    "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
    "etag": "A String", # ETag of the file.
    "parents": [ # Collection of parent folders which contain this file.
        # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
      { # A reference to a file's parent.
        "selfLink": "A String", # A link back to this reference.
        "kind": "drive#parentReference", # This is always drive#parentReference.
        "id": "A String", # The ID of the parent.
        "isRoot": True or False, # Whether or not the parent is the root folder.
        "parentLink": "A String", # A link to the parent.
      },
    ],
    "exportLinks": { # Links for exporting Google Docs to specific formats.
      "a_key": "A String", # A mapping from export format to URL
    },
    "shared": True or False, # Whether the file has been shared.
    "permissions": [ # The list of permissions for users with access to this file.
      { # A permission for a file.
        "withLink": True or False, # Whether the link is required for this permission.
        "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
        "name": "A String", # The name for this permission.
        "kind": "drive#permission", # This is always drive#permission.
        "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
        "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
        "authKey": "A String", # The authkey parameter required for this permission.
        "etag": "A String", # The ETag of the permission.
        "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
        "photoLink": "A String", # A link to the profile photo, if available.
        "role": "A String", # The primary role for this user. Allowed values are:
            # - owner
            # - reader
            # - writer
        "type": "A String", # The account type. Allowed values are:
            # - user
            # - group
            # - domain
            # - anyone
        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
          "A String",
        ],
        "selfLink": "A String", # A link back to this permission.
      },
    ],
    "fullFileExtension": "A String", # The full file extension; extracted from the title. May contain multiple concatenated extensions, such as "tar.gz". Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
      "a_key": "A String",
    },
    "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
      "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).
      "isoSpeed": 42, # The ISO speed used to create the photo.
      "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.
      "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
      "width": 42, # The width of the image in pixels.
      "meteringMode": "A String", # The metering mode used to create the photo.
      "flashUsed": True or False, # Whether a flash was used to create the photo.
      "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.
    },
    "description": "A String", # A short description of the file.
    "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
    "editable": True or False, # Whether the file can be edited by the current user.
    "kind": "drive#file", # The type of file. This is always drive#file.
    "canComment": True or False, # Whether the current user can comment on the file.
    "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
    "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
    "properties": [ # The list of properties.
      { # A key-value pair attached to a file that is either public or private to an application.
          # The following limits apply to file properties:
          # - Maximum of 100 properties total per file
          # - Maximum of 30 private properties per app
          # - Maximum of 30 public properties
          # - Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding for a single property.
        "kind": "drive#property", # This is always drive#property.
        "value": "A String", # The value of this property.
        "etag": "A String", # ETag of the property.
        "visibility": "A String", # The visibility of this property.
        "key": "A String", # The key of this property.
        "selfLink": "A String", # The link back to this property.
      },
    ],
    "md5Checksum": "A String", # An MD5 checksum for the content of this file. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "iconLink": "A String", # A link to the file's icon.
    "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
    "embedLink": "A String", # A link for embedding the file.
    "alternateLink": "A String", # A link for opening the file in a relevant Google editor or viewer.
    "title": "A String", # The title of this file.
    "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
    "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
      "mimeType": "A String", # The MIME type of the thumbnail.
      "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to RFC 4648 section 5.
    },
    "downloadUrl": "A String",
    "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
      "withLink": True or False, # Whether the link is required for this permission.
      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
      "name": "A String", # The name for this permission.
      "kind": "drive#permission", # This is always drive#permission.
      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "authKey": "A String", # The authkey parameter required for this permission.
      "etag": "A String", # The ETag of the permission.
      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
      "photoLink": "A String", # A link to the profile photo, if available.
      "role": "A String", # The primary role for this user. Allowed values are:
          # - owner
          # - reader
          # - writer
      "type": "A String", # The account type. Allowed values are:
          # - user
          # - group
          # - domain
          # - anyone
      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
        "A String",
      ],
      "selfLink": "A String", # A link back to this permission.
    },
    "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
      "A String",
    ],
    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
    "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "selfLink": "A String", # A link back to this file.
    "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
  }</pre>
</div>

<div class="method">
    <code class="details" id="trash">trash(fileId)</code>
  <pre>Moves a file to the trash. The currently authenticated user must own the file.

Args:
  fileId: string, The ID of the file to trash. (required)

Returns:
  An object of the form:

    { # The metadata for a file.
    "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
    "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
    "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 requesting user.
    "appDataContents": True or False, # Whether this file is in the Application Data folder.
    "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours.
    "labels": { # A group of labels for the file.
      "restricted": True or False, # Whether viewers and commenters are prevented from downloading, printing, and copying this file.
      "hidden": True or False, # Deprecated.
      "viewed": True or False, # Whether this file has been viewed by this user.
      "starred": True or False, # Whether this file is starred by the user.
      "trashed": True or False, # Whether this file has been trashed. This label applies to all users accessing the file; however, only owners are allowed to see and untrash files.
    },
    "indexableText": { # Indexable text attributes for the file (can only be written)
      "text": "A String", # The text to be indexed for this file.
    },
    "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
    "lastModifyingUserName": "A String", # Name of the last user to modify this file.
    "writersCanShare": True or False, # Whether writers can share the document with other users.
    "owners": [ # The owner(s) of this file.
      { # The JSON template for a user.
        "picture": { # The user's profile picture.
          "url": "A String", # A URL that points to a profile picture of this user.
        },
        "kind": "drive#user", # This is always drive#user.
        "displayName": "A String", # A plain text displayable name for this user.
        "permissionId": "A String", # The user's ID as visible in the permissions collection.
        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
        "emailAddress": "A String", # The email address of the user.
      },
    ],
    "ownedByMe": True or False, # Whether the file is owned by the current user.
    "id": "A String", # The ID of the file.
    "sharingUser": { # The JSON template for a user. # User that shared the item with the current user, if available.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
    "videoMediaMetadata": { # Metadata about video media. This will only be present for video types.
      "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": { # The JSON template for a user. # The last user to modify this file.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
    "copyable": True or False, # Whether the file can be copied by the current user.
    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
    "markedViewedByMeDate": "A String", # Time this file was explicitly marked viewed by the user (formatted RFC 3339 timestamp).
    "ownerNames": [ # Name(s) of the owner(s) of this file.
      "A String",
    ],
    "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
    "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
    "etag": "A String", # ETag of the file.
    "parents": [ # Collection of parent folders which contain this file.
        # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
      { # A reference to a file's parent.
        "selfLink": "A String", # A link back to this reference.
        "kind": "drive#parentReference", # This is always drive#parentReference.
        "id": "A String", # The ID of the parent.
        "isRoot": True or False, # Whether or not the parent is the root folder.
        "parentLink": "A String", # A link to the parent.
      },
    ],
    "exportLinks": { # Links for exporting Google Docs to specific formats.
      "a_key": "A String", # A mapping from export format to URL
    },
    "shared": True or False, # Whether the file has been shared.
    "permissions": [ # The list of permissions for users with access to this file.
      { # A permission for a file.
        "withLink": True or False, # Whether the link is required for this permission.
        "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
        "name": "A String", # The name for this permission.
        "kind": "drive#permission", # This is always drive#permission.
        "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
        "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
        "authKey": "A String", # The authkey parameter required for this permission.
        "etag": "A String", # The ETag of the permission.
        "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
        "photoLink": "A String", # A link to the profile photo, if available.
        "role": "A String", # The primary role for this user. Allowed values are:
            # - owner
            # - reader
            # - writer
        "type": "A String", # The account type. Allowed values are:
            # - user
            # - group
            # - domain
            # - anyone
        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
          "A String",
        ],
        "selfLink": "A String", # A link back to this permission.
      },
    ],
    "fullFileExtension": "A String", # The full file extension; extracted from the title. May contain multiple concatenated extensions, such as "tar.gz". Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
      "a_key": "A String",
    },
    "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
      "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).
      "isoSpeed": 42, # The ISO speed used to create the photo.
      "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.
      "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
      "width": 42, # The width of the image in pixels.
      "meteringMode": "A String", # The metering mode used to create the photo.
      "flashUsed": True or False, # Whether a flash was used to create the photo.
      "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.
    },
    "description": "A String", # A short description of the file.
    "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
    "editable": True or False, # Whether the file can be edited by the current user.
    "kind": "drive#file", # The type of file. This is always drive#file.
    "canComment": True or False, # Whether the current user can comment on the file.
    "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
    "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
    "properties": [ # The list of properties.
      { # A key-value pair attached to a file that is either public or private to an application.
          # The following limits apply to file properties:
          # - Maximum of 100 properties total per file
          # - Maximum of 30 private properties per app
          # - Maximum of 30 public properties
          # - Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding for a single property.
        "kind": "drive#property", # This is always drive#property.
        "value": "A String", # The value of this property.
        "etag": "A String", # ETag of the property.
        "visibility": "A String", # The visibility of this property.
        "key": "A String", # The key of this property.
        "selfLink": "A String", # The link back to this property.
      },
    ],
    "md5Checksum": "A String", # An MD5 checksum for the content of this file. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "iconLink": "A String", # A link to the file's icon.
    "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
    "embedLink": "A String", # A link for embedding the file.
    "alternateLink": "A String", # A link for opening the file in a relevant Google editor or viewer.
    "title": "A String", # The title of this file.
    "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
    "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
      "mimeType": "A String", # The MIME type of the thumbnail.
      "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to RFC 4648 section 5.
    },
    "downloadUrl": "A String",
    "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
      "withLink": True or False, # Whether the link is required for this permission.
      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
      "name": "A String", # The name for this permission.
      "kind": "drive#permission", # This is always drive#permission.
      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "authKey": "A String", # The authkey parameter required for this permission.
      "etag": "A String", # The ETag of the permission.
      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
      "photoLink": "A String", # A link to the profile photo, if available.
      "role": "A String", # The primary role for this user. Allowed values are:
          # - owner
          # - reader
          # - writer
      "type": "A String", # The account type. Allowed values are:
          # - user
          # - group
          # - domain
          # - anyone
      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
        "A String",
      ],
      "selfLink": "A String", # A link back to this permission.
    },
    "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
      "A String",
    ],
    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
    "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "selfLink": "A String", # A link back to this file.
    "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
  }</pre>
</div>

<div class="method">
    <code class="details" id="untrash">untrash(fileId)</code>
  <pre>Restores a file from the trash.

Args:
  fileId: string, The ID of the file to untrash. (required)

Returns:
  An object of the form:

    { # The metadata for a file.
    "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
    "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
    "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 requesting user.
    "appDataContents": True or False, # Whether this file is in the Application Data folder.
    "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours.
    "labels": { # A group of labels for the file.
      "restricted": True or False, # Whether viewers and commenters are prevented from downloading, printing, and copying this file.
      "hidden": True or False, # Deprecated.
      "viewed": True or False, # Whether this file has been viewed by this user.
      "starred": True or False, # Whether this file is starred by the user.
      "trashed": True or False, # Whether this file has been trashed. This label applies to all users accessing the file; however, only owners are allowed to see and untrash files.
    },
    "indexableText": { # Indexable text attributes for the file (can only be written)
      "text": "A String", # The text to be indexed for this file.
    },
    "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
    "lastModifyingUserName": "A String", # Name of the last user to modify this file.
    "writersCanShare": True or False, # Whether writers can share the document with other users.
    "owners": [ # The owner(s) of this file.
      { # The JSON template for a user.
        "picture": { # The user's profile picture.
          "url": "A String", # A URL that points to a profile picture of this user.
        },
        "kind": "drive#user", # This is always drive#user.
        "displayName": "A String", # A plain text displayable name for this user.
        "permissionId": "A String", # The user's ID as visible in the permissions collection.
        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
        "emailAddress": "A String", # The email address of the user.
      },
    ],
    "ownedByMe": True or False, # Whether the file is owned by the current user.
    "id": "A String", # The ID of the file.
    "sharingUser": { # The JSON template for a user. # User that shared the item with the current user, if available.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
    "videoMediaMetadata": { # Metadata about video media. This will only be present for video types.
      "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": { # The JSON template for a user. # The last user to modify this file.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
    "copyable": True or False, # Whether the file can be copied by the current user.
    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
    "markedViewedByMeDate": "A String", # Time this file was explicitly marked viewed by the user (formatted RFC 3339 timestamp).
    "ownerNames": [ # Name(s) of the owner(s) of this file.
      "A String",
    ],
    "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
    "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
    "etag": "A String", # ETag of the file.
    "parents": [ # Collection of parent folders which contain this file.
        # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
      { # A reference to a file's parent.
        "selfLink": "A String", # A link back to this reference.
        "kind": "drive#parentReference", # This is always drive#parentReference.
        "id": "A String", # The ID of the parent.
        "isRoot": True or False, # Whether or not the parent is the root folder.
        "parentLink": "A String", # A link to the parent.
      },
    ],
    "exportLinks": { # Links for exporting Google Docs to specific formats.
      "a_key": "A String", # A mapping from export format to URL
    },
    "shared": True or False, # Whether the file has been shared.
    "permissions": [ # The list of permissions for users with access to this file.
      { # A permission for a file.
        "withLink": True or False, # Whether the link is required for this permission.
        "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
        "name": "A String", # The name for this permission.
        "kind": "drive#permission", # This is always drive#permission.
        "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
        "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
        "authKey": "A String", # The authkey parameter required for this permission.
        "etag": "A String", # The ETag of the permission.
        "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
        "photoLink": "A String", # A link to the profile photo, if available.
        "role": "A String", # The primary role for this user. Allowed values are:
            # - owner
            # - reader
            # - writer
        "type": "A String", # The account type. Allowed values are:
            # - user
            # - group
            # - domain
            # - anyone
        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
          "A String",
        ],
        "selfLink": "A String", # A link back to this permission.
      },
    ],
    "fullFileExtension": "A String", # The full file extension; extracted from the title. May contain multiple concatenated extensions, such as "tar.gz". Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
      "a_key": "A String",
    },
    "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
      "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).
      "isoSpeed": 42, # The ISO speed used to create the photo.
      "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.
      "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
      "width": 42, # The width of the image in pixels.
      "meteringMode": "A String", # The metering mode used to create the photo.
      "flashUsed": True or False, # Whether a flash was used to create the photo.
      "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.
    },
    "description": "A String", # A short description of the file.
    "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
    "editable": True or False, # Whether the file can be edited by the current user.
    "kind": "drive#file", # The type of file. This is always drive#file.
    "canComment": True or False, # Whether the current user can comment on the file.
    "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
    "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
    "properties": [ # The list of properties.
      { # A key-value pair attached to a file that is either public or private to an application.
          # The following limits apply to file properties:
          # - Maximum of 100 properties total per file
          # - Maximum of 30 private properties per app
          # - Maximum of 30 public properties
          # - Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding for a single property.
        "kind": "drive#property", # This is always drive#property.
        "value": "A String", # The value of this property.
        "etag": "A String", # ETag of the property.
        "visibility": "A String", # The visibility of this property.
        "key": "A String", # The key of this property.
        "selfLink": "A String", # The link back to this property.
      },
    ],
    "md5Checksum": "A String", # An MD5 checksum for the content of this file. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "iconLink": "A String", # A link to the file's icon.
    "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
    "embedLink": "A String", # A link for embedding the file.
    "alternateLink": "A String", # A link for opening the file in a relevant Google editor or viewer.
    "title": "A String", # The title of this file.
    "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
    "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
      "mimeType": "A String", # The MIME type of the thumbnail.
      "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to RFC 4648 section 5.
    },
    "downloadUrl": "A String",
    "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
      "withLink": True or False, # Whether the link is required for this permission.
      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
      "name": "A String", # The name for this permission.
      "kind": "drive#permission", # This is always drive#permission.
      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "authKey": "A String", # The authkey parameter required for this permission.
      "etag": "A String", # The ETag of the permission.
      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
      "photoLink": "A String", # A link to the profile photo, if available.
      "role": "A String", # The primary role for this user. Allowed values are:
          # - owner
          # - reader
          # - writer
      "type": "A String", # The account type. Allowed values are:
          # - user
          # - group
          # - domain
          # - anyone
      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
        "A String",
      ],
      "selfLink": "A String", # A link back to this permission.
    },
    "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
      "A String",
    ],
    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
    "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "selfLink": "A String", # A link back to this file.
    "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
  }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(fileId, body=None, newRevision=None, modifiedDateBehavior=None, media_body=None, ocrLanguage=None, ocr=None, pinned=None, addParents=None, removeParents=None, updateViewedDate=None, timedTextTrackName=None, convert=None, useContentAsIndexableText=None, setModifiedDate=None, timedTextLanguage=None)</code>
  <pre>Updates file metadata and/or content.

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

{ # The metadata for a file.
  "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
  "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
  "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 requesting user.
  "appDataContents": True or False, # Whether this file is in the Application Data folder.
  "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours.
  "labels": { # A group of labels for the file.
    "restricted": True or False, # Whether viewers and commenters are prevented from downloading, printing, and copying this file.
    "hidden": True or False, # Deprecated.
    "viewed": True or False, # Whether this file has been viewed by this user.
    "starred": True or False, # Whether this file is starred by the user.
    "trashed": True or False, # Whether this file has been trashed. This label applies to all users accessing the file; however, only owners are allowed to see and untrash files.
  },
  "indexableText": { # Indexable text attributes for the file (can only be written)
    "text": "A String", # The text to be indexed for this file.
  },
  "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
  "lastModifyingUserName": "A String", # Name of the last user to modify this file.
  "writersCanShare": True or False, # Whether writers can share the document with other users.
  "owners": [ # The owner(s) of this file.
    { # The JSON template for a user.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
  ],
  "ownedByMe": True or False, # Whether the file is owned by the current user.
  "id": "A String", # The ID of the file.
  "sharingUser": { # The JSON template for a user. # User that shared the item with the current user, if available.
    "picture": { # The user's profile picture.
      "url": "A String", # A URL that points to a profile picture of this user.
    },
    "kind": "drive#user", # This is always drive#user.
    "displayName": "A String", # A plain text displayable name for this user.
    "permissionId": "A String", # The user's ID as visible in the permissions collection.
    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
    "emailAddress": "A String", # The email address of the user.
  },
  "videoMediaMetadata": { # Metadata about video media. This will only be present for video types.
    "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": { # The JSON template for a user. # The last user to modify this file.
    "picture": { # The user's profile picture.
      "url": "A String", # A URL that points to a profile picture of this user.
    },
    "kind": "drive#user", # This is always drive#user.
    "displayName": "A String", # A plain text displayable name for this user.
    "permissionId": "A String", # The user's ID as visible in the permissions collection.
    "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
    "emailAddress": "A String", # The email address of the user.
  },
  "copyable": True or False, # Whether the file can be copied by the current user.
  "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
  "markedViewedByMeDate": "A String", # Time this file was explicitly marked viewed by the user (formatted RFC 3339 timestamp).
  "ownerNames": [ # Name(s) of the owner(s) of this file.
    "A String",
  ],
  "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
  "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
  "etag": "A String", # ETag of the file.
  "parents": [ # Collection of parent folders which contain this file.
      # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
    { # A reference to a file's parent.
      "selfLink": "A String", # A link back to this reference.
      "kind": "drive#parentReference", # This is always drive#parentReference.
      "id": "A String", # The ID of the parent.
      "isRoot": True or False, # Whether or not the parent is the root folder.
      "parentLink": "A String", # A link to the parent.
    },
  ],
  "exportLinks": { # Links for exporting Google Docs to specific formats.
    "a_key": "A String", # A mapping from export format to URL
  },
  "shared": True or False, # Whether the file has been shared.
  "permissions": [ # The list of permissions for users with access to this file.
    { # A permission for a file.
      "withLink": True or False, # Whether the link is required for this permission.
      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
      "name": "A String", # The name for this permission.
      "kind": "drive#permission", # This is always drive#permission.
      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "authKey": "A String", # The authkey parameter required for this permission.
      "etag": "A String", # The ETag of the permission.
      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
      "photoLink": "A String", # A link to the profile photo, if available.
      "role": "A String", # The primary role for this user. Allowed values are:
          # - owner
          # - reader
          # - writer
      "type": "A String", # The account type. Allowed values are:
          # - user
          # - group
          # - domain
          # - anyone
      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
        "A String",
      ],
      "selfLink": "A String", # A link back to this permission.
    },
  ],
  "fullFileExtension": "A String", # The full file extension; extracted from the title. May contain multiple concatenated extensions, such as "tar.gz". Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
    "a_key": "A String",
  },
  "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
    "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).
    "isoSpeed": 42, # The ISO speed used to create the photo.
    "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.
    "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
    "width": 42, # The width of the image in pixels.
    "meteringMode": "A String", # The metering mode used to create the photo.
    "flashUsed": True or False, # Whether a flash was used to create the photo.
    "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.
  },
  "description": "A String", # A short description of the file.
  "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
  "editable": True or False, # Whether the file can be edited by the current user.
  "kind": "drive#file", # The type of file. This is always drive#file.
  "canComment": True or False, # Whether the current user can comment on the file.
  "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
  "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
  "properties": [ # The list of properties.
    { # A key-value pair attached to a file that is either public or private to an application.
        # The following limits apply to file properties:
        # - Maximum of 100 properties total per file
        # - Maximum of 30 private properties per app
        # - Maximum of 30 public properties
        # - Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding for a single property.
      "kind": "drive#property", # This is always drive#property.
      "value": "A String", # The value of this property.
      "etag": "A String", # ETag of the property.
      "visibility": "A String", # The visibility of this property.
      "key": "A String", # The key of this property.
      "selfLink": "A String", # The link back to this property.
    },
  ],
  "md5Checksum": "A String", # An MD5 checksum for the content of this file. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "iconLink": "A String", # A link to the file's icon.
  "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
  "embedLink": "A String", # A link for embedding the file.
  "alternateLink": "A String", # A link for opening the file in a relevant Google editor or viewer.
  "title": "A String", # The title of this file.
  "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
  "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
    "mimeType": "A String", # The MIME type of the thumbnail.
    "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to RFC 4648 section 5.
  },
  "downloadUrl": "A String",
  "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
    "withLink": True or False, # Whether the link is required for this permission.
    "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
    "name": "A String", # The name for this permission.
    "kind": "drive#permission", # This is always drive#permission.
    "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
    "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
    "authKey": "A String", # The authkey parameter required for this permission.
    "etag": "A String", # The ETag of the permission.
    "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
    "photoLink": "A String", # A link to the profile photo, if available.
    "role": "A String", # The primary role for this user. Allowed values are:
        # - owner
        # - reader
        # - writer
    "type": "A String", # The account type. Allowed values are:
        # - user
        # - group
        # - domain
        # - anyone
    "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
      "A String",
    ],
    "selfLink": "A String", # A link back to this permission.
  },
  "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
    "A String",
  ],
  "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
  "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
  "selfLink": "A String", # A link back to this file.
  "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
}

  newRevision: boolean, Whether a blob upload should create a new revision. If false, the blob data in the current head revision is replaced. If true or not set, a new blob is created as head revision, and previous unpinned revisions are preserved for a short period of time. Pinned revisions are stored indefinitely, using additional storage quota, up to a maximum of 200 revisions. For details on how revisions are retained, see the Drive Help Center.
  modifiedDateBehavior: string, Determines the behavior in which modifiedDate is updated. This overrides setModifiedDate.
    Allowed values
      fromBody - Set modifiedDate to the value provided in the body of the request. No change if no value was provided.
      fromBodyIfNeeded - Set modifiedDate to the value provided in the body of the request depending on other contents of the update.
      fromBodyOrNow - Set modifiedDate to the value provided in the body of the request, or to the current time if no value was provided.
      noChange - Maintain the previous value of modifiedDate.
      now - Set modifiedDate to the current time.
      nowIfNeeded - Set modifiedDate to the current time depending on contents of the update.
  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
  ocrLanguage: string, If ocr is true, hints at the language to use. Valid values are BCP 47 codes.
  ocr: boolean, Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads.
  pinned: boolean, Whether to pin the new revision. A file can have a maximum of 200 pinned revisions.
  addParents: string, Comma-separated list of parent IDs to add.
  removeParents: string, Comma-separated list of parent IDs to remove.
  updateViewedDate: boolean, Whether to update the view date after successfully updating the file.
  timedTextTrackName: string, The timed text track name.
  convert: boolean, This parameter is deprecated and has no function.
  useContentAsIndexableText: boolean, Whether to use the content as indexable text.
  setModifiedDate: boolean, Whether to set the modified date with the supplied modified date.
  timedTextLanguage: string, The language of the timed text.

Returns:
  An object of the form:

    { # The metadata for a file.
    "mimeType": "A String", # The MIME type of the file. This is only mutable on update when uploading new content. This field can be left blank, and the mimetype will be determined from the uploaded content's MIME type.
    "lastViewedByMeDate": "A String", # Last time this file was viewed by the user (formatted RFC 3339 timestamp).
    "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 requesting user.
    "appDataContents": True or False, # Whether this file is in the Application Data folder.
    "thumbnailLink": "A String", # A short-lived link to the file's thumbnail. Typically lasts on the order of hours.
    "labels": { # A group of labels for the file.
      "restricted": True or False, # Whether viewers and commenters are prevented from downloading, printing, and copying this file.
      "hidden": True or False, # Deprecated.
      "viewed": True or False, # Whether this file has been viewed by this user.
      "starred": True or False, # Whether this file is starred by the user.
      "trashed": True or False, # Whether this file has been trashed. This label applies to all users accessing the file; however, only owners are allowed to see and untrash files.
    },
    "indexableText": { # Indexable text attributes for the file (can only be written)
      "text": "A String", # The text to be indexed for this file.
    },
    "explicitlyTrashed": True or False, # Whether this file has been explicitly trashed, as opposed to recursively trashed.
    "lastModifyingUserName": "A String", # Name of the last user to modify this file.
    "writersCanShare": True or False, # Whether writers can share the document with other users.
    "owners": [ # The owner(s) of this file.
      { # The JSON template for a user.
        "picture": { # The user's profile picture.
          "url": "A String", # A URL that points to a profile picture of this user.
        },
        "kind": "drive#user", # This is always drive#user.
        "displayName": "A String", # A plain text displayable name for this user.
        "permissionId": "A String", # The user's ID as visible in the permissions collection.
        "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
        "emailAddress": "A String", # The email address of the user.
      },
    ],
    "ownedByMe": True or False, # Whether the file is owned by the current user.
    "id": "A String", # The ID of the file.
    "sharingUser": { # The JSON template for a user. # User that shared the item with the current user, if available.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
    "videoMediaMetadata": { # Metadata about video media. This will only be present for video types.
      "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": { # The JSON template for a user. # The last user to modify this file.
      "picture": { # The user's profile picture.
        "url": "A String", # A URL that points to a profile picture of this user.
      },
      "kind": "drive#user", # This is always drive#user.
      "displayName": "A String", # A plain text displayable name for this user.
      "permissionId": "A String", # The user's ID as visible in the permissions collection.
      "isAuthenticatedUser": True or False, # Whether this user is the same as the authenticated user for whom the request was made.
      "emailAddress": "A String", # The email address of the user.
    },
    "copyable": True or False, # Whether the file can be copied by the current user.
    "folderColorRgb": "A String", # Folder color as an RGB hex string if the file is a folder. The list of supported colors is available in the folderColorPalette field of the About resource. If an unsupported color is specified, it will be changed to the closest color in the palette.
    "markedViewedByMeDate": "A String", # Time this file was explicitly marked viewed by the user (formatted RFC 3339 timestamp).
    "ownerNames": [ # Name(s) of the owner(s) of this file.
      "A String",
    ],
    "sharedWithMeDate": "A String", # Time at which this file was shared with the user (formatted RFC 3339 timestamp).
    "webViewLink": "A String", # A link only available on public folders for viewing their static web assets (HTML, CSS, JS, etc) via Google Drive's Website Hosting.
    "etag": "A String", # ETag of the file.
    "parents": [ # Collection of parent folders which contain this file.
        # Setting this field will put the file in all of the provided folders. On insert, if no folders are provided, the file will be placed in the default root folder.
      { # A reference to a file's parent.
        "selfLink": "A String", # A link back to this reference.
        "kind": "drive#parentReference", # This is always drive#parentReference.
        "id": "A String", # The ID of the parent.
        "isRoot": True or False, # Whether or not the parent is the root folder.
        "parentLink": "A String", # A link to the parent.
      },
    ],
    "exportLinks": { # Links for exporting Google Docs to specific formats.
      "a_key": "A String", # A mapping from export format to URL
    },
    "shared": True or False, # Whether the file has been shared.
    "permissions": [ # The list of permissions for users with access to this file.
      { # A permission for a file.
        "withLink": True or False, # Whether the link is required for this permission.
        "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
        "name": "A String", # The name for this permission.
        "kind": "drive#permission", # This is always drive#permission.
        "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
        "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
        "authKey": "A String", # The authkey parameter required for this permission.
        "etag": "A String", # The ETag of the permission.
        "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
        "photoLink": "A String", # A link to the profile photo, if available.
        "role": "A String", # The primary role for this user. Allowed values are:
            # - owner
            # - reader
            # - writer
        "type": "A String", # The account type. Allowed values are:
            # - user
            # - group
            # - domain
            # - anyone
        "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
          "A String",
        ],
        "selfLink": "A String", # A link back to this permission.
      },
    ],
    "fullFileExtension": "A String", # The full file extension; extracted from the title. May contain multiple concatenated extensions, such as "tar.gz". Removing an extension from the title does not clear this field; however, changing the extension on the title does update this field. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "openWithLinks": { # A map of the id of each of the user's apps to a link to open this file with that app. Only populated when the drive.apps.readonly scope is used.
      "a_key": "A String",
    },
    "imageMediaMetadata": { # Metadata about image media. This will only be present for image types, and its contents will depend on what can be parsed from the image content.
      "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).
      "isoSpeed": 42, # The ISO speed used to create the photo.
      "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.
      "date": "A String", # The date and time the photo was taken (EXIF format timestamp).
      "width": 42, # The width of the image in pixels.
      "meteringMode": "A String", # The metering mode used to create the photo.
      "flashUsed": True or False, # Whether a flash was used to create the photo.
      "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.
    },
    "description": "A String", # A short description of the file.
    "webContentLink": "A String", # A link for downloading the content of the file in a browser using cookie based authentication. In cases where the content is shared publicly, the content can be downloaded without any credentials.
    "editable": True or False, # Whether the file can be edited by the current user.
    "kind": "drive#file", # The type of file. This is always drive#file.
    "canComment": True or False, # Whether the current user can comment on the file.
    "quotaBytesUsed": "A String", # The number of quota bytes used by this file.
    "fileSize": "A String", # The size of the file in bytes. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "createdDate": "A String", # Create time for this file (formatted RFC 3339 timestamp).
    "properties": [ # The list of properties.
      { # A key-value pair attached to a file that is either public or private to an application.
          # The following limits apply to file properties:
          # - Maximum of 100 properties total per file
          # - Maximum of 30 private properties per app
          # - Maximum of 30 public properties
          # - Maximum of 124 bytes size limit on (key + value) string in UTF-8 encoding for a single property.
        "kind": "drive#property", # This is always drive#property.
        "value": "A String", # The value of this property.
        "etag": "A String", # ETag of the property.
        "visibility": "A String", # The visibility of this property.
        "key": "A String", # The key of this property.
        "selfLink": "A String", # The link back to this property.
      },
    ],
    "md5Checksum": "A String", # An MD5 checksum for the content of this file. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "iconLink": "A String", # A link to the file's icon.
    "defaultOpenWithLink": "A String", # A link to open this file with the user's default app for this file. Only populated when the drive.apps.readonly scope is used.
    "embedLink": "A String", # A link for embedding the file.
    "alternateLink": "A String", # A link for opening the file in a relevant Google editor or viewer.
    "title": "A String", # The title of this file.
    "modifiedByMeDate": "A String", # Last time this file was modified by the user (formatted RFC 3339 timestamp). Note that setting modifiedDate will also update the modifiedByMe date for the user which set the date.
    "thumbnail": { # Thumbnail for the file. Only accepted on upload and for files that are not already thumbnailed by Google.
      "mimeType": "A String", # The MIME type of the thumbnail.
      "image": "A String", # The URL-safe Base64 encoded bytes of the thumbnail image. It should conform to RFC 4648 section 5.
    },
    "downloadUrl": "A String",
    "userPermission": { # A permission for a file. # The permissions for the authenticated user on this file.
      "withLink": True or False, # Whether the link is required for this permission.
      "domain": "A String", # The domain name of the entity this permission refers to. This is an output-only field which is present when the permission type is user, group or domain.
      "name": "A String", # The name for this permission.
      "kind": "drive#permission", # This is always drive#permission.
      "value": "A String", # The email address or domain name for the entity. This is used during inserts and is not populated in responses. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "id": "A String", # The ID of the user this permission refers to, and identical to the permissionId in the About and Files resources. When making a drive.permissions.insert request, exactly one of the id or value fields must be specified.
      "authKey": "A String", # The authkey parameter required for this permission.
      "etag": "A String", # The ETag of the permission.
      "emailAddress": "A String", # The email address of the user or group this permission refers to. This is an output-only field which is present when the permission type is user or group.
      "photoLink": "A String", # A link to the profile photo, if available.
      "role": "A String", # The primary role for this user. Allowed values are:
          # - owner
          # - reader
          # - writer
      "type": "A String", # The account type. Allowed values are:
          # - user
          # - group
          # - domain
          # - anyone
      "additionalRoles": [ # Additional roles for this user. Only commenter is currently allowed.
        "A String",
      ],
      "selfLink": "A String", # A link back to this permission.
    },
    "spaces": [ # The list of spaces which contain the file. Supported values are 'drive', 'appDataFolder' and 'photos'.
      "A String",
    ],
    "shareable": True or False, # Whether the file's sharing settings can be modified by the current user.
    "originalFilename": "A String", # The original filename if the file was uploaded manually, or the original title if the file was inserted through the API. Note that renames of the title will not change the original filename. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "fileExtension": "A String", # The final component of fullFileExtension with trailing text that does not appear to be part of the extension removed. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "headRevisionId": "A String", # The ID of the file's head revision. This field is only populated for files with content stored in Drive; it is not populated for Google Docs or shortcut files.
    "selfLink": "A String", # A link back to this file.
    "modifiedDate": "A String", # Last time this file was modified by anyone (formatted RFC 3339 timestamp). This is only mutable on update when the setModifiedDate parameter is set.
  }</pre>
</div>

<div class="method">
    <code class="details" id="watch">watch(fileId, body, projection=None, revisionId=None, acknowledgeAbuse=None, updateViewedDate=None)</code>
  <pre>Subscribe to changes on a file

Args:
  fileId: string, The ID for the file in question. (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.
  }

  projection: string, This parameter is deprecated and has no function.
    Allowed values
      BASIC - Deprecated
      FULL - Deprecated
  revisionId: string, Specifies the Revision ID that should be downloaded. Ignored unless alt=media is specified.
  acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files.
  updateViewedDate: boolean, Whether to update the view date after successfully retrieving the file.

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, projection=None, revisionId=None, acknowledgeAbuse=None, updateViewedDate=None)</code>
  <pre>Subscribe to changes on a file

Args:
  fileId: string, The ID for the file in question. (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.
  }

  projection: string, This parameter is deprecated and has no function.
    Allowed values
      BASIC - Deprecated
      FULL - Deprecated
  revisionId: string, Specifies the Revision ID that should be downloaded. Ignored unless alt=media is specified.
  acknowledgeAbuse: boolean, Whether the user is acknowledging the risk of downloading known malware or other abusive files.
  updateViewedDate: boolean, Whether to update the view date after successfully retrieving the file.

Returns:
  The media object as a string.

    </pre>
</div>

</body></html>