<html><body>
<style>

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

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

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

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

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

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

pre {
  margin-top: 0.5em;
}

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

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

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

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

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

</style>

<h1><a href="drive_v3.html">Drive API</a> . <a href="drive_v3.revisions.html">revisions</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#delete">delete(fileId, revisionId)</a></code></p>
<p class="firstline">Permanently deletes a file version. You can only delete revisions for files with binary content in Google Drive, like images or videos. Revisions for other files, like Google Docs or Sheets, and the last remaining file version can't be deleted.</p>
<p class="toc_element">
  <code><a href="#get">get(fileId, revisionId, acknowledgeAbuse=None)</a></code></p>
<p class="firstline">Gets a revision's metadata or content by ID.</p>
<p class="toc_element">
  <code><a href="#get_media">get_media(fileId, revisionId, acknowledgeAbuse=None)</a></code></p>
<p class="firstline">Gets a revision's metadata or content by ID.</p>
<p class="toc_element">
  <code><a href="#list">list(fileId, pageSize=None, pageToken=None)</a></code></p>
<p class="firstline">Lists a file's revisions.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#update">update(fileId, revisionId, body=None)</a></code></p>
<p class="firstline">Updates a revision with patch semantics.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="delete">delete(fileId, revisionId)</code>
  <pre>Permanently deletes a file version. You can only delete revisions for files with binary content in Google Drive, like images or videos. Revisions for other files, like Google Docs or Sheets, and the last remaining file version can&#x27;t be deleted.

Args:
  fileId: string, The ID of the file. (required)
  revisionId: string, The ID of the revision. (required)
</pre>
</div>

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

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

Returns:
  An object of the form:

    { # The metadata for a revision to a file.
    &quot;exportLinks&quot;: { # Links for exporting Google Docs to specific formats.
      &quot;a_key&quot;: &quot;A String&quot;, # A mapping from export format to URL
    },
    &quot;id&quot;: &quot;A String&quot;, # The ID of the revision.
    &quot;keepForever&quot;: True or False, # Whether to keep this revision forever, even if it is no longer the head revision. If not set, the revision will be automatically purged 30 days after newer content is uploaded. This can be set on a maximum of 200 revisions for a file.
        # This field is only applicable to files with binary content in Drive.
    &quot;kind&quot;: &quot;drive#revision&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#revision&quot;.
    &quot;lastModifyingUser&quot;: { # Information about a Drive user. # The last user to modify this revision.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
    &quot;md5Checksum&quot;: &quot;A String&quot;, # The MD5 checksum of the revision&#x27;s content. This is only applicable to files with binary content in Drive.
    &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the revision.
    &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the revision was modified (RFC 3339 date-time).
    &quot;originalFilename&quot;: &quot;A String&quot;, # The original filename used to create this revision. This is only applicable to files with binary content in Drive.
    &quot;publishAuto&quot;: True or False, # Whether subsequent revisions will be automatically republished. This is only applicable to Google Docs.
    &quot;published&quot;: True or False, # Whether this revision is published. This is only applicable to Google Docs.
    &quot;publishedOutsideDomain&quot;: True or False, # Whether this revision is published outside the domain. This is only applicable to Google Docs.
    &quot;size&quot;: &quot;A String&quot;, # The size of the revision&#x27;s content in bytes. This is only applicable to files with binary content in Drive.
  }</pre>
</div>

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

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

Returns:
  The media object as a string.

    </pre>
</div>

<div class="method">
    <code class="details" id="list">list(fileId, pageSize=None, pageToken=None)</code>
  <pre>Lists a file&#x27;s revisions.

Args:
  fileId: string, The ID of the file. (required)
  pageSize: integer, The maximum number of revisions to return per page.
  pageToken: string, The token for continuing a previous list request on the next page. This should be set to the value of &#x27;nextPageToken&#x27; from the previous response.

Returns:
  An object of the form:

    { # A list of revisions of a file.
    &quot;kind&quot;: &quot;drive#revisionList&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#revisionList&quot;.
    &quot;nextPageToken&quot;: &quot;A String&quot;, # The page token for the next page of revisions. This will be absent if the end of the revisions list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results.
    &quot;revisions&quot;: [ # The list of revisions. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched.
      { # The metadata for a revision to a file.
        &quot;exportLinks&quot;: { # Links for exporting Google Docs to specific formats.
          &quot;a_key&quot;: &quot;A String&quot;, # A mapping from export format to URL
        },
        &quot;id&quot;: &quot;A String&quot;, # The ID of the revision.
        &quot;keepForever&quot;: True or False, # Whether to keep this revision forever, even if it is no longer the head revision. If not set, the revision will be automatically purged 30 days after newer content is uploaded. This can be set on a maximum of 200 revisions for a file.
            # This field is only applicable to files with binary content in Drive.
        &quot;kind&quot;: &quot;drive#revision&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#revision&quot;.
        &quot;lastModifyingUser&quot;: { # Information about a Drive user. # The last user to modify this revision.
          &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
          &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
          &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
          &quot;me&quot;: True or False, # Whether this user is the requesting user.
          &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
          &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
        },
        &quot;md5Checksum&quot;: &quot;A String&quot;, # The MD5 checksum of the revision&#x27;s content. This is only applicable to files with binary content in Drive.
        &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the revision.
        &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the revision was modified (RFC 3339 date-time).
        &quot;originalFilename&quot;: &quot;A String&quot;, # The original filename used to create this revision. This is only applicable to files with binary content in Drive.
        &quot;publishAuto&quot;: True or False, # Whether subsequent revisions will be automatically republished. This is only applicable to Google Docs.
        &quot;published&quot;: True or False, # Whether this revision is published. This is only applicable to Google Docs.
        &quot;publishedOutsideDomain&quot;: True or False, # Whether this revision is published outside the domain. This is only applicable to Google Docs.
        &quot;size&quot;: &quot;A String&quot;, # The size of the revision&#x27;s content in bytes. This is only applicable to files with binary content in Drive.
      },
    ],
  }</pre>
</div>

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

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

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

<div class="method">
    <code class="details" id="update">update(fileId, revisionId, body=None)</code>
  <pre>Updates a revision with patch semantics.

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

{ # The metadata for a revision to a file.
  &quot;exportLinks&quot;: { # Links for exporting Google Docs to specific formats.
    &quot;a_key&quot;: &quot;A String&quot;, # A mapping from export format to URL
  },
  &quot;id&quot;: &quot;A String&quot;, # The ID of the revision.
  &quot;keepForever&quot;: True or False, # Whether to keep this revision forever, even if it is no longer the head revision. If not set, the revision will be automatically purged 30 days after newer content is uploaded. This can be set on a maximum of 200 revisions for a file.
      # This field is only applicable to files with binary content in Drive.
  &quot;kind&quot;: &quot;drive#revision&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#revision&quot;.
  &quot;lastModifyingUser&quot;: { # Information about a Drive user. # The last user to modify this revision.
    &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
    &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
    &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
    &quot;me&quot;: True or False, # Whether this user is the requesting user.
    &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
    &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
  },
  &quot;md5Checksum&quot;: &quot;A String&quot;, # The MD5 checksum of the revision&#x27;s content. This is only applicable to files with binary content in Drive.
  &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the revision.
  &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the revision was modified (RFC 3339 date-time).
  &quot;originalFilename&quot;: &quot;A String&quot;, # The original filename used to create this revision. This is only applicable to files with binary content in Drive.
  &quot;publishAuto&quot;: True or False, # Whether subsequent revisions will be automatically republished. This is only applicable to Google Docs.
  &quot;published&quot;: True or False, # Whether this revision is published. This is only applicable to Google Docs.
  &quot;publishedOutsideDomain&quot;: True or False, # Whether this revision is published outside the domain. This is only applicable to Google Docs.
  &quot;size&quot;: &quot;A String&quot;, # The size of the revision&#x27;s content in bytes. This is only applicable to files with binary content in Drive.
}


Returns:
  An object of the form:

    { # The metadata for a revision to a file.
    &quot;exportLinks&quot;: { # Links for exporting Google Docs to specific formats.
      &quot;a_key&quot;: &quot;A String&quot;, # A mapping from export format to URL
    },
    &quot;id&quot;: &quot;A String&quot;, # The ID of the revision.
    &quot;keepForever&quot;: True or False, # Whether to keep this revision forever, even if it is no longer the head revision. If not set, the revision will be automatically purged 30 days after newer content is uploaded. This can be set on a maximum of 200 revisions for a file.
        # This field is only applicable to files with binary content in Drive.
    &quot;kind&quot;: &quot;drive#revision&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#revision&quot;.
    &quot;lastModifyingUser&quot;: { # Information about a Drive user. # The last user to modify this revision.
      &quot;displayName&quot;: &quot;A String&quot;, # A plain text displayable name for this user.
      &quot;emailAddress&quot;: &quot;A String&quot;, # The email address of the user. This may not be present in certain contexts if the user has not made their email address visible to the requester.
      &quot;kind&quot;: &quot;drive#user&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;drive#user&quot;.
      &quot;me&quot;: True or False, # Whether this user is the requesting user.
      &quot;permissionId&quot;: &quot;A String&quot;, # The user&#x27;s ID as visible in Permission resources.
      &quot;photoLink&quot;: &quot;A String&quot;, # A link to the user&#x27;s profile photo, if available.
    },
    &quot;md5Checksum&quot;: &quot;A String&quot;, # The MD5 checksum of the revision&#x27;s content. This is only applicable to files with binary content in Drive.
    &quot;mimeType&quot;: &quot;A String&quot;, # The MIME type of the revision.
    &quot;modifiedTime&quot;: &quot;A String&quot;, # The last time the revision was modified (RFC 3339 date-time).
    &quot;originalFilename&quot;: &quot;A String&quot;, # The original filename used to create this revision. This is only applicable to files with binary content in Drive.
    &quot;publishAuto&quot;: True or False, # Whether subsequent revisions will be automatically republished. This is only applicable to Google Docs.
    &quot;published&quot;: True or False, # Whether this revision is published. This is only applicable to Google Docs.
    &quot;publishedOutsideDomain&quot;: True or False, # Whether this revision is published outside the domain. This is only applicable to Google Docs.
    &quot;size&quot;: &quot;A String&quot;, # The size of the revision&#x27;s content in bytes. This is only applicable to files with binary content in Drive.
  }</pre>
</div>

</body></html>