<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, locale=None, source=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, endOffset=None, endPosition=None, locale=None, maxResults=None, pageToken=None, showDeleted=None, source=None, startOffset=None, startPosition=None, updatedMax=None, updatedMin=None, volumeAnnotationsVersion=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()</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, locale=None, source=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)
  locale: string, The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: &#x27;en_US&#x27;.
  source: string, String to identify the originator of this request.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

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

<div class="method">
    <code class="details" id="list">list(volumeId, layerId, contentVersion, endOffset=None, endPosition=None, locale=None, maxResults=None, pageToken=None, showDeleted=None, source=None, startOffset=None, startPosition=None, updatedMax=None, updatedMin=None, volumeAnnotationsVersion=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)
  endOffset: string, The end offset to end retrieving data from.
  endPosition: string, The end position 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;.
  maxResults: integer, Maximum number of results to return
  pageToken: string, The value of the nextToken from the previous page.
  showDeleted: boolean, Set to true to return deleted annotations. updatedMin must be in the request to use this. Defaults to false.
  source: string, String to identify the originator of this request.
  startOffset: string, The start offset to start retrieving data from.
  startPosition: string, The start position to start retrieving data from.
  updatedMax: string, RFC 3339 timestamp to restrict to items updated prior to this timestamp (exclusive).
  updatedMin: string, RFC 3339 timestamp to restrict to items updated since this timestamp (inclusive).
  volumeAnnotationsVersion: string, The version of the volume annotations that you are requesting.
  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;annotationDataId&quot;: &quot;A String&quot;, # The annotation data id for this volume annotation.
      &quot;annotationDataLink&quot;: &quot;A String&quot;, # Link to get data for this 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;cfiRange&quot;: { # Range in CFI format for this annotation for version above.
          &quot;endOffset&quot;: &quot;A String&quot;, # The offset from the ending position.
          &quot;endPosition&quot;: &quot;A String&quot;, # The ending position for the range.
          &quot;startOffset&quot;: &quot;A String&quot;, # The offset from the starting position.
          &quot;startPosition&quot;: &quot;A String&quot;, # The starting position for the range.
        },
        &quot;contentVersion&quot;: &quot;A String&quot;, # Content version applicable to ranges below.
        &quot;gbImageRange&quot;: { # Range in GB image format for this annotation for version above.
          &quot;endOffset&quot;: &quot;A String&quot;, # The offset from the ending position.
          &quot;endPosition&quot;: &quot;A String&quot;, # The ending position for the range.
          &quot;startOffset&quot;: &quot;A String&quot;, # The offset from the starting position.
          &quot;startPosition&quot;: &quot;A String&quot;, # The starting position for the range.
        },
        &quot;gbTextRange&quot;: { # Range in GB text format for this annotation for version above.
          &quot;endOffset&quot;: &quot;A String&quot;, # The offset from the ending position.
          &quot;endPosition&quot;: &quot;A String&quot;, # The ending position for the range.
          &quot;startOffset&quot;: &quot;A String&quot;, # The offset from the starting position.
          &quot;startPosition&quot;: &quot;A String&quot;, # The starting position for the range.
        },
      },
      &quot;data&quot;: &quot;A String&quot;, # Data for this annotation.
      &quot;deleted&quot;: True or False, # Indicates that this annotation is deleted.
      &quot;id&quot;: &quot;A String&quot;, # Unique id of this volume annotation.
      &quot;kind&quot;: &quot;A String&quot;, # Resource Type
      &quot;layerId&quot;: &quot;A String&quot;, # The Layer this annotation is for.
      &quot;pageIds&quot;: [ # Pages the annotation spans.
        &quot;A String&quot;,
      ],
      &quot;selectedText&quot;: &quot;A String&quot;, # Excerpt from the volume.
      &quot;selfLink&quot;: &quot;A String&quot;, # URL to this resource.
      &quot;updated&quot;: &quot;A String&quot;, # Timestamp for the last time this anntoation was updated. (RFC 3339 UTC date-time format).
      &quot;volumeId&quot;: &quot;A String&quot;, # The Volume this annotation is for.
    },
  ],
  &quot;kind&quot;: &quot;A String&quot;, # Resource type
  &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.
  &quot;totalItems&quot;: 42, # The total number of volume annotations found.
  &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).
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next()</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>