<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.realtime.html">realtime</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#get">get(fileId, revision=None)</a></code></p>
<p class="firstline">Exports the contents of the Realtime API data model associated with this file as JSON.</p>
<p class="toc_element">
  <code><a href="#get_media">get_media(fileId, revision=None)</a></code></p>
<p class="firstline">Exports the contents of the Realtime API data model associated with this file as JSON.</p>
<p class="toc_element">
  <code><a href="#update">update(fileId, media_body=None, baseRevision=None)</a></code></p>
<p class="firstline">Overwrites the Realtime API data model associated with this file with the provided JSON data model.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="get">get(fileId, revision=None)</code>
  <pre>Exports the contents of the Realtime API data model associated with this file as JSON.

Args:
  fileId: string, The ID of the file that the Realtime API data model is associated with. (required)
  revision: integer, The revision of the Realtime API data model to export. Revisions start at 1 (the initial empty data model) and are incremented with each change. If this parameter is excluded, the most recent data model will be returned.
</pre>
</div>

<div class="method">
    <code class="details" id="get_media">get_media(fileId, revision=None)</code>
  <pre>Exports the contents of the Realtime API data model associated with this file as JSON.

Args:
  fileId: string, The ID of the file that the Realtime API data model is associated with. (required)
  revision: integer, The revision of the Realtime API data model to export. Revisions start at 1 (the initial empty data model) and are incremented with each change. If this parameter is excluded, the most recent data model will be returned.
</pre>
</div>

<div class="method">
    <code class="details" id="update">update(fileId, media_body=None, baseRevision=None)</code>
  <pre>Overwrites the Realtime API data model associated with this file with the provided JSON data model.

Args:
  fileId: string, The ID of the file that the Realtime API data model is associated with. (required)
  media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
  baseRevision: string, The revision of the model to diff the uploaded model against. If set, the uploaded model is diffed against the provided revision and those differences are merged with any changes made to the model after the provided revision. If not set, the uploaded model replaces the current model on the server.
</pre>
</div>

</body></html>