<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.myconfig.html">myconfig</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="#getUserSettings">getUserSettings(country=None, x__xgafv=None)</a></code></p>
<p class="firstline">Gets the current settings for the user.</p>
<p class="toc_element">
  <code><a href="#releaseDownloadAccess">releaseDownloadAccess(cpksver, volumeIds, locale=None, source=None, x__xgafv=None)</a></code></p>
<p class="firstline">Release downloaded content access restriction.</p>
<p class="toc_element">
  <code><a href="#requestAccess">requestAccess(cpksver, nonce, source, volumeId, licenseTypes=None, locale=None, x__xgafv=None)</a></code></p>
<p class="firstline">Request concurrent and download access restrictions.</p>
<p class="toc_element">
  <code><a href="#syncVolumeLicenses">syncVolumeLicenses(cpksver, nonce, source, features=None, includeNonComicsSeries=None, locale=None, showPreorders=None, volumeIds=None, x__xgafv=None)</a></code></p>
<p class="firstline">Request downloaded content access for specified volumes on the My eBooks shelf.</p>
<p class="toc_element">
  <code><a href="#updateUserSettings">updateUserSettings(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Sets the settings for the user. If a sub-object is specified, it will overwrite the existing sub-object stored in the server. Unspecified sub-objects will retain the existing value.</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="getUserSettings">getUserSettings(country=None, x__xgafv=None)</code>
  <pre>Gets the current settings for the user.

Args:
  country: string, Unused. Added only to workaround TEX mandatory request template requirement
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;kind&quot;: &quot;A String&quot;, # Resource type.
  &quot;notesExport&quot;: { # User settings in sub-objects, each for different purposes.
    &quot;folderName&quot;: &quot;A String&quot;,
    &quot;isEnabled&quot;: True or False,
  },
  &quot;notification&quot;: {
    &quot;matchMyInterests&quot;: {
      &quot;opted_state&quot;: &quot;A String&quot;,
    },
    &quot;moreFromAuthors&quot;: {
      &quot;opted_state&quot;: &quot;A String&quot;,
    },
    &quot;moreFromSeries&quot;: {
      &quot;opted_state&quot;: &quot;A String&quot;,
    },
    &quot;priceDrop&quot;: {
      &quot;opted_state&quot;: &quot;A String&quot;,
    },
    &quot;rewardExpirations&quot;: {
      &quot;opted_state&quot;: &quot;A String&quot;,
    },
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="releaseDownloadAccess">releaseDownloadAccess(cpksver, volumeIds, locale=None, source=None, x__xgafv=None)</code>
  <pre>Release downloaded content access restriction.

Args:
  cpksver: string, The device/version ID from which to release the restriction. (required)
  volumeIds: string, The volume(s) to release restrictions for. (required) (repeated)
  locale: string, ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.
  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;downloadAccessList&quot;: [ # A list of download access responses.
    {
      &quot;deviceAllowed&quot;: True or False, # If restricted, whether access is granted for this (user, device, volume).
      &quot;downloadsAcquired&quot;: 42, # If restricted, the number of content download licenses already acquired (including the requesting client, if licensed).
      &quot;justAcquired&quot;: True or False, # If deviceAllowed, whether access was just acquired with this request.
      &quot;kind&quot;: &quot;A String&quot;, # Resource type.
      &quot;maxDownloadDevices&quot;: 42, # If restricted, the maximum number of content download licenses for this volume.
      &quot;message&quot;: &quot;A String&quot;, # Error/warning message.
      &quot;nonce&quot;: &quot;A String&quot;, # Client nonce for verification. Download access and client-validation only.
      &quot;reasonCode&quot;: &quot;A String&quot;, # Error/warning reason code. Additional codes may be added in the future. 0 OK 100 ACCESS_DENIED_PUBLISHER_LIMIT 101 ACCESS_DENIED_LIMIT 200 WARNING_USED_LAST_ACCESS
      &quot;restricted&quot;: True or False, # Whether this volume has any download access restrictions.
      &quot;signature&quot;: &quot;A String&quot;, # Response signature.
      &quot;source&quot;: &quot;A String&quot;, # Client app identifier for verification. Download access and client-validation only.
      &quot;volumeId&quot;: &quot;A String&quot;, # Identifies the volume for which this entry applies.
    },
  ],
  &quot;kind&quot;: &quot;A String&quot;, # Resource type.
}</pre>
</div>

<div class="method">
    <code class="details" id="requestAccess">requestAccess(cpksver, nonce, source, volumeId, licenseTypes=None, locale=None, x__xgafv=None)</code>
  <pre>Request concurrent and download access restrictions.

Args:
  cpksver: string, The device/version ID from which to request the restrictions. (required)
  nonce: string, The client nonce value. (required)
  source: string, String to identify the originator of this request. (required)
  volumeId: string, The volume to request concurrent/download restrictions for. (required)
  licenseTypes: string, The type of access license to request. If not specified, the default is BOTH.
    Allowed values
      LICENSE_TYPES_UNDEFINED - 
      BOTH - Both concurrent and download licenses.
      CONCURRENT - Concurrent access license.
      DOWNLOAD - Offline download access license.
  locale: string, ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;concurrentAccess&quot;: { # A concurrent access response.
    &quot;deviceAllowed&quot;: True or False, # Whether access is granted for this (user, device, volume).
    &quot;kind&quot;: &quot;A String&quot;, # Resource type.
    &quot;maxConcurrentDevices&quot;: 42, # The maximum number of concurrent access licenses for this volume.
    &quot;message&quot;: &quot;A String&quot;, # Error/warning message.
    &quot;nonce&quot;: &quot;A String&quot;, # Client nonce for verification. Download access and client-validation only.
    &quot;reasonCode&quot;: &quot;A String&quot;, # Error/warning reason code.
    &quot;restricted&quot;: True or False, # Whether this volume has any concurrent access restrictions.
    &quot;signature&quot;: &quot;A String&quot;, # Response signature.
    &quot;source&quot;: &quot;A String&quot;, # Client app identifier for verification. Download access and client-validation only.
    &quot;timeWindowSeconds&quot;: 42, # Time in seconds for license auto-expiration.
    &quot;volumeId&quot;: &quot;A String&quot;, # Identifies the volume for which this entry applies.
  },
  &quot;downloadAccess&quot;: { # A download access response.
    &quot;deviceAllowed&quot;: True or False, # If restricted, whether access is granted for this (user, device, volume).
    &quot;downloadsAcquired&quot;: 42, # If restricted, the number of content download licenses already acquired (including the requesting client, if licensed).
    &quot;justAcquired&quot;: True or False, # If deviceAllowed, whether access was just acquired with this request.
    &quot;kind&quot;: &quot;A String&quot;, # Resource type.
    &quot;maxDownloadDevices&quot;: 42, # If restricted, the maximum number of content download licenses for this volume.
    &quot;message&quot;: &quot;A String&quot;, # Error/warning message.
    &quot;nonce&quot;: &quot;A String&quot;, # Client nonce for verification. Download access and client-validation only.
    &quot;reasonCode&quot;: &quot;A String&quot;, # Error/warning reason code. Additional codes may be added in the future. 0 OK 100 ACCESS_DENIED_PUBLISHER_LIMIT 101 ACCESS_DENIED_LIMIT 200 WARNING_USED_LAST_ACCESS
    &quot;restricted&quot;: True or False, # Whether this volume has any download access restrictions.
    &quot;signature&quot;: &quot;A String&quot;, # Response signature.
    &quot;source&quot;: &quot;A String&quot;, # Client app identifier for verification. Download access and client-validation only.
    &quot;volumeId&quot;: &quot;A String&quot;, # Identifies the volume for which this entry applies.
  },
  &quot;kind&quot;: &quot;A String&quot;, # Resource type.
}</pre>
</div>

<div class="method">
    <code class="details" id="syncVolumeLicenses">syncVolumeLicenses(cpksver, nonce, source, features=None, includeNonComicsSeries=None, locale=None, showPreorders=None, volumeIds=None, x__xgafv=None)</code>
  <pre>Request downloaded content access for specified volumes on the My eBooks shelf.

Args:
  cpksver: string, The device/version ID from which to release the restriction. (required)
  nonce: string, The client nonce value. (required)
  source: string, String to identify the originator of this request. (required)
  features: string, List of features supported by the client, i.e., &#x27;RENTALS&#x27; (repeated)
    Allowed values
      FEATURES_UNDEFINED - 
      RENTALS - Client supports rentals.
  includeNonComicsSeries: boolean, Set to true to include non-comics series. Defaults to false.
  locale: string, ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.
  showPreorders: boolean, Set to true to show pre-ordered books. Defaults to false.
  volumeIds: string, The volume(s) to request download restrictions for. (repeated)
  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 volumes.
    {
      &quot;accessInfo&quot;: { # Any information about a volume related to reading or obtaining that volume text. This information can depend on country (books may be public domain in one country but not in another, e.g.).
        &quot;accessViewStatus&quot;: &quot;A String&quot;, # Combines the access and viewability of this volume into a single status field for this user. Values can be FULL_PURCHASED, FULL_PUBLIC_DOMAIN, SAMPLE or NONE. (In LITE projection.)
        &quot;country&quot;: &quot;A String&quot;, # The two-letter ISO_3166-1 country code for which this access information is valid. (In LITE projection.)
        &quot;downloadAccess&quot;: { # Information about a volume&#x27;s download license access restrictions.
          &quot;deviceAllowed&quot;: True or False, # If restricted, whether access is granted for this (user, device, volume).
          &quot;downloadsAcquired&quot;: 42, # If restricted, the number of content download licenses already acquired (including the requesting client, if licensed).
          &quot;justAcquired&quot;: True or False, # If deviceAllowed, whether access was just acquired with this request.
          &quot;kind&quot;: &quot;A String&quot;, # Resource type.
          &quot;maxDownloadDevices&quot;: 42, # If restricted, the maximum number of content download licenses for this volume.
          &quot;message&quot;: &quot;A String&quot;, # Error/warning message.
          &quot;nonce&quot;: &quot;A String&quot;, # Client nonce for verification. Download access and client-validation only.
          &quot;reasonCode&quot;: &quot;A String&quot;, # Error/warning reason code. Additional codes may be added in the future. 0 OK 100 ACCESS_DENIED_PUBLISHER_LIMIT 101 ACCESS_DENIED_LIMIT 200 WARNING_USED_LAST_ACCESS
          &quot;restricted&quot;: True or False, # Whether this volume has any download access restrictions.
          &quot;signature&quot;: &quot;A String&quot;, # Response signature.
          &quot;source&quot;: &quot;A String&quot;, # Client app identifier for verification. Download access and client-validation only.
          &quot;volumeId&quot;: &quot;A String&quot;, # Identifies the volume for which this entry applies.
        },
        &quot;driveImportedContentLink&quot;: &quot;A String&quot;, # URL to the Google Drive viewer if this volume is uploaded by the user by selecting the file from Google Drive.
        &quot;embeddable&quot;: True or False, # Whether this volume can be embedded in a viewport using the Embedded Viewer API.
        &quot;epub&quot;: { # Information about epub content. (In LITE projection.)
          &quot;acsTokenLink&quot;: &quot;A String&quot;, # URL to retrieve ACS token for epub download. (In LITE projection.)
          &quot;downloadLink&quot;: &quot;A String&quot;, # URL to download epub. (In LITE projection.)
          &quot;isAvailable&quot;: True or False, # Is a flowing text epub available either as public domain or for purchase. (In LITE projection.)
        },
        &quot;explicitOfflineLicenseManagement&quot;: True or False, # Whether this volume requires that the client explicitly request offline download license rather than have it done automatically when loading the content, if the client supports it.
        &quot;pdf&quot;: { # Information about pdf content. (In LITE projection.)
          &quot;acsTokenLink&quot;: &quot;A String&quot;, # URL to retrieve ACS token for pdf download. (In LITE projection.)
          &quot;downloadLink&quot;: &quot;A String&quot;, # URL to download pdf. (In LITE projection.)
          &quot;isAvailable&quot;: True or False, # Is a scanned image pdf available either as public domain or for purchase. (In LITE projection.)
        },
        &quot;publicDomain&quot;: True or False, # Whether or not this book is public domain in the country listed above.
        &quot;quoteSharingAllowed&quot;: True or False, # Whether quote sharing is allowed for this volume.
        &quot;textToSpeechPermission&quot;: &quot;A String&quot;, # Whether text-to-speech is permitted for this volume. Values can be ALLOWED, ALLOWED_FOR_ACCESSIBILITY, or NOT_ALLOWED.
        &quot;viewOrderUrl&quot;: &quot;A String&quot;, # For ordered but not yet processed orders, we give a URL that can be used to go to the appropriate Google Wallet page.
        &quot;viewability&quot;: &quot;A String&quot;, # The read access of a volume. Possible values are PARTIAL, ALL_PAGES, NO_PAGES or UNKNOWN. This value depends on the country listed above. A value of PARTIAL means that the publisher has allowed some portion of the volume to be viewed publicly, without purchase. This can apply to eBooks as well as non-eBooks. Public domain books will always have a value of ALL_PAGES.
        &quot;webReaderLink&quot;: &quot;A String&quot;, # URL to read this volume on the Google Books site. Link will not allow users to read non-viewable volumes.
      },
      &quot;etag&quot;: &quot;A String&quot;, # Opaque identifier for a specific version of a volume resource. (In LITE projection)
      &quot;id&quot;: &quot;A String&quot;, # Unique identifier for a volume. (In LITE projection.)
      &quot;kind&quot;: &quot;A String&quot;, # Resource type for a volume. (In LITE projection.)
      &quot;layerInfo&quot;: { # What layers exist in this volume and high level information about them.
        &quot;layers&quot;: [ # A layer should appear here if and only if the layer exists for this book.
          {
            &quot;layerId&quot;: &quot;A String&quot;, # The layer id of this layer (e.g. &quot;geo&quot;).
            &quot;volumeAnnotationsVersion&quot;: &quot;A String&quot;, # The current version of this layer&#x27;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.
          },
        ],
      },
      &quot;recommendedInfo&quot;: { # Recommendation related information for this volume.
        &quot;explanation&quot;: &quot;A String&quot;, # A text explaining why this volume is recommended.
      },
      &quot;saleInfo&quot;: { # Any information about a volume related to the eBookstore and/or purchaseability. This information can depend on the country where the request originates from (i.e. books may not be for sale in certain countries).
        &quot;buyLink&quot;: &quot;A String&quot;, # URL to purchase this volume on the Google Books site. (In LITE projection)
        &quot;country&quot;: &quot;A String&quot;, # The two-letter ISO_3166-1 country code for which this sale information is valid. (In LITE projection.)
        &quot;isEbook&quot;: True or False, # Whether or not this volume is an eBook (can be added to the My eBooks shelf).
        &quot;listPrice&quot;: { # Suggested retail price. (In LITE projection.)
          &quot;amount&quot;: 3.14, # Amount in the currency listed below. (In LITE projection.)
          &quot;currencyCode&quot;: &quot;A String&quot;, # An ISO 4217, three-letter currency code. (In LITE projection.)
        },
        &quot;offers&quot;: [ # Offers available for this volume (sales and rentals).
          {
            &quot;finskyOfferType&quot;: 42, # The finsky offer type (e.g., PURCHASE=0 RENTAL=3)
            &quot;giftable&quot;: True or False, # Indicates whether the offer is giftable.
            &quot;listPrice&quot;: { # Offer list (=undiscounted) price in Micros.
              &quot;amountInMicros&quot;: 3.14,
              &quot;currencyCode&quot;: &quot;A String&quot;,
            },
            &quot;rentalDuration&quot;: { # The rental duration (for rental offers only).
              &quot;count&quot;: 3.14,
              &quot;unit&quot;: &quot;A String&quot;,
            },
            &quot;retailPrice&quot;: { # Offer retail (=discounted) price in Micros
              &quot;amountInMicros&quot;: 3.14,
              &quot;currencyCode&quot;: &quot;A String&quot;,
            },
          },
        ],
        &quot;onSaleDate&quot;: &quot;A String&quot;, # The date on which this book is available for sale.
        &quot;retailPrice&quot;: { # The actual selling price of the book. This is the same as the suggested retail or list price unless there are offers or discounts on this volume. (In LITE projection.)
          &quot;amount&quot;: 3.14, # Amount in the currency listed below. (In LITE projection.)
          &quot;currencyCode&quot;: &quot;A String&quot;, # An ISO 4217, three-letter currency code. (In LITE projection.)
        },
        &quot;saleability&quot;: &quot;A String&quot;, # Whether or not this book is available for sale or offered for free in the Google eBookstore for the country listed above. Possible values are FOR_SALE, FOR_RENTAL_ONLY, FOR_SALE_AND_RENTAL, FREE, NOT_FOR_SALE, or FOR_PREORDER.
      },
      &quot;searchInfo&quot;: { # Search result information related to this volume.
        &quot;textSnippet&quot;: &quot;A String&quot;, # A text snippet containing the search query.
      },
      &quot;selfLink&quot;: &quot;A String&quot;, # URL to this resource. (In LITE projection.)
      &quot;userInfo&quot;: { # User specific information related to this volume. (e.g. page this user last read or whether they purchased this book)
        &quot;acquiredTime&quot;: &quot;A String&quot;, # Timestamp when this volume was acquired by the user. (RFC 3339 UTC date-time format) Acquiring includes purchase, user upload, receiving family sharing, etc.
        &quot;acquisitionType&quot;: 42, # How this volume was acquired.
        &quot;copy&quot;: { # Copy/Paste accounting information.
          &quot;allowedCharacterCount&quot;: 42,
          &quot;limitType&quot;: &quot;A String&quot;,
          &quot;remainingCharacterCount&quot;: 42,
          &quot;updated&quot;: &quot;A String&quot;,
        },
        &quot;entitlementType&quot;: 42, # Whether this volume is purchased, sample, pd download etc.
        &quot;familySharing&quot;: { # Information on the ability to share with the family.
          &quot;familyRole&quot;: &quot;A String&quot;, # The role of the user in the family.
          &quot;isSharingAllowed&quot;: True or False, # Whether or not this volume can be shared with the family by the user. This includes sharing eligibility of both the volume and the user. If the value is true, the user can initiate a family sharing action.
          &quot;isSharingDisabledByFop&quot;: True or False, # Whether or not sharing this volume is temporarily disabled due to issues with the Family Wallet.
        },
        &quot;isFamilySharedFromUser&quot;: True or False, # Whether or not the user shared this volume with the family.
        &quot;isFamilySharedToUser&quot;: True or False, # Whether or not the user received this volume through family sharing.
        &quot;isFamilySharingAllowed&quot;: True or False, # Deprecated: Replaced by familySharing.
        &quot;isFamilySharingDisabledByFop&quot;: True or False, # Deprecated: Replaced by familySharing.
        &quot;isInMyBooks&quot;: True or False, # Whether or not this volume is currently in &quot;my books.&quot;
        &quot;isPreordered&quot;: True or False, # Whether or not this volume was pre-ordered by the authenticated user making the request. (In LITE projection.)
        &quot;isPurchased&quot;: True or False, # Whether or not this volume was purchased by the authenticated user making the request. (In LITE projection.)
        &quot;isUploaded&quot;: True or False, # Whether or not this volume was user uploaded.
        &quot;readingPosition&quot;: { # The user&#x27;s current reading position in the volume, if one is available. (In LITE projection.)
          &quot;epubCfiPosition&quot;: &quot;A String&quot;, # Position in an EPUB as a CFI.
          &quot;gbImagePosition&quot;: &quot;A String&quot;, # Position in a volume for image-based content.
          &quot;gbTextPosition&quot;: &quot;A String&quot;, # Position in a volume for text-based content.
          &quot;kind&quot;: &quot;A String&quot;, # Resource type for a reading position.
          &quot;pdfPosition&quot;: &quot;A String&quot;, # Position in a PDF file.
          &quot;updated&quot;: &quot;A String&quot;, # Timestamp when this reading position was last updated (formatted UTC timestamp with millisecond resolution).
          &quot;volumeId&quot;: &quot;A String&quot;, # Volume id associated with this reading position.
        },
        &quot;rentalPeriod&quot;: { # Period during this book is/was a valid rental.
          &quot;endUtcSec&quot;: &quot;A String&quot;,
          &quot;startUtcSec&quot;: &quot;A String&quot;,
        },
        &quot;rentalState&quot;: &quot;A String&quot;, # Whether this book is an active or an expired rental.
        &quot;review&quot;: { # This user&#x27;s review of this volume, if one exists.
          &quot;author&quot;: { # Author of this review.
            &quot;displayName&quot;: &quot;A String&quot;, # Name of this person.
          },
          &quot;content&quot;: &quot;A String&quot;, # Review text.
          &quot;date&quot;: &quot;A String&quot;, # Date of this review.
          &quot;fullTextUrl&quot;: &quot;A String&quot;, # URL for the full review text, for reviews gathered from the web.
          &quot;kind&quot;: &quot;A String&quot;, # Resource type for a review.
          &quot;rating&quot;: &quot;A String&quot;, # Star rating for this review. Possible values are ONE, TWO, THREE, FOUR, FIVE or NOT_RATED.
          &quot;source&quot;: { # Information regarding the source of this review, when the review is not from a Google Books user.
            &quot;description&quot;: &quot;A String&quot;, # Name of the source.
            &quot;extraDescription&quot;: &quot;A String&quot;, # Extra text about the source of the review.
            &quot;url&quot;: &quot;A String&quot;, # URL of the source of the review.
          },
          &quot;title&quot;: &quot;A String&quot;, # Title for this review.
          &quot;type&quot;: &quot;A String&quot;, # Source type for this review. Possible values are EDITORIAL, WEB_USER or GOOGLE_USER.
          &quot;volumeId&quot;: &quot;A String&quot;, # Volume that this review is for.
        },
        &quot;updated&quot;: &quot;A String&quot;, # Timestamp when this volume was last modified by a user action, such as a reading position update, volume purchase or writing a review. (RFC 3339 UTC date-time format).
        &quot;userUploadedVolumeInfo&quot;: {
          &quot;processingState&quot;: &quot;A String&quot;,
        },
      },
      &quot;volumeInfo&quot;: { # General volume information.
        &quot;allowAnonLogging&quot;: True or False, # Whether anonymous logging should be allowed.
        &quot;authors&quot;: [ # The names of the authors and/or editors for this volume. (In LITE projection)
          &quot;A String&quot;,
        ],
        &quot;averageRating&quot;: 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
        &quot;canonicalVolumeLink&quot;: &quot;A String&quot;, # Canonical URL for a volume. (In LITE projection.)
        &quot;categories&quot;: [ # A list of subject categories, such as &quot;Fiction&quot;, &quot;Suspense&quot;, etc.
          &quot;A String&quot;,
        ],
        &quot;comicsContent&quot;: True or False, # Whether the volume has comics content.
        &quot;contentVersion&quot;: &quot;A String&quot;, # An identifier for the version of the volume content (text &amp; images). (In LITE projection)
        &quot;description&quot;: &quot;A String&quot;, # A synopsis of the volume. The text of the description is formatted in HTML and includes simple formatting elements, such as b, i, and br tags. (In LITE projection.)
        &quot;dimensions&quot;: { # Physical dimensions of this volume.
          &quot;height&quot;: &quot;A String&quot;, # Height or length of this volume (in cm).
          &quot;thickness&quot;: &quot;A String&quot;, # Thickness of this volume (in cm).
          &quot;width&quot;: &quot;A String&quot;, # Width of this volume (in cm).
        },
        &quot;imageLinks&quot;: { # A list of image links for all the sizes that are available. (In LITE projection.)
          &quot;extraLarge&quot;: &quot;A String&quot;, # Image link for extra large size (width of ~1280 pixels). (In LITE projection)
          &quot;large&quot;: &quot;A String&quot;, # Image link for large size (width of ~800 pixels). (In LITE projection)
          &quot;medium&quot;: &quot;A String&quot;, # Image link for medium size (width of ~575 pixels). (In LITE projection)
          &quot;small&quot;: &quot;A String&quot;, # Image link for small size (width of ~300 pixels). (In LITE projection)
          &quot;smallThumbnail&quot;: &quot;A String&quot;, # Image link for small thumbnail size (width of ~80 pixels). (In LITE projection)
          &quot;thumbnail&quot;: &quot;A String&quot;, # Image link for thumbnail size (width of ~128 pixels). (In LITE projection)
        },
        &quot;industryIdentifiers&quot;: [ # Industry standard identifiers for this volume.
          {
            &quot;identifier&quot;: &quot;A String&quot;, # Industry specific volume identifier.
            &quot;type&quot;: &quot;A String&quot;, # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.
          },
        ],
        &quot;infoLink&quot;: &quot;A String&quot;, # URL to view information about this volume on the Google Books site. (In LITE projection)
        &quot;language&quot;: &quot;A String&quot;, # Best language for this volume (based on content). It is the two-letter ISO 639-1 code such as &#x27;fr&#x27;, &#x27;en&#x27;, etc.
        &quot;mainCategory&quot;: &quot;A String&quot;, # The main category to which this volume belongs. It will be the category from the categories list returned below that has the highest weight.
        &quot;maturityRating&quot;: &quot;A String&quot;,
        &quot;pageCount&quot;: 42, # Total number of pages as per publisher metadata.
        &quot;panelizationSummary&quot;: { # A top-level summary of the panelization info in this volume.
          &quot;containsEpubBubbles&quot;: True or False,
          &quot;containsImageBubbles&quot;: True or False,
          &quot;epubBubbleVersion&quot;: &quot;A String&quot;,
          &quot;imageBubbleVersion&quot;: &quot;A String&quot;,
        },
        &quot;previewLink&quot;: &quot;A String&quot;, # URL to preview this volume on the Google Books site.
        &quot;printType&quot;: &quot;A String&quot;, # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
        &quot;printedPageCount&quot;: 42, # Total number of printed pages in generated pdf representation.
        &quot;publishedDate&quot;: &quot;A String&quot;, # Date of publication. (In LITE projection.)
        &quot;publisher&quot;: &quot;A String&quot;, # Publisher of this volume. (In LITE projection.)
        &quot;ratingsCount&quot;: 42, # The number of review ratings for this volume.
        &quot;readingModes&quot;: { # The reading modes available for this volume.
          &quot;image&quot;: True or False,
          &quot;text&quot;: True or False,
        },
        &quot;samplePageCount&quot;: 42, # Total number of sample pages as per publisher metadata.
        &quot;seriesInfo&quot;: {
          &quot;bookDisplayNumber&quot;: &quot;A String&quot;, # The display number string. This should be used only for display purposes and the actual sequence should be inferred from the below orderNumber.
          &quot;kind&quot;: &quot;A String&quot;, # Resource type.
          &quot;shortSeriesBookTitle&quot;: &quot;A String&quot;, # Short book title in the context of the series.
          &quot;volumeSeries&quot;: [
            {
              &quot;issue&quot;: [ # List of issues. Applicable only for Collection Edition and Omnibus.
                {
                  &quot;issueDisplayNumber&quot;: &quot;A String&quot;,
                  &quot;issueOrderNumber&quot;: 42,
                },
              ],
              &quot;orderNumber&quot;: 42, # The book order number in the series.
              &quot;seriesBookType&quot;: &quot;A String&quot;, # The book type in the context of series. Examples - Single Issue, Collection Edition, etc.
              &quot;seriesId&quot;: &quot;A String&quot;, # The series id.
            },
          ],
        },
        &quot;subtitle&quot;: &quot;A String&quot;, # Volume subtitle. (In LITE projection.)
        &quot;title&quot;: &quot;A String&quot;, # Volume title. (In LITE projection.)
      },
    },
  ],
  &quot;kind&quot;: &quot;A String&quot;, # Resource type.
  &quot;totalItems&quot;: 42, # Total number of volumes found. This might be greater than the number of volumes returned in this response if results have been paginated.
}</pre>
</div>

<div class="method">
    <code class="details" id="updateUserSettings">updateUserSettings(body=None, x__xgafv=None)</code>
  <pre>Sets the settings for the user. If a sub-object is specified, it will overwrite the existing sub-object stored in the server. Unspecified sub-objects will retain the existing value.

Args:
  body: object, The request body.
    The object takes the form of:

{
  &quot;kind&quot;: &quot;A String&quot;, # Resource type.
  &quot;notesExport&quot;: { # User settings in sub-objects, each for different purposes.
    &quot;folderName&quot;: &quot;A String&quot;,
    &quot;isEnabled&quot;: True or False,
  },
  &quot;notification&quot;: {
    &quot;matchMyInterests&quot;: {
      &quot;opted_state&quot;: &quot;A String&quot;,
    },
    &quot;moreFromAuthors&quot;: {
      &quot;opted_state&quot;: &quot;A String&quot;,
    },
    &quot;moreFromSeries&quot;: {
      &quot;opted_state&quot;: &quot;A String&quot;,
    },
    &quot;priceDrop&quot;: {
      &quot;opted_state&quot;: &quot;A String&quot;,
    },
    &quot;rewardExpirations&quot;: {
      &quot;opted_state&quot;: &quot;A String&quot;,
    },
  },
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;kind&quot;: &quot;A String&quot;, # Resource type.
  &quot;notesExport&quot;: { # User settings in sub-objects, each for different purposes.
    &quot;folderName&quot;: &quot;A String&quot;,
    &quot;isEnabled&quot;: True or False,
  },
  &quot;notification&quot;: {
    &quot;matchMyInterests&quot;: {
      &quot;opted_state&quot;: &quot;A String&quot;,
    },
    &quot;moreFromAuthors&quot;: {
      &quot;opted_state&quot;: &quot;A String&quot;,
    },
    &quot;moreFromSeries&quot;: {
      &quot;opted_state&quot;: &quot;A String&quot;,
    },
    &quot;priceDrop&quot;: {
      &quot;opted_state&quot;: &quot;A String&quot;,
    },
    &quot;rewardExpirations&quot;: {
      &quot;opted_state&quot;: &quot;A String&quot;,
    },
  },
}</pre>
</div>

</body></html>