<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="books_v1.html">Books API</a> . <a href="books_v1.layers.html">layers</a> . <a href="books_v1.layers.volumeAnnotations.html">volumeAnnotations</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#get">get(volumeId, layerId, annotationId, source=None, locale=None, x__xgafv=None)</a></code></p>
<p class="firstline">Gets the volume annotation.</p>
<p class="toc_element">
  <code><a href="#list">list(volumeId, layerId, contentVersion, pageToken=None, startOffset=None, endOffset=None, locale=None, updatedMax=None, showDeleted=None, maxResults=None, startPosition=None, source=None, endPosition=None, volumeAnnotationsVersion=None, updatedMin=None, x__xgafv=None)</a></code></p>
<p class="firstline">Gets the volume annotations for a volume and layer.</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>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="get">get(volumeId, layerId, annotationId, source=None, locale=None, x__xgafv=None)</code>
  <pre>Gets the volume annotation.

Args:
  volumeId: string, The volume to retrieve annotations for. (required)
  layerId: string, The ID for the layer to get the annotations. (required)
  annotationId: string, The ID of the volume annotation to retrieve. (required)
  source: string, String to identify the originator of this request.
  locale: string, The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: &#x27;en_US&#x27;.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &quot;deleted&quot;: True or False, # Indicates that this annotation is deleted.
    &quot;updated&quot;: &quot;A String&quot;, # Timestamp for the last time this anntoation was updated. (RFC 3339 UTC date-time format).
    &quot;kind&quot;: &quot;A String&quot;, # Resource Type
    &quot;volumeId&quot;: &quot;A String&quot;, # The Volume this annotation is for.
    &quot;annotationDataId&quot;: &quot;A String&quot;, # The annotation data id for this volume annotation.
    &quot;annotationType&quot;: &quot;A String&quot;, # The type of annotation this is.
    &quot;contentRanges&quot;: { # The content ranges to identify the selected text.
      &quot;contentVersion&quot;: &quot;A String&quot;, # Content version applicable to ranges below.
      &quot;gbTextRange&quot;: { # Range in GB text format for this annotation for version above.
        &quot;startOffset&quot;: &quot;A String&quot;, # The offset from the starting position.
        &quot;endOffset&quot;: &quot;A String&quot;, # The offset from the ending position.
        &quot;startPosition&quot;: &quot;A String&quot;, # The starting position for the range.
        &quot;endPosition&quot;: &quot;A String&quot;, # The ending position for the range.
      },
      &quot;cfiRange&quot;: { # Range in CFI format for this annotation for version above.
        &quot;startOffset&quot;: &quot;A String&quot;, # The offset from the starting position.
        &quot;endOffset&quot;: &quot;A String&quot;, # The offset from the ending position.
        &quot;startPosition&quot;: &quot;A String&quot;, # The starting position for the range.
        &quot;endPosition&quot;: &quot;A String&quot;, # The ending position for the range.
      },
      &quot;gbImageRange&quot;: { # Range in GB image format for this annotation for version above.
        &quot;startOffset&quot;: &quot;A String&quot;, # The offset from the starting position.
        &quot;endOffset&quot;: &quot;A String&quot;, # The offset from the ending position.
        &quot;startPosition&quot;: &quot;A String&quot;, # The starting position for the range.
        &quot;endPosition&quot;: &quot;A String&quot;, # The ending position for the range.
      },
    },
    &quot;id&quot;: &quot;A String&quot;, # Unique id of this volume annotation.
    &quot;selectedText&quot;: &quot;A String&quot;, # Excerpt from the volume.
    &quot;pageIds&quot;: [ # Pages the annotation spans.
      &quot;A String&quot;,
    ],
    &quot;selfLink&quot;: &quot;A String&quot;, # URL to this resource.
    &quot;annotationDataLink&quot;: &quot;A String&quot;, # Link to get data for this annotation.
    &quot;data&quot;: &quot;A String&quot;, # Data for this annotation.
    &quot;layerId&quot;: &quot;A String&quot;, # The Layer this annotation is for.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(volumeId, layerId, contentVersion, pageToken=None, startOffset=None, endOffset=None, locale=None, updatedMax=None, showDeleted=None, maxResults=None, startPosition=None, source=None, endPosition=None, volumeAnnotationsVersion=None, updatedMin=None, x__xgafv=None)</code>
  <pre>Gets the volume annotations for a volume and layer.

Args:
  volumeId: string, The volume to retrieve annotations for. (required)
  layerId: string, The ID for the layer to get the annotations. (required)
  contentVersion: string, The content version for the requested volume. (required)
  pageToken: string, The value of the nextToken from the previous page.
  startOffset: string, The start offset to start retrieving data from.
  endOffset: string, The end offset to end retrieving data from.
  locale: string, The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: &#x27;en_US&#x27;.
  updatedMax: string, RFC 3339 timestamp to restrict to items updated prior to this timestamp (exclusive).
  showDeleted: boolean, Set to true to return deleted annotations. updatedMin must be in the request to use this. Defaults to false.
  maxResults: integer, Maximum number of results to return
  startPosition: string, The start position to start retrieving data from.
  source: string, String to identify the originator of this request.
  endPosition: string, The end position to end retrieving data from.
  volumeAnnotationsVersion: string, The version of the volume annotations that you are requesting.
  updatedMin: string, RFC 3339 timestamp to restrict to items updated since this timestamp (inclusive).
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &quot;items&quot;: [ # A list of volume annotations.
      {
        &quot;deleted&quot;: True or False, # Indicates that this annotation is deleted.
        &quot;updated&quot;: &quot;A String&quot;, # Timestamp for the last time this anntoation was updated. (RFC 3339 UTC date-time format).
        &quot;kind&quot;: &quot;A String&quot;, # Resource Type
        &quot;volumeId&quot;: &quot;A String&quot;, # The Volume this annotation is for.
        &quot;annotationDataId&quot;: &quot;A String&quot;, # The annotation data id for this volume annotation.
        &quot;annotationType&quot;: &quot;A String&quot;, # The type of annotation this is.
        &quot;contentRanges&quot;: { # The content ranges to identify the selected text.
          &quot;contentVersion&quot;: &quot;A String&quot;, # Content version applicable to ranges below.
          &quot;gbTextRange&quot;: { # Range in GB text format for this annotation for version above.
            &quot;startOffset&quot;: &quot;A String&quot;, # The offset from the starting position.
            &quot;endOffset&quot;: &quot;A String&quot;, # The offset from the ending position.
            &quot;startPosition&quot;: &quot;A String&quot;, # The starting position for the range.
            &quot;endPosition&quot;: &quot;A String&quot;, # The ending position for the range.
          },
          &quot;cfiRange&quot;: { # Range in CFI format for this annotation for version above.
            &quot;startOffset&quot;: &quot;A String&quot;, # The offset from the starting position.
            &quot;endOffset&quot;: &quot;A String&quot;, # The offset from the ending position.
            &quot;startPosition&quot;: &quot;A String&quot;, # The starting position for the range.
            &quot;endPosition&quot;: &quot;A String&quot;, # The ending position for the range.
          },
          &quot;gbImageRange&quot;: { # Range in GB image format for this annotation for version above.
            &quot;startOffset&quot;: &quot;A String&quot;, # The offset from the starting position.
            &quot;endOffset&quot;: &quot;A String&quot;, # The offset from the ending position.
            &quot;startPosition&quot;: &quot;A String&quot;, # The starting position for the range.
            &quot;endPosition&quot;: &quot;A String&quot;, # The ending position for the range.
          },
        },
        &quot;id&quot;: &quot;A String&quot;, # Unique id of this volume annotation.
        &quot;selectedText&quot;: &quot;A String&quot;, # Excerpt from the volume.
        &quot;pageIds&quot;: [ # Pages the annotation spans.
          &quot;A String&quot;,
        ],
        &quot;selfLink&quot;: &quot;A String&quot;, # URL to this resource.
        &quot;annotationDataLink&quot;: &quot;A String&quot;, # Link to get data for this annotation.
        &quot;data&quot;: &quot;A String&quot;, # Data for this annotation.
        &quot;layerId&quot;: &quot;A String&quot;, # The Layer this annotation is for.
      },
    ],
    &quot;version&quot;: &quot;A String&quot;, # The version string for all of the volume annotations in this layer (not just the ones in this response). Note: the version string doesn&#x27;t apply to the annotation data, just the information in this response (e.g. the location of annotations in the book).
    &quot;kind&quot;: &quot;A String&quot;, # Resource type
    &quot;totalItems&quot;: 42, # The total number of volume annotations found.
    &quot;nextPageToken&quot;: &quot;A String&quot;, # Token to pass in for pagination for the next page. This will not be present if this request does not have more results.
  }</pre>
</div>

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

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

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

</body></html>