<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></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="books_v1.layers.annotationData.html">annotationData()</a></code>
</p>
<p class="firstline">Returns the annotationData Resource.</p>

<p class="toc_element">
  <code><a href="books_v1.layers.volumeAnnotations.html">volumeAnnotations()</a></code>
</p>
<p class="firstline">Returns the volumeAnnotations Resource.</p>

<p class="toc_element">
  <code><a href="#get">get(volumeId, summaryId, source=None, contentVersion=None)</a></code></p>
<p class="firstline">Gets the layer summary for a volume.</p>
<p class="toc_element">
  <code><a href="#list">list(volumeId, pageToken=None, maxResults=None, source=None, contentVersion=None)</a></code></p>
<p class="firstline">List the layer summaries for a volume.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="get">get(volumeId, summaryId, source=None, contentVersion=None)</code>
  <pre>Gets the layer summary for a volume.

Args:
  volumeId: string, The volume to retrieve layers for. (required)
  summaryId: string, The ID for the layer to get the summary for. (required)
  source: string, String to identify the originator of this request.
  contentVersion: string, The content version for the requested volume.

Returns:
  An object of the form:

    {
    "kind": "books#layersummary", # Resource Type
    "annotationCount": 42, # The number of annotations for this layer.
    "dataCount": 42, # The number of data items for this layer.
    "annotationsLink": "A String", # The link to get the annotations for this layer.
    "updated": "A String", # Timestamp for the last time an item in this layer was updated. (RFC 3339 UTC date-time format).
    "volumeId": "A String", # The volume id this resource is for.
    "id": "A String", # Unique id of this layer summary.
    "annotationTypes": [ # The list of annotation types contained for this layer.
      "A String",
    ],
    "contentVersion": "A String", # The content version this resource is for.
    "layerId": "A String", # The layer id for this summary.
    "volumeAnnotationsVersion": "A String", # The current version of this layer's volume annotations. Note that this version applies only to the data in the books.layers.volumeAnnotations.* responses. The actual annotation data is versioned separately.
    "annotationsDataLink": "A String", # Link to get data for this annotation.
    "selfLink": "A String", # URL to this resource.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(volumeId, pageToken=None, maxResults=None, source=None, contentVersion=None)</code>
  <pre>List the layer summaries for a volume.

Args:
  volumeId: string, The volume to retrieve layers for. (required)
  pageToken: string, The value of the nextToken from the previous page.
  maxResults: integer, Maximum number of results to return
  source: string, String to identify the originator of this request.
  contentVersion: string, The content version for the requested volume.

Returns:
  An object of the form:

    {
    "totalItems": 42, # The total number of layer summaries found.
    "items": [ # A list of layer summary items.
      {
        "kind": "books#layersummary", # Resource Type
        "annotationCount": 42, # The number of annotations for this layer.
        "dataCount": 42, # The number of data items for this layer.
        "annotationsLink": "A String", # The link to get the annotations for this layer.
        "updated": "A String", # Timestamp for the last time an item in this layer was updated. (RFC 3339 UTC date-time format).
        "volumeId": "A String", # The volume id this resource is for.
        "id": "A String", # Unique id of this layer summary.
        "annotationTypes": [ # The list of annotation types contained for this layer.
          "A String",
        ],
        "contentVersion": "A String", # The content version this resource is for.
        "layerId": "A String", # The layer id for this summary.
        "volumeAnnotationsVersion": "A String", # The current version of this layer's volume annotations. Note that this version applies only to the data in the books.layers.volumeAnnotations.* responses. The actual annotation data is versioned separately.
        "annotationsDataLink": "A String", # Link to get data for this annotation.
        "selfLink": "A String", # URL to this resource.
      },
    ],
    "kind": "books#layersummaries", # Resource type.
  }</pre>
</div>

</body></html>