-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Google Books SDK.
--   
--   Searches for books and manages your Google Books library.
--   
--   <i>Warning:</i> This is an experimental prototype/preview release
--   which is still under exploratory development and not intended for
--   public use, caveat emptor!
--   
--   This library is compatible with version <tt>v1</tt> of the API.
@package gogol-books
@version 0.3.0


module Network.Google.Books.Types

-- | Default request referring to version <tt>v1</tt> of the Books API.
--   This contains the host and root path used as a starting point for
--   constructing service requests.
booksService :: ServiceConfig

-- | Manage your books
booksScope :: Proxy '["https://www.googleapis.com/auth/books"]
data UserSettings

-- | Creates a value of <a>UserSettings</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usNotification</a></li>
--   <li><a>usKind</a></li>
--   <li><a>usNotesExport</a></li>
--   </ul>
userSettings :: UserSettings
usNotification :: Lens' UserSettings (Maybe UserSettingsNotification)

-- | Resource type.
usKind :: Lens' UserSettings Text

-- | User settings in sub-objects, each for different purposes.
usNotesExport :: Lens' UserSettings (Maybe UserSettingsNotesExport)
data Annotations

-- | Creates a value of <a>Annotations</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aTotalItems</a></li>
--   <li><a>aNextPageToken</a></li>
--   <li><a>aKind</a></li>
--   <li><a>aItems</a></li>
--   </ul>
annotations :: Annotations

-- | Total number of annotations found. This may be greater than the number
--   of notes returned in this response if results have been paginated.
aTotalItems :: Lens' Annotations (Maybe Int32)

-- | Token to pass in for pagination for the next page. This will not be
--   present if this request does not have more results.
aNextPageToken :: Lens' Annotations (Maybe Text)

-- | Resource type.
aKind :: Lens' Annotations Text

-- | A list of annotations.
aItems :: Lens' Annotations [Annotation]

-- | Restrict information returned to a set of selected fields.
data VolumesListProjection

-- | <tt>full</tt> Includes all volume data.
Full :: VolumesListProjection

-- | <tt>lite</tt> Includes a subset of fields in volumeInfo and
--   accessInfo.
Lite :: VolumesListProjection

-- | Restrict information returned to a set of selected fields.
data MyLibraryBookshelvesVolumesListProjection

-- | <tt>full</tt> Includes all volume data.
MLBVLPFull :: MyLibraryBookshelvesVolumesListProjection

-- | <tt>lite</tt> Includes a subset of fields in volumeInfo and
--   accessInfo.
MLBVLPLite :: MyLibraryBookshelvesVolumesListProjection

-- | Sort search results.
data VolumesListOrderBy

-- | <tt>newest</tt> Most recently published.
Newest :: VolumesListOrderBy

-- | <tt>relevance</tt> Relevance to search terms.
Relevance :: VolumesListOrderBy
data AnnotationsData

-- | Creates a value of <a>AnnotationsData</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>adTotalItems</a></li>
--   <li><a>adNextPageToken</a></li>
--   <li><a>adKind</a></li>
--   <li><a>adItems</a></li>
--   </ul>
annotationsData :: AnnotationsData

-- | The total number of volume annotations found.
adTotalItems :: Lens' AnnotationsData (Maybe Int32)

-- | Token to pass in for pagination for the next page. This will not be
--   present if this request does not have more results.
adNextPageToken :: Lens' AnnotationsData (Maybe Text)

-- | Resource type
adKind :: Lens' AnnotationsData Text

-- | A list of Annotation Data.
adItems :: Lens' AnnotationsData [AnnotationData]
data UserSettingsNotificationMoreFromAuthors

-- | Creates a value of <a>UserSettingsNotificationMoreFromAuthors</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usnmfaOptedState</a></li>
--   </ul>
userSettingsNotificationMoreFromAuthors :: UserSettingsNotificationMoreFromAuthors
usnmfaOptedState :: Lens' UserSettingsNotificationMoreFromAuthors (Maybe Text)
data Volumeannotations

-- | Creates a value of <a>Volumeannotations</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vTotalItems</a></li>
--   <li><a>vNextPageToken</a></li>
--   <li><a>vKind</a></li>
--   <li><a>vItems</a></li>
--   <li><a>vVersion</a></li>
--   </ul>
volumeannotations :: Volumeannotations

-- | The total number of volume annotations found.
vTotalItems :: Lens' Volumeannotations (Maybe Int32)

-- | Token to pass in for pagination for the next page. This will not be
--   present if this request does not have more results.
vNextPageToken :: Lens' Volumeannotations (Maybe Text)

-- | Resource type
vKind :: Lens' Volumeannotations Text

-- | A list of volume annotations.
vItems :: Lens' Volumeannotations [Volumeannotation]

-- | The version string for all of the volume annotations in this layer
--   (not just the ones in this response). Note: the version string doesn't
--   apply to the annotation data, just the information in this response
--   (e.g. the location of annotations in the book).
vVersion :: Lens' Volumeannotations (Maybe Text)

-- | Information regarding the source of this review, when the review is
--   not from a Google Books user.
--   
--   <i>See:</i> <a>reviewSource</a> smart constructor.
data ReviewSource

-- | Creates a value of <a>ReviewSource</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rsExtraDescription</a></li>
--   <li><a>rsURL</a></li>
--   <li><a>rsDescription</a></li>
--   </ul>
reviewSource :: ReviewSource

-- | Extra text about the source of the review.
rsExtraDescription :: Lens' ReviewSource (Maybe Text)

-- | URL of the source of the review.
rsURL :: Lens' ReviewSource (Maybe Text)

-- | Name of the source.
rsDescription :: Lens' ReviewSource (Maybe Text)
data AnnotationData

-- | Creates a value of <a>AnnotationData</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>annEncodedData</a></li>
--   <li><a>annKind</a></li>
--   <li><a>annData</a></li>
--   <li><a>annSelfLink</a></li>
--   <li><a>annAnnotationType</a></li>
--   <li><a>annVolumeId</a></li>
--   <li><a>annId</a></li>
--   <li><a>annUpdated</a></li>
--   <li><a>annLayerId</a></li>
--   </ul>
annotationData :: AnnotationData

-- | Base64 encoded data for this annotation data.
annEncodedData :: Lens' AnnotationData (Maybe ByteString)

-- | Resource Type
annKind :: Lens' AnnotationData Text
annData :: Lens' AnnotationData (Maybe JSONValue)

-- | URL for this resource. *
annSelfLink :: Lens' AnnotationData (Maybe Text)

-- | The type of annotation this data is for.
annAnnotationType :: Lens' AnnotationData (Maybe Text)

-- | The volume id for this data. *
annVolumeId :: Lens' AnnotationData (Maybe Text)

-- | Unique id for this annotation data.
annId :: Lens' AnnotationData (Maybe Text)

-- | Timestamp for the last time this data was updated. (RFC 3339 UTC
--   date-time format).
annUpdated :: Lens' AnnotationData (Maybe UTCTime)

-- | The Layer id for this data. *
annLayerId :: Lens' AnnotationData (Maybe Text)
data Volumeannotation

-- | Creates a value of <a>Volumeannotation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>volSelectedText</a></li>
--   <li><a>volAnnotationDataLink</a></li>
--   <li><a>volPageIds</a></li>
--   <li><a>volKind</a></li>
--   <li><a>volData</a></li>
--   <li><a>volSelfLink</a></li>
--   <li><a>volAnnotationType</a></li>
--   <li><a>volAnnotationDataId</a></li>
--   <li><a>volContentRanges</a></li>
--   <li><a>volVolumeId</a></li>
--   <li><a>volId</a></li>
--   <li><a>volDeleted</a></li>
--   <li><a>volUpdated</a></li>
--   <li><a>volLayerId</a></li>
--   </ul>
volumeannotation :: Volumeannotation

-- | Excerpt from the volume.
volSelectedText :: Lens' Volumeannotation (Maybe Text)

-- | Link to get data for this annotation.
volAnnotationDataLink :: Lens' Volumeannotation (Maybe Text)

-- | Pages the annotation spans.
volPageIds :: Lens' Volumeannotation [Text]

-- | Resource Type
volKind :: Lens' Volumeannotation Text

-- | Data for this annotation.
volData :: Lens' Volumeannotation (Maybe Text)

-- | URL to this resource.
volSelfLink :: Lens' Volumeannotation (Maybe Text)

-- | The type of annotation this is.
volAnnotationType :: Lens' Volumeannotation (Maybe Text)

-- | The annotation data id for this volume annotation.
volAnnotationDataId :: Lens' Volumeannotation (Maybe Text)

-- | The content ranges to identify the selected text.
volContentRanges :: Lens' Volumeannotation (Maybe VolumeannotationContentRanges)

-- | The Volume this annotation is for.
volVolumeId :: Lens' Volumeannotation (Maybe Text)

-- | Unique id of this volume annotation.
volId :: Lens' Volumeannotation (Maybe Text)

-- | Indicates that this annotation is deleted.
volDeleted :: Lens' Volumeannotation (Maybe Bool)

-- | Timestamp for the last time this anntoation was updated. (RFC 3339 UTC
--   date-time format).
volUpdated :: Lens' Volumeannotation (Maybe UTCTime)

-- | The Layer this annotation is for.
volLayerId :: Lens' Volumeannotation (Maybe Text)
data BooksCloudLoadingResource

-- | Creates a value of <a>BooksCloudLoadingResource</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bclrProcessingState</a></li>
--   <li><a>bclrVolumeId</a></li>
--   <li><a>bclrAuthor</a></li>
--   <li><a>bclrTitle</a></li>
--   </ul>
booksCloudLoadingResource :: BooksCloudLoadingResource
bclrProcessingState :: Lens' BooksCloudLoadingResource (Maybe Text)
bclrVolumeId :: Lens' BooksCloudLoadingResource (Maybe Text)
bclrAuthor :: Lens' BooksCloudLoadingResource (Maybe Text)
bclrTitle :: Lens' BooksCloudLoadingResource (Maybe Text)
data VolumeseriesInfoVolumeSeriesItemIssueItem

-- | Creates a value of <a>VolumeseriesInfoVolumeSeriesItemIssueItem</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vivsiiiIssueOrderNumber</a></li>
--   <li><a>vivsiiiIssueDisplayNumber</a></li>
--   </ul>
volumeseriesInfoVolumeSeriesItemIssueItem :: VolumeseriesInfoVolumeSeriesItemIssueItem
vivsiiiIssueOrderNumber :: Lens' VolumeseriesInfoVolumeSeriesItemIssueItem (Maybe Int32)
vivsiiiIssueDisplayNumber :: Lens' VolumeseriesInfoVolumeSeriesItemIssueItem (Maybe Text)
data Annotation

-- | Creates a value of <a>Annotation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aaSelectedText</a></li>
--   <li><a>aaLayerSummary</a></li>
--   <li><a>aaHighlightStyle</a></li>
--   <li><a>aaClientVersionRanges</a></li>
--   <li><a>aaPageIds</a></li>
--   <li><a>aaKind</a></li>
--   <li><a>aaData</a></li>
--   <li><a>aaCreated</a></li>
--   <li><a>aaAfterSelectedText</a></li>
--   <li><a>aaSelfLink</a></li>
--   <li><a>aaCurrentVersionRanges</a></li>
--   <li><a>aaVolumeId</a></li>
--   <li><a>aaBeforeSelectedText</a></li>
--   <li><a>aaId</a></li>
--   <li><a>aaDeleted</a></li>
--   <li><a>aaUpdated</a></li>
--   <li><a>aaLayerId</a></li>
--   </ul>
annotation :: Annotation

-- | Excerpt from the volume.
aaSelectedText :: Lens' Annotation (Maybe Text)
aaLayerSummary :: Lens' Annotation (Maybe AnnotationLayerSummary)

-- | The highlight style for this annotation.
aaHighlightStyle :: Lens' Annotation (Maybe Text)

-- | Selection ranges sent from the client.
aaClientVersionRanges :: Lens' Annotation (Maybe AnnotationClientVersionRanges)

-- | Pages that this annotation spans.
aaPageIds :: Lens' Annotation [Text]

-- | Resource type.
aaKind :: Lens' Annotation Text

-- | User-created data for this annotation.
aaData :: Lens' Annotation (Maybe Text)

-- | Timestamp for the created time of this annotation.
aaCreated :: Lens' Annotation (Maybe UTCTime)

-- | Anchor text after excerpt. For requests, if the user bookmarked a
--   screen that has no flowing text on it, then this field should be
--   empty.
aaAfterSelectedText :: Lens' Annotation (Maybe Text)

-- | URL to this resource.
aaSelfLink :: Lens' Annotation (Maybe Text)

-- | Selection ranges for the most recent content version.
aaCurrentVersionRanges :: Lens' Annotation (Maybe AnnotationCurrentVersionRanges)

-- | The volume that this annotation belongs to.
aaVolumeId :: Lens' Annotation (Maybe Text)

-- | Anchor text before excerpt. For requests, if the user bookmarked a
--   screen that has no flowing text on it, then this field should be
--   empty.
aaBeforeSelectedText :: Lens' Annotation (Maybe Text)

-- | Id of this annotation, in the form of a GUID.
aaId :: Lens' Annotation (Maybe Text)

-- | Indicates that this annotation is deleted.
aaDeleted :: Lens' Annotation (Maybe Bool)

-- | Timestamp for the last time this annotation was modified.
aaUpdated :: Lens' Annotation (Maybe UTCTime)

-- | The layer this annotation is for.
aaLayerId :: Lens' Annotation (Maybe Text)

-- | Author of this review.
--   
--   <i>See:</i> <a>reviewAuthor</a> smart constructor.
data ReviewAuthor

-- | Creates a value of <a>ReviewAuthor</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>raDisplayName</a></li>
--   </ul>
reviewAuthor :: ReviewAuthor

-- | Name of this person.
raDisplayName :: Lens' ReviewAuthor (Maybe Text)

-- | The viewport for showing this location. This is a latitude, longitude
--   rectangle.
--   
--   <i>See:</i> <a>geolayerDataGeoViewport</a> smart constructor.
data GeolayerDataGeoViewport

-- | Creates a value of <a>GeolayerDataGeoViewport</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdgvHi</a></li>
--   <li><a>gdgvLo</a></li>
--   </ul>
geolayerDataGeoViewport :: GeolayerDataGeoViewport
gdgvHi :: Lens' GeolayerDataGeoViewport (Maybe GeolayerDataGeoViewportHi)
gdgvLo :: Lens' GeolayerDataGeoViewport (Maybe GeolayerDataGeoViewportLo)

-- | User specific information related to this volume. (e.g. page this user
--   last read or whether they purchased this book)
--   
--   <i>See:</i> <a>volumeUserInfo</a> smart constructor.
data VolumeUserInfo

-- | Creates a value of <a>VolumeUserInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vuiIsFamilySharingAllowed</a></li>
--   <li><a>vuiIsFamilySharedToUser</a></li>
--   <li><a>vuiCopy</a></li>
--   <li><a>vuiUserUploadedVolumeInfo</a></li>
--   <li><a>vuiIsPurchased</a></li>
--   <li><a>vuiEntitlementType</a></li>
--   <li><a>vuiAcquisitionType</a></li>
--   <li><a>vuiAcquiredTime</a></li>
--   <li><a>vuiRentalState</a></li>
--   <li><a>vuiIsPreOrdered</a></li>
--   <li><a>vuiReview</a></li>
--   <li><a>vuiIsFamilySharedFromUser</a></li>
--   <li><a>vuiRentalPeriod</a></li>
--   <li><a>vuiUpdated</a></li>
--   <li><a>vuiIsUploaded</a></li>
--   <li><a>vuiIsInMyBooks</a></li>
--   <li><a>vuiReadingPosition</a></li>
--   <li><a>vuiFamilySharing</a></li>
--   <li><a>vuiIsFamilySharingDisabledByFop</a></li>
--   </ul>
volumeUserInfo :: VolumeUserInfo

-- | Deprecated: Replaced by familySharing.
vuiIsFamilySharingAllowed :: Lens' VolumeUserInfo (Maybe Bool)

-- | Whether or not the user received this volume through family sharing.
vuiIsFamilySharedToUser :: Lens' VolumeUserInfo (Maybe Bool)

-- | Copy/Paste accounting information.
vuiCopy :: Lens' VolumeUserInfo (Maybe VolumeUserInfoCopy)
vuiUserUploadedVolumeInfo :: Lens' VolumeUserInfo (Maybe VolumeUserInfoUserUploadedVolumeInfo)

-- | Whether or not this volume was purchased by the authenticated user
--   making the request. (In LITE projection.)
vuiIsPurchased :: Lens' VolumeUserInfo (Maybe Bool)

-- | Whether this volume is purchased, sample, pd download etc.
vuiEntitlementType :: Lens' VolumeUserInfo (Maybe Int32)

-- | How this volume was acquired.
vuiAcquisitionType :: Lens' VolumeUserInfo (Maybe Int32)

-- | Timestamp when this volume was acquired by the user. (RFC 3339 UTC
--   date-time format) Acquiring includes purchase, user upload, receiving
--   family sharing, etc.
vuiAcquiredTime :: Lens' VolumeUserInfo (Maybe UTCTime)

-- | Whether this book is an active or an expired rental.
vuiRentalState :: Lens' VolumeUserInfo (Maybe Text)

-- | Whether or not this volume was pre-ordered by the authenticated user
--   making the request. (In LITE projection.)
vuiIsPreOrdered :: Lens' VolumeUserInfo (Maybe Bool)

-- | This user's review of this volume, if one exists.
vuiReview :: Lens' VolumeUserInfo (Maybe Review)

-- | Whether or not the user shared this volume with the family.
vuiIsFamilySharedFromUser :: Lens' VolumeUserInfo (Maybe Bool)

-- | Period during this book is/was a valid rental.
vuiRentalPeriod :: Lens' VolumeUserInfo (Maybe VolumeUserInfoRentalPeriod)

-- | 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).
vuiUpdated :: Lens' VolumeUserInfo (Maybe UTCTime)

-- | Whether or not this volume was user uploaded.
vuiIsUploaded :: Lens' VolumeUserInfo (Maybe Bool)

-- | Whether or not this volume is currently in "my books."
vuiIsInMyBooks :: Lens' VolumeUserInfo (Maybe Bool)

-- | The user's current reading position in the volume, if one is
--   available. (In LITE projection.)
vuiReadingPosition :: Lens' VolumeUserInfo (Maybe ReadingPosition)

-- | Information on the ability to share with the family.
vuiFamilySharing :: Lens' VolumeUserInfo (Maybe VolumeUserInfoFamilySharing)

-- | Deprecated: Replaced by familySharing.
vuiIsFamilySharingDisabledByFop :: Lens' VolumeUserInfo (Maybe Bool)
data Layersummary

-- | Creates a value of <a>Layersummary</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lAnnotationsDataLink</a></li>
--   <li><a>lAnnotationsLink</a></li>
--   <li><a>lKind</a></li>
--   <li><a>lDataCount</a></li>
--   <li><a>lContentVersion</a></li>
--   <li><a>lVolumeAnnotationsVersion</a></li>
--   <li><a>lAnnotationCount</a></li>
--   <li><a>lAnnotationTypes</a></li>
--   <li><a>lSelfLink</a></li>
--   <li><a>lVolumeId</a></li>
--   <li><a>lId</a></li>
--   <li><a>lUpdated</a></li>
--   <li><a>lLayerId</a></li>
--   </ul>
layersummary :: Layersummary

-- | Link to get data for this annotation.
lAnnotationsDataLink :: Lens' Layersummary (Maybe Text)

-- | The link to get the annotations for this layer.
lAnnotationsLink :: Lens' Layersummary (Maybe Text)

-- | Resource Type
lKind :: Lens' Layersummary Text

-- | The number of data items for this layer.
lDataCount :: Lens' Layersummary (Maybe Int32)

-- | The content version this resource is for.
lContentVersion :: Lens' Layersummary (Maybe Text)

-- | 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.
lVolumeAnnotationsVersion :: Lens' Layersummary (Maybe Text)

-- | The number of annotations for this layer.
lAnnotationCount :: Lens' Layersummary (Maybe Int32)

-- | The list of annotation types contained for this layer.
lAnnotationTypes :: Lens' Layersummary [Text]

-- | URL to this resource.
lSelfLink :: Lens' Layersummary (Maybe Text)

-- | The volume id this resource is for.
lVolumeId :: Lens' Layersummary (Maybe Text)

-- | Unique id of this layer summary.
lId :: Lens' Layersummary (Maybe Text)

-- | Timestamp for the last time an item in this layer was updated. (RFC
--   3339 UTC date-time format).
lUpdated :: Lens' Layersummary (Maybe UTCTime)

-- | The layer id for this summary.
lLayerId :: Lens' Layersummary (Maybe Text)

-- | Restrict search to this user's library.
data VolumesListLibraryRestrict

-- | <tt>my-library</tt> Restrict to the user's library, any shelf.
MyLibrary :: VolumesListLibraryRestrict

-- | <tt>no-restrict</tt> Do not restrict based on user's library.
NoRestrict :: VolumesListLibraryRestrict

-- | The content ranges to identify the selected text.
--   
--   <i>See:</i> <a>volumeannotationContentRanges</a> smart constructor.
data VolumeannotationContentRanges

-- | Creates a value of <a>VolumeannotationContentRanges</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vcrGbImageRange</a></li>
--   <li><a>vcrContentVersion</a></li>
--   <li><a>vcrGbTextRange</a></li>
--   <li><a>vcrCfiRange</a></li>
--   </ul>
volumeannotationContentRanges :: VolumeannotationContentRanges

-- | Range in GB image format for this annotation for version above.
vcrGbImageRange :: Lens' VolumeannotationContentRanges (Maybe BooksAnnotationsRange)

-- | Content version applicable to ranges below.
vcrContentVersion :: Lens' VolumeannotationContentRanges (Maybe Text)

-- | Range in GB text format for this annotation for version above.
vcrGbTextRange :: Lens' VolumeannotationContentRanges (Maybe BooksAnnotationsRange)

-- | Range in CFI format for this annotation for version above.
vcrCfiRange :: Lens' VolumeannotationContentRanges (Maybe BooksAnnotationsRange)

-- | 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.).
--   
--   <i>See:</i> <a>volumeAccessInfo</a> smart constructor.
data VolumeAccessInfo

-- | Creates a value of <a>VolumeAccessInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vaiWebReaderLink</a></li>
--   <li><a>vaiCountry</a></li>
--   <li><a>vaiDriveImportedContentLink</a></li>
--   <li><a>vaiExplicitOfflineLicenseManagement</a></li>
--   <li><a>vaiViewability</a></li>
--   <li><a>vaiQuoteSharingAllowed</a></li>
--   <li><a>vaiEpub</a></li>
--   <li><a>vaiPdf</a></li>
--   <li><a>vaiTextToSpeechPermission</a></li>
--   <li><a>vaiEmbeddable</a></li>
--   <li><a>vaiAccessViewStatus</a></li>
--   <li><a>vaiDownloadAccess</a></li>
--   <li><a>vaiViewOrderURL</a></li>
--   <li><a>vaiPublicDomain</a></li>
--   </ul>
volumeAccessInfo :: VolumeAccessInfo

-- | URL to read this volume on the Google Books site. Link will not allow
--   users to read non-viewable volumes.
vaiWebReaderLink :: Lens' VolumeAccessInfo (Maybe Text)

-- | The two-letter ISO_3166-1 country code for which this access
--   information is valid. (In LITE projection.)
vaiCountry :: Lens' VolumeAccessInfo (Maybe Text)

-- | URL to the Google Drive viewer if this volume is uploaded by the user
--   by selecting the file from Google Drive.
vaiDriveImportedContentLink :: Lens' VolumeAccessInfo (Maybe Text)

-- | 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.
vaiExplicitOfflineLicenseManagement :: Lens' VolumeAccessInfo (Maybe Bool)

-- | 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.
vaiViewability :: Lens' VolumeAccessInfo (Maybe Text)

-- | Whether quote sharing is allowed for this volume.
vaiQuoteSharingAllowed :: Lens' VolumeAccessInfo (Maybe Bool)

-- | Information about epub content. (In LITE projection.)
vaiEpub :: Lens' VolumeAccessInfo (Maybe VolumeAccessInfoEpub)

-- | Information about pdf content. (In LITE projection.)
vaiPdf :: Lens' VolumeAccessInfo (Maybe VolumeAccessInfoPdf)

-- | Whether text-to-speech is permitted for this volume. Values can be
--   ALLOWED, ALLOWED_FOR_ACCESSIBILITY, or NOT_ALLOWED.
vaiTextToSpeechPermission :: Lens' VolumeAccessInfo (Maybe Text)

-- | Whether this volume can be embedded in a viewport using the Embedded
--   Viewer API.
vaiEmbeddable :: Lens' VolumeAccessInfo (Maybe Bool)

-- | 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.)
vaiAccessViewStatus :: Lens' VolumeAccessInfo (Maybe Text)

-- | Information about a volume's download license access restrictions.
vaiDownloadAccess :: Lens' VolumeAccessInfo (Maybe DownloadAccessRestriction)

-- | For ordered but not yet processed orders, we give a URL that can be
--   used to go to the appropriate Google Wallet page.
vaiViewOrderURL :: Lens' VolumeAccessInfo (Maybe Text)

-- | Whether or not this book is public domain in the country listed above.
vaiPublicDomain :: Lens' VolumeAccessInfo (Maybe Bool)

-- | A top-level summary of the panelization info in this volume.
--   
--   <i>See:</i> <a>volumeVolumeInfoPanelizationSummary</a> smart
--   constructor.
data VolumeVolumeInfoPanelizationSummary

-- | Creates a value of <a>VolumeVolumeInfoPanelizationSummary</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vvipsEpubBubbleVersion</a></li>
--   <li><a>vvipsContainsImageBubbles</a></li>
--   <li><a>vvipsContainsEpubBubbles</a></li>
--   <li><a>vvipsImageBubbleVersion</a></li>
--   </ul>
volumeVolumeInfoPanelizationSummary :: VolumeVolumeInfoPanelizationSummary
vvipsEpubBubbleVersion :: Lens' VolumeVolumeInfoPanelizationSummary (Maybe Text)
vvipsContainsImageBubbles :: Lens' VolumeVolumeInfoPanelizationSummary (Maybe Bool)
vvipsContainsEpubBubbles :: Lens' VolumeVolumeInfoPanelizationSummary (Maybe Bool)
vvipsImageBubbleVersion :: Lens' VolumeVolumeInfoPanelizationSummary (Maybe Text)

-- | The reason for which the book is removed from the library.
data MyLibraryBookshelvesRemoveVolumeReason

-- | <tt>ONBOARDING</tt> Samples removed from the Onboarding flow.
Onboarding :: MyLibraryBookshelvesRemoveVolumeReason

-- | A list of image links for all the sizes that are available. (In LITE
--   projection.)
--   
--   <i>See:</i> <a>volumeVolumeInfoImageLinks</a> smart constructor.
data VolumeVolumeInfoImageLinks

-- | Creates a value of <a>VolumeVolumeInfoImageLinks</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vviilThumbnail</a></li>
--   <li><a>vviilSmall</a></li>
--   <li><a>vviilExtraLarge</a></li>
--   <li><a>vviilLarge</a></li>
--   <li><a>vviilMedium</a></li>
--   <li><a>vviilSmallThumbnail</a></li>
--   </ul>
volumeVolumeInfoImageLinks :: VolumeVolumeInfoImageLinks

-- | Image link for thumbnail size (width of ~128 pixels). (In LITE
--   projection)
vviilThumbnail :: Lens' VolumeVolumeInfoImageLinks (Maybe Text)

-- | Image link for small size (width of ~300 pixels). (In LITE projection)
vviilSmall :: Lens' VolumeVolumeInfoImageLinks (Maybe Text)

-- | Image link for extra large size (width of ~1280 pixels). (In LITE
--   projection)
vviilExtraLarge :: Lens' VolumeVolumeInfoImageLinks (Maybe Text)

-- | Image link for large size (width of ~800 pixels). (In LITE projection)
vviilLarge :: Lens' VolumeVolumeInfoImageLinks (Maybe Text)

-- | Image link for medium size (width of ~575 pixels). (In LITE
--   projection)
vviilMedium :: Lens' VolumeVolumeInfoImageLinks (Maybe Text)

-- | Image link for small thumbnail size (width of ~80 pixels). (In LITE
--   projection)
vviilSmallThumbnail :: Lens' VolumeVolumeInfoImageLinks (Maybe Text)

-- | The maximum allowed maturity rating of returned volumes. Books with a
--   higher maturity rating are filtered out.
data OnboardingListCategoryVolumesMaxAllowedMaturityRating

-- | <tt>mature</tt> Show books which are rated mature or lower.
Mature :: OnboardingListCategoryVolumesMaxAllowedMaturityRating

-- | <tt>not-mature</tt> Show books which are rated not mature.
NotMature :: OnboardingListCategoryVolumesMaxAllowedMaturityRating
data VolumeUserInfoUserUploadedVolumeInfo

-- | Creates a value of <a>VolumeUserInfoUserUploadedVolumeInfo</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vuiuuviProcessingState</a></li>
--   </ul>
volumeUserInfoUserUploadedVolumeInfo :: VolumeUserInfoUserUploadedVolumeInfo
vuiuuviProcessingState :: Lens' VolumeUserInfoUserUploadedVolumeInfo (Maybe Text)

-- | Copy/Paste accounting information.
--   
--   <i>See:</i> <a>volumeUserInfoCopy</a> smart constructor.
data VolumeUserInfoCopy

-- | Creates a value of <a>VolumeUserInfoCopy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vuicLimitType</a></li>
--   <li><a>vuicAllowedCharacterCount</a></li>
--   <li><a>vuicUpdated</a></li>
--   <li><a>vuicRemainingCharacterCount</a></li>
--   </ul>
volumeUserInfoCopy :: VolumeUserInfoCopy
vuicLimitType :: Lens' VolumeUserInfoCopy (Maybe Text)
vuicAllowedCharacterCount :: Lens' VolumeUserInfoCopy (Maybe Int32)
vuicUpdated :: Lens' VolumeUserInfoCopy (Maybe UTCTime)
vuicRemainingCharacterCount :: Lens' VolumeUserInfoCopy (Maybe Int32)
data BooksVolumesRecommendedRateResponse

-- | Creates a value of <a>BooksVolumesRecommendedRateResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bvrrrConsistencyToken</a></li>
--   </ul>
booksVolumesRecommendedRateResponse :: BooksVolumesRecommendedRateResponse
bvrrrConsistencyToken :: Lens' BooksVolumesRecommendedRateResponse (Maybe Text)
data VolumeseriesInfo

-- | Creates a value of <a>VolumeseriesInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>viBookDisplayNumber</a></li>
--   <li><a>viKind</a></li>
--   <li><a>viShortSeriesBookTitle</a></li>
--   <li><a>viVolumeSeries</a></li>
--   </ul>
volumeseriesInfo :: VolumeseriesInfo

-- | The display number string. This should be used only for display
--   purposes and the actual sequence should be inferred from the below
--   orderNumber.
viBookDisplayNumber :: Lens' VolumeseriesInfo (Maybe Text)

-- | Resource type.
viKind :: Lens' VolumeseriesInfo Text

-- | Short book title in the context of the series.
viShortSeriesBookTitle :: Lens' VolumeseriesInfo (Maybe Text)
viVolumeSeries :: Lens' VolumeseriesInfo [VolumeseriesInfoVolumeSeriesItem]
data Bookshelf

-- | Creates a value of <a>Bookshelf</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bAccess</a></li>
--   <li><a>bVolumesLastUpdated</a></li>
--   <li><a>bKind</a></li>
--   <li><a>bCreated</a></li>
--   <li><a>bVolumeCount</a></li>
--   <li><a>bSelfLink</a></li>
--   <li><a>bId</a></li>
--   <li><a>bUpdated</a></li>
--   <li><a>bTitle</a></li>
--   <li><a>bDescription</a></li>
--   </ul>
bookshelf :: Bookshelf

-- | Whether this bookshelf is PUBLIC or PRIVATE.
bAccess :: Lens' Bookshelf (Maybe Text)

-- | Last time a volume was added or removed from this bookshelf (formatted
--   UTC timestamp with millisecond resolution).
bVolumesLastUpdated :: Lens' Bookshelf (Maybe UTCTime)

-- | Resource type for bookshelf metadata.
bKind :: Lens' Bookshelf Text

-- | Created time for this bookshelf (formatted UTC timestamp with
--   millisecond resolution).
bCreated :: Lens' Bookshelf (Maybe UTCTime)

-- | Number of volumes in this bookshelf.
bVolumeCount :: Lens' Bookshelf (Maybe Int32)

-- | URL to this resource.
bSelfLink :: Lens' Bookshelf (Maybe Text)

-- | Id of this bookshelf, only unique by user.
bId :: Lens' Bookshelf (Maybe Int32)

-- | Last modified time of this bookshelf (formatted UTC timestamp with
--   millisecond resolution).
bUpdated :: Lens' Bookshelf (Maybe UTCTime)

-- | Title of this bookshelf.
bTitle :: Lens' Bookshelf (Maybe Text)

-- | Description of this bookshelf.
bDescription :: Lens' Bookshelf (Maybe Text)
data Notification

-- | Creates a value of <a>Notification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nDocType</a></li>
--   <li><a>nTargetURL</a></li>
--   <li><a>nShowNotificationSettingsAction</a></li>
--   <li><a>nDocId</a></li>
--   <li><a>nKind</a></li>
--   <li><a>nBody</a></li>
--   <li><a>nCrmExperimentIds</a></li>
--   <li><a>nPcampaignId</a></li>
--   <li><a>nReason</a></li>
--   <li><a>nDontShowNotification</a></li>
--   <li><a>nNotificationType</a></li>
--   <li><a>nNotificationGroup</a></li>
--   <li><a>nIconURL</a></li>
--   <li><a>nTitle</a></li>
--   </ul>
notification :: Notification
nDocType :: Lens' Notification (Maybe Text)
nTargetURL :: Lens' Notification (Maybe Text)
nShowNotificationSettingsAction :: Lens' Notification (Maybe Bool)
nDocId :: Lens' Notification (Maybe Text)

-- | Resource type.
nKind :: Lens' Notification Text
nBody :: Lens' Notification (Maybe Text)

-- | The list of crm experiment ids.
nCrmExperimentIds :: Lens' Notification [Int64]
nPcampaignId :: Lens' Notification (Maybe Text)
nReason :: Lens' Notification (Maybe Text)
nDontShowNotification :: Lens' Notification (Maybe Bool)
nNotificationType :: Lens' Notification (Maybe Text)
nNotificationGroup :: Lens' Notification (Maybe Text)
nIconURL :: Lens' Notification (Maybe Text)
nTitle :: Lens' Notification (Maybe Text)

-- | Restrict to volumes by download availability.
data VolumesListDownload

-- | <tt>epub</tt> All volumes with epub.
Epub :: VolumesListDownload
data AnnotationsSummaryLayersItem

-- | Creates a value of <a>AnnotationsSummaryLayersItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>asliLimitType</a></li>
--   <li><a>asliAllowedCharacterCount</a></li>
--   <li><a>asliUpdated</a></li>
--   <li><a>asliLayerId</a></li>
--   <li><a>asliRemainingCharacterCount</a></li>
--   </ul>
annotationsSummaryLayersItem :: AnnotationsSummaryLayersItem
asliLimitType :: Lens' AnnotationsSummaryLayersItem (Maybe Text)
asliAllowedCharacterCount :: Lens' AnnotationsSummaryLayersItem (Maybe Int32)
asliUpdated :: Lens' AnnotationsSummaryLayersItem (Maybe UTCTime)
asliLayerId :: Lens' AnnotationsSummaryLayersItem (Maybe Text)
asliRemainingCharacterCount :: Lens' AnnotationsSummaryLayersItem (Maybe Int32)

-- | The rental duration (for rental offers only).
--   
--   <i>See:</i> <a>volumeSaleInfoOffersItemRentalDuration</a> smart
--   constructor.
data VolumeSaleInfoOffersItemRentalDuration

-- | Creates a value of <a>VolumeSaleInfoOffersItemRentalDuration</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsioirdCount</a></li>
--   <li><a>vsioirdUnit</a></li>
--   </ul>
volumeSaleInfoOffersItemRentalDuration :: VolumeSaleInfoOffersItemRentalDuration
vsioirdCount :: Lens' VolumeSaleInfoOffersItemRentalDuration (Maybe Double)
vsioirdUnit :: Lens' VolumeSaleInfoOffersItemRentalDuration (Maybe Text)
data DictlayerDataDictWordsItemExamplesItem

-- | Creates a value of <a>DictlayerDataDictWordsItemExamplesItem</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwieiText</a></li>
--   <li><a>dddwieiSource</a></li>
--   </ul>
dictlayerDataDictWordsItemExamplesItem :: DictlayerDataDictWordsItemExamplesItem
dddwieiText :: Lens' DictlayerDataDictWordsItemExamplesItem (Maybe Text)
dddwieiSource :: Lens' DictlayerDataDictWordsItemExamplesItem (Maybe DictlayerDataDictWordsItemExamplesItemSource)
data OffersItemsItem

-- | Creates a value of <a>OffersItemsItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oiiItems</a></li>
--   <li><a>oiiArtURL</a></li>
--   <li><a>oiiId</a></li>
--   <li><a>oiiGServicesKey</a></li>
--   </ul>
offersItemsItem :: OffersItemsItem
oiiItems :: Lens' OffersItemsItem [OffersItemsItemItemsItem]
oiiArtURL :: Lens' OffersItemsItem (Maybe Text)
oiiId :: Lens' OffersItemsItem (Maybe Text)
oiiGServicesKey :: Lens' OffersItemsItem (Maybe Text)
data AnnotationLayerSummary

-- | Creates a value of <a>AnnotationLayerSummary</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>alsLimitType</a></li>
--   <li><a>alsAllowedCharacterCount</a></li>
--   <li><a>alsRemainingCharacterCount</a></li>
--   </ul>
annotationLayerSummary :: AnnotationLayerSummary

-- | Type of limitation on this layer. "limited" or "unlimited" for the
--   "copy" layer.
alsLimitType :: Lens' AnnotationLayerSummary (Maybe Text)

-- | Maximum allowed characters on this layer, especially for the "copy"
--   layer.
alsAllowedCharacterCount :: Lens' AnnotationLayerSummary (Maybe Int32)

-- | Remaining allowed characters on this layer, especially for the "copy"
--   layer.
alsRemainingCharacterCount :: Lens' AnnotationLayerSummary (Maybe Int32)

-- | Search result information related to this volume.
--   
--   <i>See:</i> <a>volumeSearchInfo</a> smart constructor.
data VolumeSearchInfo

-- | Creates a value of <a>VolumeSearchInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsiTextSnippet</a></li>
--   </ul>
volumeSearchInfo :: VolumeSearchInfo

-- | A text snippet containing the search query.
vsiTextSnippet :: Lens' VolumeSearchInfo (Maybe Text)
data AnnotationsSummary

-- | Creates a value of <a>AnnotationsSummary</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>asKind</a></li>
--   <li><a>asLayers</a></li>
--   </ul>
annotationsSummary :: AnnotationsSummary
asKind :: Lens' AnnotationsSummary Text
asLayers :: Lens' AnnotationsSummary [AnnotationsSummaryLayersItem]

-- | Restrict information returned to a set of selected fields.
data VolumesGetProjection

-- | <tt>full</tt> Includes all volume data.
VGPFull :: VolumesGetProjection

-- | <tt>lite</tt> Includes a subset of fields in volumeInfo and
--   accessInfo.
VGPLite :: VolumesGetProjection
data Category

-- | Creates a value of <a>Category</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cKind</a></li>
--   <li><a>cItems</a></li>
--   </ul>
category :: Category

-- | Resource type.
cKind :: Lens' Category Text

-- | A list of onboarding categories.
cItems :: Lens' Category [CategoryItemsItem]

-- | Association type.
data VolumesAssociatedListAssociation

-- | <tt>end-of-sample</tt> Recommendations for display end-of-sample.
EndOfSample :: VolumesAssociatedListAssociation

-- | <tt>end-of-volume</tt> Recommendations for display end-of-volume.
EndOfVolume :: VolumesAssociatedListAssociation

-- | <tt>related-for-play</tt> Related volumes for Play Store.
RelatedForPlay :: VolumesAssociatedListAssociation
data DiscoveryclustersClustersItemBanner_with_content_container

-- | Creates a value of
--   <a>DiscoveryclustersClustersItemBanner_with_content_container</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcibFillColorArgb</a></li>
--   <li><a>dcibMoreButtonURL</a></li>
--   <li><a>dcibTextColorArgb</a></li>
--   <li><a>dcibMoreButtonText</a></li>
--   <li><a>dcibImageURL</a></li>
--   <li><a>dcibMaskColorArgb</a></li>
--   </ul>
discoveryclustersClustersItemBanner_with_content_container :: DiscoveryclustersClustersItemBanner_with_content_container
dcibFillColorArgb :: Lens' DiscoveryclustersClustersItemBanner_with_content_container (Maybe Text)
dcibMoreButtonURL :: Lens' DiscoveryclustersClustersItemBanner_with_content_container (Maybe Text)
dcibTextColorArgb :: Lens' DiscoveryclustersClustersItemBanner_with_content_container (Maybe Text)
dcibMoreButtonText :: Lens' DiscoveryclustersClustersItemBanner_with_content_container (Maybe Text)
dcibImageURL :: Lens' DiscoveryclustersClustersItemBanner_with_content_container (Maybe Text)
dcibMaskColorArgb :: Lens' DiscoveryclustersClustersItemBanner_with_content_container (Maybe Text)
data Volume

-- | Creates a value of <a>Volume</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vvUserInfo</a></li>
--   <li><a>vvEtag</a></li>
--   <li><a>vvAccessInfo</a></li>
--   <li><a>vvKind</a></li>
--   <li><a>vvSearchInfo</a></li>
--   <li><a>vvSelfLink</a></li>
--   <li><a>vvLayerInfo</a></li>
--   <li><a>vvSaleInfo</a></li>
--   <li><a>vvId</a></li>
--   <li><a>vvRecommendedInfo</a></li>
--   <li><a>vvVolumeInfo</a></li>
--   </ul>
volume :: Volume

-- | User specific information related to this volume. (e.g. page this user
--   last read or whether they purchased this book)
vvUserInfo :: Lens' Volume (Maybe VolumeUserInfo)

-- | Opaque identifier for a specific version of a volume resource. (In
--   LITE projection)
vvEtag :: Lens' Volume (Maybe Text)

-- | 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.).
vvAccessInfo :: Lens' Volume (Maybe VolumeAccessInfo)

-- | Resource type for a volume. (In LITE projection.)
vvKind :: Lens' Volume Text

-- | Search result information related to this volume.
vvSearchInfo :: Lens' Volume (Maybe VolumeSearchInfo)

-- | URL to this resource. (In LITE projection.)
vvSelfLink :: Lens' Volume (Maybe Text)

-- | What layers exist in this volume and high level information about
--   them.
vvLayerInfo :: Lens' Volume (Maybe VolumeLayerInfo)

-- | 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).
vvSaleInfo :: Lens' Volume (Maybe VolumeSaleInfo)

-- | Unique identifier for a volume. (In LITE projection.)
vvId :: Lens' Volume (Maybe Text)

-- | Recommendation related information for this volume.
vvRecommendedInfo :: Lens' Volume (Maybe VolumeRecommendedInfo)

-- | General volume information.
vvVolumeInfo :: Lens' Volume (Maybe VolumeVolumeInfo)
data GeolayerDataGeoBoundaryItemItem

-- | Creates a value of <a>GeolayerDataGeoBoundaryItemItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdgbiiLatitude</a></li>
--   <li><a>gdgbiiLongitude</a></li>
--   </ul>
geolayerDataGeoBoundaryItemItem :: GeolayerDataGeoBoundaryItemItem
gdgbiiLatitude :: Lens' GeolayerDataGeoBoundaryItemItem (Maybe Word32)
gdgbiiLongitude :: Lens' GeolayerDataGeoBoundaryItemItem (Maybe Word32)
data Series

-- | Creates a value of <a>Series</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sKind</a></li>
--   <li><a>sSeries</a></li>
--   </ul>
series :: Series

-- | Resource type.
sKind :: Lens' Series Text
sSeries :: Lens' Series [SeriesSeriesItem]
data OffersItemsItemItemsItem

-- | Creates a value of <a>OffersItemsItemItemsItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oiiiiCanonicalVolumeLink</a></li>
--   <li><a>oiiiiCoverURL</a></li>
--   <li><a>oiiiiVolumeId</a></li>
--   <li><a>oiiiiAuthor</a></li>
--   <li><a>oiiiiTitle</a></li>
--   <li><a>oiiiiDescription</a></li>
--   </ul>
offersItemsItemItemsItem :: OffersItemsItemItemsItem
oiiiiCanonicalVolumeLink :: Lens' OffersItemsItemItemsItem (Maybe Text)
oiiiiCoverURL :: Lens' OffersItemsItemItemsItem (Maybe Text)
oiiiiVolumeId :: Lens' OffersItemsItemItemsItem (Maybe Text)
oiiiiAuthor :: Lens' OffersItemsItemItemsItem (Maybe Text)
oiiiiTitle :: Lens' OffersItemsItemItemsItem (Maybe Text)
oiiiiDescription :: Lens' OffersItemsItemItemsItem (Maybe Text)
data DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource

-- | Creates a value of
--   <a>DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwisidieisURL</a></li>
--   <li><a>dddwisidieisAttribution</a></li>
--   </ul>
dictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource :: DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource
dddwisidieisURL :: Lens' DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource (Maybe Text)
dddwisidieisAttribution :: Lens' DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource (Maybe Text)
data GeolayerDataCommon

-- | Creates a value of <a>GeolayerDataCommon</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdcSnippet</a></li>
--   <li><a>gdcSnippetURL</a></li>
--   <li><a>gdcLang</a></li>
--   <li><a>gdcTitle</a></li>
--   <li><a>gdcPreviewImageURL</a></li>
--   </ul>
geolayerDataCommon :: GeolayerDataCommon

-- | The description for this location.
gdcSnippet :: Lens' GeolayerDataCommon (Maybe Text)

-- | The URL for information for this location. Ex: wikipedia link.
gdcSnippetURL :: Lens' GeolayerDataCommon (Maybe Text)

-- | The language of the information url and description.
gdcLang :: Lens' GeolayerDataCommon (Maybe Text)

-- | The display title and localized canonical name to use when searching
--   for this entity on Google search.
gdcTitle :: Lens' GeolayerDataCommon (Maybe Text)

-- | The URL for the preview image information.
gdcPreviewImageURL :: Lens' GeolayerDataCommon (Maybe Text)
data GeolayerDataGeo

-- | Creates a value of <a>GeolayerDataGeo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdgMapType</a></li>
--   <li><a>gdgCachePolicy</a></li>
--   <li><a>gdgViewport</a></li>
--   <li><a>gdgBoundary</a></li>
--   <li><a>gdgLatitude</a></li>
--   <li><a>gdgZoom</a></li>
--   <li><a>gdgCountryCode</a></li>
--   <li><a>gdgLongitude</a></li>
--   </ul>
geolayerDataGeo :: GeolayerDataGeo

-- | The type of map that should be used for this location. EX: HYBRID,
--   ROADMAP, SATELLITE, TERRAIN
gdgMapType :: Lens' GeolayerDataGeo (Maybe Text)

-- | The cache policy active for this data. EX: UNRESTRICTED, RESTRICTED,
--   NEVER
gdgCachePolicy :: Lens' GeolayerDataGeo (Maybe Text)

-- | The viewport for showing this location. This is a latitude, longitude
--   rectangle.
gdgViewport :: Lens' GeolayerDataGeo (Maybe GeolayerDataGeoViewport)

-- | The boundary of the location as a set of loops containing pairs of
--   latitude, longitude coordinates.
gdgBoundary :: Lens' GeolayerDataGeo [[GeolayerDataGeoBoundaryItemItem]]

-- | The latitude of the location.
gdgLatitude :: Lens' GeolayerDataGeo (Maybe Double)

-- | The Zoom level to use for the map. Zoom levels between 0 (the lowest
--   zoom level, in which the entire world can be seen on one map) to 21+
--   (down to individual buildings). See:
--   https://developers.google.com/maps/documentation/staticmaps/#Zoomlevels
gdgZoom :: Lens' GeolayerDataGeo (Maybe Int32)

-- | The country code of the location.
gdgCountryCode :: Lens' GeolayerDataGeo (Maybe Text)

-- | The longitude of the location.
gdgLongitude :: Lens' GeolayerDataGeo (Maybe Double)
data DictlayerDataDictWordsItem

-- | Creates a value of <a>DictlayerDataDictWordsItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwiSenses</a></li>
--   <li><a>dddwiSource</a></li>
--   <li><a>dddwiDerivatives</a></li>
--   <li><a>dddwiExamples</a></li>
--   </ul>
dictlayerDataDictWordsItem :: DictlayerDataDictWordsItem
dddwiSenses :: Lens' DictlayerDataDictWordsItem [DictlayerDataDictWordsItemSensesItem]

-- | The words with different meanings but not related words, e.g. "go"
--   (game) and "go" (verb).
dddwiSource :: Lens' DictlayerDataDictWordsItem (Maybe DictlayerDataDictWordsItemSource)
dddwiDerivatives :: Lens' DictlayerDataDictWordsItem [DictlayerDataDictWordsItemDerivativesItem]
dddwiExamples :: Lens' DictlayerDataDictWordsItem [DictlayerDataDictWordsItemExamplesItem]
data CategoryItemsItem

-- | Creates a value of <a>CategoryItemsItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ciiName</a></li>
--   <li><a>ciiCategoryId</a></li>
--   <li><a>ciiBadgeURL</a></li>
--   </ul>
categoryItemsItem :: CategoryItemsItem
ciiName :: Lens' CategoryItemsItem (Maybe Text)
ciiCategoryId :: Lens' CategoryItemsItem (Maybe Text)
ciiBadgeURL :: Lens' CategoryItemsItem (Maybe Text)
data DictlayerDataDictWordsItemDerivativesItemSource

-- | Creates a value of
--   <a>DictlayerDataDictWordsItemDerivativesItemSource</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwidisURL</a></li>
--   <li><a>dddwidisAttribution</a></li>
--   </ul>
dictlayerDataDictWordsItemDerivativesItemSource :: DictlayerDataDictWordsItemDerivativesItemSource
dddwidisURL :: Lens' DictlayerDataDictWordsItemDerivativesItemSource (Maybe Text)
dddwidisAttribution :: Lens' DictlayerDataDictWordsItemDerivativesItemSource (Maybe Text)

-- | Rating to be given to the volume.
data VolumesRecommendedRateRating

-- | <tt>HAVE_IT</tt> Rating indicating a dismissal due to ownership.
HaveIt :: VolumesRecommendedRateRating

-- | <tt>NOT_INTERESTED</tt> Rating indicating a negative dismissal of a
--   volume.
NotInterested :: VolumesRecommendedRateRating
data GeolayerData

-- | Creates a value of <a>GeolayerData</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdKind</a></li>
--   <li><a>gdGeo</a></li>
--   <li><a>gdCommon</a></li>
--   </ul>
geolayerData :: GeolayerData
gdKind :: Lens' GeolayerData Text
gdGeo :: Lens' GeolayerData (Maybe GeolayerDataGeo)
gdCommon :: Lens' GeolayerData (Maybe GeolayerDataCommon)

-- | The words with different meanings but not related words, e.g. "go"
--   (game) and "go" (verb).
--   
--   <i>See:</i> <a>dictlayerDataDictWordsItemSource</a> smart constructor.
data DictlayerDataDictWordsItemSource

-- | Creates a value of <a>DictlayerDataDictWordsItemSource</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwisURL</a></li>
--   <li><a>dddwisAttribution</a></li>
--   </ul>
dictlayerDataDictWordsItemSource :: DictlayerDataDictWordsItemSource
dddwisURL :: Lens' DictlayerDataDictWordsItemSource (Maybe Text)
dddwisAttribution :: Lens' DictlayerDataDictWordsItemSource (Maybe Text)
data DictlayerDataDictWordsItemDerivativesItem

-- | Creates a value of <a>DictlayerDataDictWordsItemDerivativesItem</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwidiText</a></li>
--   <li><a>dddwidiSource</a></li>
--   </ul>
dictlayerDataDictWordsItemDerivativesItem :: DictlayerDataDictWordsItemDerivativesItem
dddwidiText :: Lens' DictlayerDataDictWordsItemDerivativesItem (Maybe Text)
dddwidiSource :: Lens' DictlayerDataDictWordsItemDerivativesItem (Maybe DictlayerDataDictWordsItemDerivativesItemSource)

-- | The processing state of the user uploaded volumes to be returned.
data VolumesUserUploadedListProcessingState

-- | <tt>COMPLETED_FAILED</tt> The volume processing hase failed.
CompletedFailed :: VolumesUserUploadedListProcessingState

-- | <tt>COMPLETED_SUCCESS</tt> The volume processing was completed.
CompletedSuccess :: VolumesUserUploadedListProcessingState

-- | <tt>RUNNING</tt> The volume processing is not completed.
Running :: VolumesUserUploadedListProcessingState

-- | List of features supported by the client, i.e., 'RENTALS'
data MyConfigSyncVolumeLicensesFeatures

-- | <tt>RENTALS</tt> Client supports rentals.
Rentals :: MyConfigSyncVolumeLicensesFeatures
data DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem

-- | Creates a value of
--   <a>DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwisidieiText</a></li>
--   <li><a>dddwisidieiSource</a></li>
--   </ul>
dictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem :: DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem
dddwisidieiText :: Lens' DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem (Maybe Text)
dddwisidieiSource :: Lens' DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem (Maybe DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource)
data DictlayerData

-- | Creates a value of <a>DictlayerData</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddKind</a></li>
--   <li><a>ddDict</a></li>
--   <li><a>ddCommon</a></li>
--   </ul>
dictlayerData :: DictlayerData
ddKind :: Lens' DictlayerData Text
ddDict :: Lens' DictlayerData (Maybe DictlayerDataDict)
ddCommon :: Lens' DictlayerData (Maybe DictlayerDataCommon)

-- | The maximum allowed maturity rating of returned recommendations. Books
--   with a higher maturity rating are filtered out.
data VolumesAssociatedListMaxAllowedMaturityRating

-- | <tt>mature</tt> Show books which are rated mature or lower.
VALMAMRMature :: VolumesAssociatedListMaxAllowedMaturityRating

-- | <tt>not-mature</tt> Show books which are rated not mature.
VALMAMRNotMature :: VolumesAssociatedListMaxAllowedMaturityRating
data DictlayerDataDictWordsItemSensesItemSynonymsItemSource

-- | Creates a value of
--   <a>DictlayerDataDictWordsItemSensesItemSynonymsItemSource</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwisisisURL</a></li>
--   <li><a>dddwisisisAttribution</a></li>
--   </ul>
dictlayerDataDictWordsItemSensesItemSynonymsItemSource :: DictlayerDataDictWordsItemSensesItemSynonymsItemSource
dddwisisisURL :: Lens' DictlayerDataDictWordsItemSensesItemSynonymsItemSource (Maybe Text)
dddwisisisAttribution :: Lens' DictlayerDataDictWordsItemSensesItemSynonymsItemSource (Maybe Text)
data Seriesmembership

-- | Creates a value of <a>Seriesmembership</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>serNextPageToken</a></li>
--   <li><a>serKind</a></li>
--   <li><a>serMember</a></li>
--   </ul>
seriesmembership :: Seriesmembership
serNextPageToken :: Lens' Seriesmembership (Maybe Text)

-- | Resorce type.
serKind :: Lens' Seriesmembership Text
serMember :: Lens' Seriesmembership [Volume]

-- | Filter search results.
data VolumesListFilter

-- | <tt>ebooks</tt> All Google eBooks.
VLFEbooks :: VolumesListFilter

-- | <tt>free-ebooks</tt> Google eBook with full volume text viewability.
VLFFreeEbooks :: VolumesListFilter

-- | <tt>full</tt> Public can view entire volume text.
VLFFull :: VolumesListFilter

-- | <tt>paid-ebooks</tt> Google eBook with a price.
VLFPaidEbooks :: VolumesListFilter

-- | <tt>partial</tt> Public able to see parts of text.
VLFPartial :: VolumesListFilter
data UserSettingsNotification

-- | Creates a value of <a>UserSettingsNotification</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usnMoreFromAuthors</a></li>
--   <li><a>usnMoreFromSeries</a></li>
--   </ul>
userSettingsNotification :: UserSettingsNotification
usnMoreFromAuthors :: Lens' UserSettingsNotification (Maybe UserSettingsNotificationMoreFromAuthors)
usnMoreFromSeries :: Lens' UserSettingsNotification (Maybe UserSettingsNotificationMoreFromSeries)
data DictlayerDataDictWordsItemSensesItemSynonymsItem

-- | Creates a value of
--   <a>DictlayerDataDictWordsItemSensesItemSynonymsItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwisisiText</a></li>
--   <li><a>dddwisisiSource</a></li>
--   </ul>
dictlayerDataDictWordsItemSensesItemSynonymsItem :: DictlayerDataDictWordsItemSensesItemSynonymsItem
dddwisisiText :: Lens' DictlayerDataDictWordsItemSensesItemSynonymsItem (Maybe Text)
dddwisisiSource :: Lens' DictlayerDataDictWordsItemSensesItemSynonymsItem (Maybe DictlayerDataDictWordsItemSensesItemSynonymsItemSource)
data GeolayerDataGeoViewportLo

-- | Creates a value of <a>GeolayerDataGeoViewportLo</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdgvlLatitude</a></li>
--   <li><a>gdgvlLongitude</a></li>
--   </ul>
geolayerDataGeoViewportLo :: GeolayerDataGeoViewportLo
gdgvlLatitude :: Lens' GeolayerDataGeoViewportLo (Maybe Double)
gdgvlLongitude :: Lens' GeolayerDataGeoViewportLo (Maybe Double)

-- | The maximum allowed maturity rating of returned recommendations. Books
--   with a higher maturity rating are filtered out.
data VolumesRecommendedListMaxAllowedMaturityRating

-- | <tt>mature</tt> Show books which are rated mature or lower.
VRLMAMRMature :: VolumesRecommendedListMaxAllowedMaturityRating

-- | <tt>not-mature</tt> Show books which are rated not mature.
VRLMAMRNotMature :: VolumesRecommendedListMaxAllowedMaturityRating

-- | Offer list (=undiscounted) price in Micros.
--   
--   <i>See:</i> <a>volumeSaleInfoOffersItemListPrice</a> smart
--   constructor.
data VolumeSaleInfoOffersItemListPrice

-- | Creates a value of <a>VolumeSaleInfoOffersItemListPrice</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsioilpCurrencyCode</a></li>
--   <li><a>vsioilpAmountInMicros</a></li>
--   </ul>
volumeSaleInfoOffersItemListPrice :: VolumeSaleInfoOffersItemListPrice
vsioilpCurrencyCode :: Lens' VolumeSaleInfoOffersItemListPrice (Maybe Text)
vsioilpAmountInMicros :: Lens' VolumeSaleInfoOffersItemListPrice (Maybe Double)
data DownloadAccessRestriction

-- | Creates a value of <a>DownloadAccessRestriction</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>darJustAcquired</a></li>
--   <li><a>darSignature</a></li>
--   <li><a>darKind</a></li>
--   <li><a>darMaxDownloadDevices</a></li>
--   <li><a>darDownloadsAcquired</a></li>
--   <li><a>darReasonCode</a></li>
--   <li><a>darVolumeId</a></li>
--   <li><a>darRestricted</a></li>
--   <li><a>darSource</a></li>
--   <li><a>darDeviceAllowed</a></li>
--   <li><a>darMessage</a></li>
--   <li><a>darNonce</a></li>
--   </ul>
downloadAccessRestriction :: DownloadAccessRestriction

-- | If deviceAllowed, whether access was just acquired with this request.
darJustAcquired :: Lens' DownloadAccessRestriction (Maybe Bool)

-- | Response signature.
darSignature :: Lens' DownloadAccessRestriction (Maybe Text)

-- | Resource type.
darKind :: Lens' DownloadAccessRestriction Text

-- | If restricted, the maximum number of content download licenses for
--   this volume.
darMaxDownloadDevices :: Lens' DownloadAccessRestriction (Maybe Int32)

-- | If restricted, the number of content download licenses already
--   acquired (including the requesting client, if licensed).
darDownloadsAcquired :: Lens' DownloadAccessRestriction (Maybe Int32)

-- | 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
darReasonCode :: Lens' DownloadAccessRestriction (Maybe Text)

-- | Identifies the volume for which this entry applies.
darVolumeId :: Lens' DownloadAccessRestriction (Maybe Text)

-- | Whether this volume has any download access restrictions.
darRestricted :: Lens' DownloadAccessRestriction (Maybe Bool)

-- | Client app identifier for verification. Download access and
--   client-validation only.
darSource :: Lens' DownloadAccessRestriction (Maybe Text)

-- | If restricted, whether access is granted for this (user, device,
--   volume).
darDeviceAllowed :: Lens' DownloadAccessRestriction (Maybe Bool)

-- | Error/warning message.
darMessage :: Lens' DownloadAccessRestriction (Maybe Text)

-- | Client nonce for verification. Download access and client-validation
--   only.
darNonce :: Lens' DownloadAccessRestriction (Maybe Text)
data DictlayerDataCommon

-- | Creates a value of <a>DictlayerDataCommon</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddcTitle</a></li>
--   </ul>
dictlayerDataCommon :: DictlayerDataCommon

-- | The display title and localized canonical name to use when searching
--   for this entity on Google search.
ddcTitle :: Lens' DictlayerDataCommon (Maybe Text)
data DiscoveryclustersClustersItem

-- | Creates a value of <a>DiscoveryclustersClustersItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dciBannerWithContentContainer</a></li>
--   <li><a>dciUid</a></li>
--   <li><a>dciTotalVolumes</a></li>
--   <li><a>dciSubTitle</a></li>
--   <li><a>dciTitle</a></li>
--   <li><a>dciVolumes</a></li>
--   </ul>
discoveryclustersClustersItem :: DiscoveryclustersClustersItem
dciBannerWithContentContainer :: Lens' DiscoveryclustersClustersItem (Maybe DiscoveryclustersClustersItemBanner_with_content_container)
dciUid :: Lens' DiscoveryclustersClustersItem (Maybe Text)
dciTotalVolumes :: Lens' DiscoveryclustersClustersItem (Maybe Int32)
dciSubTitle :: Lens' DiscoveryclustersClustersItem (Maybe Text)
dciTitle :: Lens' DiscoveryclustersClustersItem (Maybe Text)
dciVolumes :: Lens' DiscoveryclustersClustersItem [Volume]

-- | 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.)
--   
--   <i>See:</i> <a>volumeSaleInfoRetailPrice</a> smart constructor.
data VolumeSaleInfoRetailPrice

-- | Creates a value of <a>VolumeSaleInfoRetailPrice</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsirpAmount</a></li>
--   <li><a>vsirpCurrencyCode</a></li>
--   </ul>
volumeSaleInfoRetailPrice :: VolumeSaleInfoRetailPrice

-- | Amount in the currency listed below. (In LITE projection.)
vsirpAmount :: Lens' VolumeSaleInfoRetailPrice (Maybe Double)

-- | An ISO 4217, three-letter currency code. (In LITE projection.)
vsirpCurrencyCode :: Lens' VolumeSaleInfoRetailPrice (Maybe Text)

-- | Suggested retail price. (In LITE projection.)
--   
--   <i>See:</i> <a>volumeSaleInfoListPrice</a> smart constructor.
data VolumeSaleInfoListPrice

-- | Creates a value of <a>VolumeSaleInfoListPrice</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsilpAmount</a></li>
--   <li><a>vsilpCurrencyCode</a></li>
--   </ul>
volumeSaleInfoListPrice :: VolumeSaleInfoListPrice

-- | Amount in the currency listed below. (In LITE projection.)
vsilpAmount :: Lens' VolumeSaleInfoListPrice (Maybe Double)

-- | An ISO 4217, three-letter currency code. (In LITE projection.)
vsilpCurrencyCode :: Lens' VolumeSaleInfoListPrice (Maybe Text)
data DictlayerDataDictWordsItemSensesItemConjugationsItem

-- | Creates a value of
--   <a>DictlayerDataDictWordsItemSensesItemConjugationsItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwisiciValue</a></li>
--   <li><a>dddwisiciType</a></li>
--   </ul>
dictlayerDataDictWordsItemSensesItemConjugationsItem :: DictlayerDataDictWordsItemSensesItemConjugationsItem
dddwisiciValue :: Lens' DictlayerDataDictWordsItemSensesItemConjugationsItem (Maybe Text)
dddwisiciType :: Lens' DictlayerDataDictWordsItemSensesItemConjugationsItem (Maybe Text)
data Volume2

-- | Creates a value of <a>Volume2</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>voloNextPageToken</a></li>
--   <li><a>voloKind</a></li>
--   <li><a>voloItems</a></li>
--   </ul>
volume2 :: Volume2
voloNextPageToken :: Lens' Volume2 (Maybe Text)

-- | Resource type.
voloKind :: Lens' Volume2 Text

-- | A list of volumes.
voloItems :: Lens' Volume2 [Volume]
data Review

-- | Creates a value of <a>Review</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rRating</a></li>
--   <li><a>rKind</a></li>
--   <li><a>rContent</a></li>
--   <li><a>rDate</a></li>
--   <li><a>rVolumeId</a></li>
--   <li><a>rAuthor</a></li>
--   <li><a>rSource</a></li>
--   <li><a>rFullTextURL</a></li>
--   <li><a>rTitle</a></li>
--   <li><a>rType</a></li>
--   </ul>
review :: Review

-- | Star rating for this review. Possible values are ONE, TWO, THREE,
--   FOUR, FIVE or NOT_RATED.
rRating :: Lens' Review (Maybe Text)

-- | Resource type for a review.
rKind :: Lens' Review Text

-- | Review text.
rContent :: Lens' Review (Maybe Text)

-- | Date of this review.
rDate :: Lens' Review (Maybe Text)

-- | Volume that this review is for.
rVolumeId :: Lens' Review (Maybe Text)

-- | Author of this review.
rAuthor :: Lens' Review (Maybe ReviewAuthor)

-- | Information regarding the source of this review, when the review is
--   not from a Google Books user.
rSource :: Lens' Review (Maybe ReviewSource)

-- | URL for the full review text, for reviews gathered from the web.
rFullTextURL :: Lens' Review (Maybe Text)

-- | Title for this review.
rTitle :: Lens' Review (Maybe Text)

-- | Source type for this review. Possible values are EDITORIAL, WEB_USER
--   or GOOGLE_USER.
rType :: Lens' Review (Maybe Text)

-- | Period during this book is/was a valid rental.
--   
--   <i>See:</i> <a>volumeUserInfoRentalPeriod</a> smart constructor.
data VolumeUserInfoRentalPeriod

-- | Creates a value of <a>VolumeUserInfoRentalPeriod</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vuirpEndUtcSec</a></li>
--   <li><a>vuirpStartUtcSec</a></li>
--   </ul>
volumeUserInfoRentalPeriod :: VolumeUserInfoRentalPeriod
vuirpEndUtcSec :: Lens' VolumeUserInfoRentalPeriod (Maybe Int64)
vuirpStartUtcSec :: Lens' VolumeUserInfoRentalPeriod (Maybe Int64)

-- | 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).
--   
--   <i>See:</i> <a>volumeSaleInfo</a> smart constructor.
data VolumeSaleInfo

-- | Creates a value of <a>VolumeSaleInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsiCountry</a></li>
--   <li><a>vsiOnSaleDate</a></li>
--   <li><a>vsiListPrice</a></li>
--   <li><a>vsiRetailPrice</a></li>
--   <li><a>vsiOffers</a></li>
--   <li><a>vsiBuyLink</a></li>
--   <li><a>vsiIsEbook</a></li>
--   <li><a>vsiSaleability</a></li>
--   </ul>
volumeSaleInfo :: VolumeSaleInfo

-- | The two-letter ISO_3166-1 country code for which this sale information
--   is valid. (In LITE projection.)
vsiCountry :: Lens' VolumeSaleInfo (Maybe Text)

-- | The date on which this book is available for sale.
vsiOnSaleDate :: Lens' VolumeSaleInfo (Maybe UTCTime)

-- | Suggested retail price. (In LITE projection.)
vsiListPrice :: Lens' VolumeSaleInfo (Maybe VolumeSaleInfoListPrice)

-- | 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.)
vsiRetailPrice :: Lens' VolumeSaleInfo (Maybe VolumeSaleInfoRetailPrice)

-- | Offers available for this volume (sales and rentals).
vsiOffers :: Lens' VolumeSaleInfo [VolumeSaleInfoOffersItem]

-- | URL to purchase this volume on the Google Books site. (In LITE
--   projection)
vsiBuyLink :: Lens' VolumeSaleInfo (Maybe Text)

-- | Whether or not this volume is an eBook (can be added to the My eBooks
--   shelf).
vsiIsEbook :: Lens' VolumeSaleInfo (Maybe Bool)

-- | 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.
vsiSaleability :: Lens' VolumeSaleInfo (Maybe Text)

-- | The reason for which the book is added to the library.
data MyLibraryBookshelvesAddVolumeReason

-- | <tt>IOS_PREX</tt> Volumes added from the PREX flow on iOS.
MLBAVRIosPrex :: MyLibraryBookshelvesAddVolumeReason

-- | <tt>IOS_SEARCH</tt> Volumes added from the Search flow on iOS.
MLBAVRIosSearch :: MyLibraryBookshelvesAddVolumeReason

-- | <tt>ONBOARDING</tt> Volumes added from the Onboarding flow.
MLBAVROnboarding :: MyLibraryBookshelvesAddVolumeReason
data SeriesSeriesItem

-- | Creates a value of <a>SeriesSeriesItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssiSeriesId</a></li>
--   <li><a>ssiImageURL</a></li>
--   <li><a>ssiBannerImageURL</a></li>
--   <li><a>ssiTitle</a></li>
--   <li><a>ssiSeriesType</a></li>
--   </ul>
seriesSeriesItem :: SeriesSeriesItem
ssiSeriesId :: Lens' SeriesSeriesItem (Maybe Text)
ssiImageURL :: Lens' SeriesSeriesItem (Maybe Text)
ssiBannerImageURL :: Lens' SeriesSeriesItem (Maybe Text)
ssiTitle :: Lens' SeriesSeriesItem (Maybe Text)
ssiSeriesType :: Lens' SeriesSeriesItem (Maybe Text)
data Metadata

-- | Creates a value of <a>Metadata</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mKind</a></li>
--   <li><a>mItems</a></li>
--   </ul>
metadata :: Metadata

-- | Resource type.
mKind :: Lens' Metadata Text

-- | A list of offline dictionary metadata.
mItems :: Lens' Metadata [MetadataItemsItem]

-- | What layers exist in this volume and high level information about
--   them.
--   
--   <i>See:</i> <a>volumeLayerInfo</a> smart constructor.
data VolumeLayerInfo

-- | Creates a value of <a>VolumeLayerInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vliLayers</a></li>
--   </ul>
volumeLayerInfo :: VolumeLayerInfo

-- | A layer should appear here if and only if the layer exists for this
--   book.
vliLayers :: Lens' VolumeLayerInfo [VolumeLayerInfoLayersItem]

-- | Physical dimensions of this volume.
--   
--   <i>See:</i> <a>volumeVolumeInfoDimensions</a> smart constructor.
data VolumeVolumeInfoDimensions

-- | Creates a value of <a>VolumeVolumeInfoDimensions</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vvidHeight</a></li>
--   <li><a>vvidWidth</a></li>
--   <li><a>vvidThickness</a></li>
--   </ul>
volumeVolumeInfoDimensions :: VolumeVolumeInfoDimensions

-- | Height or length of this volume (in cm).
vvidHeight :: Lens' VolumeVolumeInfoDimensions (Maybe Text)

-- | Width of this volume (in cm).
vvidWidth :: Lens' VolumeVolumeInfoDimensions (Maybe Text)

-- | Thickness of this volume (in cm).
vvidThickness :: Lens' VolumeVolumeInfoDimensions (Maybe Text)
data RequestAccess

-- | Creates a value of <a>RequestAccess</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>raConcurrentAccess</a></li>
--   <li><a>raKind</a></li>
--   <li><a>raDownloadAccess</a></li>
--   </ul>
requestAccess :: RequestAccess

-- | A concurrent access response.
raConcurrentAccess :: Lens' RequestAccess (Maybe ConcurrentAccessRestriction)

-- | Resource type.
raKind :: Lens' RequestAccess Text

-- | A download access response.
raDownloadAccess :: Lens' RequestAccess (Maybe DownloadAccessRestriction)

-- | Selection ranges sent from the client.
--   
--   <i>See:</i> <a>annotationClientVersionRanges</a> smart constructor.
data AnnotationClientVersionRanges

-- | Creates a value of <a>AnnotationClientVersionRanges</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>acvrGbImageRange</a></li>
--   <li><a>acvrContentVersion</a></li>
--   <li><a>acvrImageCfiRange</a></li>
--   <li><a>acvrGbTextRange</a></li>
--   <li><a>acvrCfiRange</a></li>
--   </ul>
annotationClientVersionRanges :: AnnotationClientVersionRanges

-- | Range in GB image format for this annotation sent by client.
acvrGbImageRange :: Lens' AnnotationClientVersionRanges (Maybe BooksAnnotationsRange)

-- | Content version the client sent in.
acvrContentVersion :: Lens' AnnotationClientVersionRanges (Maybe Text)

-- | Range in image CFI format for this annotation sent by client.
acvrImageCfiRange :: Lens' AnnotationClientVersionRanges (Maybe BooksAnnotationsRange)

-- | Range in GB text format for this annotation sent by client.
acvrGbTextRange :: Lens' AnnotationClientVersionRanges (Maybe BooksAnnotationsRange)

-- | Range in CFI format for this annotation sent by client.
acvrCfiRange :: Lens' AnnotationClientVersionRanges (Maybe BooksAnnotationsRange)

-- | How the book was acquired
data VolumesMybooksListAcquireMethod

-- | <tt>FAMILY_SHARED</tt> Books acquired via Family Sharing
FamilyShared :: VolumesMybooksListAcquireMethod

-- | <tt>PREORDERED</tt> Preordered books (not yet available)
PreOrdered :: VolumesMybooksListAcquireMethod

-- | <tt>PREVIOUSLY_RENTED</tt> User-rented books past their expiration
--   time
PreviouslyRented :: VolumesMybooksListAcquireMethod

-- | <tt>PUBLIC_DOMAIN</tt> Public domain books
PublicDomain :: VolumesMybooksListAcquireMethod

-- | <tt>PURCHASED</tt> Purchased books
Purchased :: VolumesMybooksListAcquireMethod

-- | <tt>RENTED</tt> User-rented books
Rented :: VolumesMybooksListAcquireMethod

-- | <tt>SAMPLE</tt> Sample books
Sample :: VolumesMybooksListAcquireMethod

-- | <tt>UPLOADED</tt> User uploaded books
Uploaded :: VolumesMybooksListAcquireMethod
data DictlayerDataDictWordsItemSensesItemDefinitionsItem

-- | Creates a value of
--   <a>DictlayerDataDictWordsItemSensesItemDefinitionsItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwisidiDefinition</a></li>
--   <li><a>dddwisidiExamples</a></li>
--   </ul>
dictlayerDataDictWordsItemSensesItemDefinitionsItem :: DictlayerDataDictWordsItemSensesItemDefinitionsItem
dddwisidiDefinition :: Lens' DictlayerDataDictWordsItemSensesItemDefinitionsItem (Maybe Text)
dddwisidiExamples :: Lens' DictlayerDataDictWordsItemSensesItemDefinitionsItem [DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem]
data VolumeLayerInfoLayersItem

-- | Creates a value of <a>VolumeLayerInfoLayersItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vliliVolumeAnnotationsVersion</a></li>
--   <li><a>vliliLayerId</a></li>
--   </ul>
volumeLayerInfoLayersItem :: VolumeLayerInfoLayersItem

-- | 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.
vliliVolumeAnnotationsVersion :: Lens' VolumeLayerInfoLayersItem (Maybe Text)

-- | The layer id of this layer (e.g. "geo").
vliliLayerId :: Lens' VolumeLayerInfoLayersItem (Maybe Text)

-- | Selection ranges for the most recent content version.
--   
--   <i>See:</i> <a>annotationCurrentVersionRanges</a> smart constructor.
data AnnotationCurrentVersionRanges

-- | Creates a value of <a>AnnotationCurrentVersionRanges</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aGbImageRange</a></li>
--   <li><a>aContentVersion</a></li>
--   <li><a>aImageCfiRange</a></li>
--   <li><a>aGbTextRange</a></li>
--   <li><a>aCfiRange</a></li>
--   </ul>
annotationCurrentVersionRanges :: AnnotationCurrentVersionRanges

-- | Range in GB image format for this annotation for version above.
aGbImageRange :: Lens' AnnotationCurrentVersionRanges (Maybe BooksAnnotationsRange)

-- | Content version applicable to ranges below.
aContentVersion :: Lens' AnnotationCurrentVersionRanges (Maybe Text)

-- | Range in image CFI format for this annotation for version above.
aImageCfiRange :: Lens' AnnotationCurrentVersionRanges (Maybe BooksAnnotationsRange)

-- | Range in GB text format for this annotation for version above.
aGbTextRange :: Lens' AnnotationCurrentVersionRanges (Maybe BooksAnnotationsRange)

-- | Range in CFI format for this annotation for version above.
aCfiRange :: Lens' AnnotationCurrentVersionRanges (Maybe BooksAnnotationsRange)

-- | The maximum allowed maturity rating of returned recommendations. Books
--   with a higher maturity rating are filtered out.
data PersonalizedstreamGetMaxAllowedMaturityRating

-- | <tt>mature</tt> Show books which are rated mature or lower.
PGMAMRMature :: PersonalizedstreamGetMaxAllowedMaturityRating

-- | <tt>not-mature</tt> Show books which are rated not mature.
PGMAMRNotMature :: PersonalizedstreamGetMaxAllowedMaturityRating

-- | Restrict to books or magazines.
data VolumesListPrintType

-- | <tt>all</tt> All volume content types.
All :: VolumesListPrintType

-- | <tt>books</tt> Just books.
Books :: VolumesListPrintType

-- | <tt>magazines</tt> Just magazines.
Magazines :: VolumesListPrintType

-- | Information about pdf content. (In LITE projection.)
--   
--   <i>See:</i> <a>volumeAccessInfoPdf</a> smart constructor.
data VolumeAccessInfoPdf

-- | Creates a value of <a>VolumeAccessInfoPdf</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vaipAcsTokenLink</a></li>
--   <li><a>vaipIsAvailable</a></li>
--   <li><a>vaipDownloadLink</a></li>
--   </ul>
volumeAccessInfoPdf :: VolumeAccessInfoPdf

-- | URL to retrieve ACS token for pdf download. (In LITE projection.)
vaipAcsTokenLink :: Lens' VolumeAccessInfoPdf (Maybe Text)

-- | Is a scanned image pdf available either as public domain or for
--   purchase. (In LITE projection.)
vaipIsAvailable :: Lens' VolumeAccessInfoPdf (Maybe Bool)

-- | URL to download pdf. (In LITE projection.)
vaipDownloadLink :: Lens' VolumeAccessInfoPdf (Maybe Text)
data DictlayerDataDictWordsItemExamplesItemSource

-- | Creates a value of <a>DictlayerDataDictWordsItemExamplesItemSource</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwieisURL</a></li>
--   <li><a>dddwieisAttribution</a></li>
--   </ul>
dictlayerDataDictWordsItemExamplesItemSource :: DictlayerDataDictWordsItemExamplesItemSource
dddwieisURL :: Lens' DictlayerDataDictWordsItemExamplesItemSource (Maybe Text)
dddwieisAttribution :: Lens' DictlayerDataDictWordsItemExamplesItemSource (Maybe Text)

-- | Information about epub content. (In LITE projection.)
--   
--   <i>See:</i> <a>volumeAccessInfoEpub</a> smart constructor.
data VolumeAccessInfoEpub

-- | Creates a value of <a>VolumeAccessInfoEpub</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vaieAcsTokenLink</a></li>
--   <li><a>vaieIsAvailable</a></li>
--   <li><a>vaieDownloadLink</a></li>
--   </ul>
volumeAccessInfoEpub :: VolumeAccessInfoEpub

-- | URL to retrieve ACS token for epub download. (In LITE projection.)
vaieAcsTokenLink :: Lens' VolumeAccessInfoEpub (Maybe Text)

-- | Is a flowing text epub available either as public domain or for
--   purchase. (In LITE projection.)
vaieIsAvailable :: Lens' VolumeAccessInfoEpub (Maybe Bool)

-- | URL to download epub. (In LITE projection.)
vaieDownloadLink :: Lens' VolumeAccessInfoEpub (Maybe Text)
data ReadingPosition

-- | Creates a value of <a>ReadingPosition</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rpEpubCfiPosition</a></li>
--   <li><a>rpKind</a></li>
--   <li><a>rpGbImagePosition</a></li>
--   <li><a>rpPdfPosition</a></li>
--   <li><a>rpVolumeId</a></li>
--   <li><a>rpUpdated</a></li>
--   <li><a>rpGbTextPosition</a></li>
--   </ul>
readingPosition :: ReadingPosition

-- | Position in an EPUB as a CFI.
rpEpubCfiPosition :: Lens' ReadingPosition (Maybe Text)

-- | Resource type for a reading position.
rpKind :: Lens' ReadingPosition Text

-- | Position in a volume for image-based content.
rpGbImagePosition :: Lens' ReadingPosition (Maybe Text)

-- | Position in a PDF file.
rpPdfPosition :: Lens' ReadingPosition (Maybe Text)

-- | Volume id associated with this reading position.
rpVolumeId :: Lens' ReadingPosition (Maybe Text)

-- | Timestamp when this reading position was last updated (formatted UTC
--   timestamp with millisecond resolution).
rpUpdated :: Lens' ReadingPosition (Maybe UTCTime)

-- | Position in a volume for text-based content.
rpGbTextPosition :: Lens' ReadingPosition (Maybe Text)
data VolumeSaleInfoOffersItem

-- | Creates a value of <a>VolumeSaleInfoOffersItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsioiFinskyOfferType</a></li>
--   <li><a>vsioiRentalDuration</a></li>
--   <li><a>vsioiListPrice</a></li>
--   <li><a>vsioiRetailPrice</a></li>
--   <li><a>vsioiGiftable</a></li>
--   </ul>
volumeSaleInfoOffersItem :: VolumeSaleInfoOffersItem

-- | The finsky offer type (e.g., PURCHASE=0 RENTAL=3)
vsioiFinskyOfferType :: Lens' VolumeSaleInfoOffersItem (Maybe Int32)

-- | The rental duration (for rental offers only).
vsioiRentalDuration :: Lens' VolumeSaleInfoOffersItem (Maybe VolumeSaleInfoOffersItemRentalDuration)

-- | Offer list (=undiscounted) price in Micros.
vsioiListPrice :: Lens' VolumeSaleInfoOffersItem (Maybe VolumeSaleInfoOffersItemListPrice)

-- | Offer retail (=discounted) price in Micros
vsioiRetailPrice :: Lens' VolumeSaleInfoOffersItem (Maybe VolumeSaleInfoOffersItemRetailPrice)

-- | Indicates whether the offer is giftable.
vsioiGiftable :: Lens' VolumeSaleInfoOffersItem (Maybe Bool)
data DictlayerDataDict

-- | Creates a value of <a>DictlayerDataDict</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddSource</a></li>
--   <li><a>dddWords</a></li>
--   </ul>
dictlayerDataDict :: DictlayerDataDict

-- | The source, url and attribution for this dictionary data.
dddSource :: Lens' DictlayerDataDict (Maybe DictlayerDataDictSource)
dddWords :: Lens' DictlayerDataDict [DictlayerDataDictWordsItem]
data DictlayerDataDictWordsItemSensesItem

-- | Creates a value of <a>DictlayerDataDictWordsItemSensesItem</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwisiPronunciationURL</a></li>
--   <li><a>dddwisiConjugations</a></li>
--   <li><a>dddwisiPronunciation</a></li>
--   <li><a>dddwisiSynonyms</a></li>
--   <li><a>dddwisiSource</a></li>
--   <li><a>dddwisiPartOfSpeech</a></li>
--   <li><a>dddwisiDefinitions</a></li>
--   <li><a>dddwisiSyllabification</a></li>
--   </ul>
dictlayerDataDictWordsItemSensesItem :: DictlayerDataDictWordsItemSensesItem
dddwisiPronunciationURL :: Lens' DictlayerDataDictWordsItemSensesItem (Maybe Text)
dddwisiConjugations :: Lens' DictlayerDataDictWordsItemSensesItem [DictlayerDataDictWordsItemSensesItemConjugationsItem]
dddwisiPronunciation :: Lens' DictlayerDataDictWordsItemSensesItem (Maybe Text)
dddwisiSynonyms :: Lens' DictlayerDataDictWordsItemSensesItem [DictlayerDataDictWordsItemSensesItemSynonymsItem]
dddwisiSource :: Lens' DictlayerDataDictWordsItemSensesItem (Maybe DictlayerDataDictWordsItemSensesItemSource)
dddwisiPartOfSpeech :: Lens' DictlayerDataDictWordsItemSensesItem (Maybe Text)
dddwisiDefinitions :: Lens' DictlayerDataDictWordsItemSensesItem [DictlayerDataDictWordsItemSensesItemDefinitionsItem]
dddwisiSyllabification :: Lens' DictlayerDataDictWordsItemSensesItem (Maybe Text)

-- | Recommendation related information for this volume.
--   
--   <i>See:</i> <a>volumeRecommendedInfo</a> smart constructor.
data VolumeRecommendedInfo

-- | Creates a value of <a>VolumeRecommendedInfo</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vriExplanation</a></li>
--   </ul>
volumeRecommendedInfo :: VolumeRecommendedInfo

-- | A text explaining why this volume is recommended.
vriExplanation :: Lens' VolumeRecommendedInfo (Maybe Text)
data Offers

-- | Creates a value of <a>Offers</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oKind</a></li>
--   <li><a>oItems</a></li>
--   </ul>
offers :: Offers

-- | Resource type.
oKind :: Lens' Offers Text

-- | A list of offers.
oItems :: Lens' Offers [OffersItemsItem]

-- | The processing state of the user uploaded volumes to be returned.
--   Applicable only if the UPLOADED is specified in the acquireMethod.
data VolumesMybooksListProcessingState

-- | <tt>COMPLETED_FAILED</tt> The volume processing hase failed.
VMLPSCompletedFailed :: VolumesMybooksListProcessingState

-- | <tt>COMPLETED_SUCCESS</tt> The volume processing was completed.
VMLPSCompletedSuccess :: VolumesMybooksListProcessingState

-- | <tt>RUNNING</tt> The volume processing is not completed.
VMLPSRunning :: VolumesMybooksListProcessingState
data Discoveryclusters

-- | Creates a value of <a>Discoveryclusters</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dKind</a></li>
--   <li><a>dTotalClusters</a></li>
--   <li><a>dClusters</a></li>
--   </ul>
discoveryclusters :: Discoveryclusters

-- | Resorce type.
dKind :: Lens' Discoveryclusters Text
dTotalClusters :: Lens' Discoveryclusters (Maybe Int32)
dClusters :: Lens' Discoveryclusters [DiscoveryclustersClustersItem]
data VolumeseriesInfoVolumeSeriesItem

-- | Creates a value of <a>VolumeseriesInfoVolumeSeriesItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vivsiSeriesId</a></li>
--   <li><a>vivsiSeriesBookType</a></li>
--   <li><a>vivsiOrderNumber</a></li>
--   <li><a>vivsiIssue</a></li>
--   </ul>
volumeseriesInfoVolumeSeriesItem :: VolumeseriesInfoVolumeSeriesItem

-- | The series id.
vivsiSeriesId :: Lens' VolumeseriesInfoVolumeSeriesItem (Maybe Text)

-- | The book type in the context of series. Examples - Single Issue,
--   Collection Edition, etc.
vivsiSeriesBookType :: Lens' VolumeseriesInfoVolumeSeriesItem (Maybe Text)

-- | The book order number in the series.
vivsiOrderNumber :: Lens' VolumeseriesInfoVolumeSeriesItem (Maybe Int32)

-- | List of issues. Applicable only for Collection Edition and Omnibus.
vivsiIssue :: Lens' VolumeseriesInfoVolumeSeriesItem [VolumeseriesInfoVolumeSeriesItemIssueItem]

-- | User settings in sub-objects, each for different purposes.
--   
--   <i>See:</i> <a>userSettingsNotesExport</a> smart constructor.
data UserSettingsNotesExport

-- | Creates a value of <a>UserSettingsNotesExport</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usneFolderName</a></li>
--   <li><a>usneIsEnabled</a></li>
--   </ul>
userSettingsNotesExport :: UserSettingsNotesExport
usneFolderName :: Lens' UserSettingsNotesExport (Maybe Text)
usneIsEnabled :: Lens' UserSettingsNotesExport (Maybe Bool)
data ConcurrentAccessRestriction

-- | Creates a value of <a>ConcurrentAccessRestriction</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>carMaxConcurrentDevices</a></li>
--   <li><a>carSignature</a></li>
--   <li><a>carTimeWindowSeconds</a></li>
--   <li><a>carKind</a></li>
--   <li><a>carReasonCode</a></li>
--   <li><a>carVolumeId</a></li>
--   <li><a>carRestricted</a></li>
--   <li><a>carSource</a></li>
--   <li><a>carDeviceAllowed</a></li>
--   <li><a>carMessage</a></li>
--   <li><a>carNonce</a></li>
--   </ul>
concurrentAccessRestriction :: ConcurrentAccessRestriction

-- | The maximum number of concurrent access licenses for this volume.
carMaxConcurrentDevices :: Lens' ConcurrentAccessRestriction (Maybe Int32)

-- | Response signature.
carSignature :: Lens' ConcurrentAccessRestriction (Maybe Text)

-- | Time in seconds for license auto-expiration.
carTimeWindowSeconds :: Lens' ConcurrentAccessRestriction (Maybe Int32)

-- | Resource type.
carKind :: Lens' ConcurrentAccessRestriction Text

-- | Error/warning reason code.
carReasonCode :: Lens' ConcurrentAccessRestriction (Maybe Text)

-- | Identifies the volume for which this entry applies.
carVolumeId :: Lens' ConcurrentAccessRestriction (Maybe Text)

-- | Whether this volume has any concurrent access restrictions.
carRestricted :: Lens' ConcurrentAccessRestriction (Maybe Bool)

-- | Client app identifier for verification. Download access and
--   client-validation only.
carSource :: Lens' ConcurrentAccessRestriction (Maybe Text)

-- | Whether access is granted for this (user, device, volume).
carDeviceAllowed :: Lens' ConcurrentAccessRestriction (Maybe Bool)

-- | Error/warning message.
carMessage :: Lens' ConcurrentAccessRestriction (Maybe Text)

-- | Client nonce for verification. Download access and client-validation
--   only.
carNonce :: Lens' ConcurrentAccessRestriction (Maybe Text)
data Volumes

-- | Creates a value of <a>Volumes</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>v1TotalItems</a></li>
--   <li><a>v1Kind</a></li>
--   <li><a>v1Items</a></li>
--   </ul>
volumes :: Volumes

-- | Total number of volumes found. This might be greater than the number
--   of volumes returned in this response if results have been paginated.
v1TotalItems :: Lens' Volumes (Maybe Int32)

-- | Resource type.
v1Kind :: Lens' Volumes Text

-- | A list of volumes.
v1Items :: Lens' Volumes [Volume]
data Bookshelves

-- | Creates a value of <a>Bookshelves</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>booKind</a></li>
--   <li><a>booItems</a></li>
--   </ul>
bookshelves :: Bookshelves

-- | Resource type.
booKind :: Lens' Bookshelves Text

-- | A list of bookshelves.
booItems :: Lens' Bookshelves [Bookshelf]

-- | The type of access license to request. If not specified, the default
--   is BOTH.
data MyConfigRequestAccessLicenseTypes

-- | <tt>BOTH</tt> Both concurrent and download licenses.
Both :: MyConfigRequestAccessLicenseTypes

-- | <tt>CONCURRENT</tt> Concurrent access license.
Concurrent :: MyConfigRequestAccessLicenseTypes

-- | <tt>DOWNLOAD</tt> Offline download access license.
Download :: MyConfigRequestAccessLicenseTypes

-- | The source, url and attribution for this dictionary data.
--   
--   <i>See:</i> <a>dictlayerDataDictSource</a> smart constructor.
data DictlayerDataDictSource

-- | Creates a value of <a>DictlayerDataDictSource</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddsURL</a></li>
--   <li><a>dddsAttribution</a></li>
--   </ul>
dictlayerDataDictSource :: DictlayerDataDictSource
dddsURL :: Lens' DictlayerDataDictSource (Maybe Text)
dddsAttribution :: Lens' DictlayerDataDictSource (Maybe Text)
data DownloadAccesses

-- | Creates a value of <a>DownloadAccesses</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>daKind</a></li>
--   <li><a>daDownloadAccessList</a></li>
--   </ul>
downloadAccesses :: DownloadAccesses

-- | Resource type.
daKind :: Lens' DownloadAccesses Text

-- | A list of download access responses.
daDownloadAccessList :: Lens' DownloadAccesses [DownloadAccessRestriction]
data GeolayerDataGeoViewportHi

-- | Creates a value of <a>GeolayerDataGeoViewportHi</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdgvhLatitude</a></li>
--   <li><a>gdgvhLongitude</a></li>
--   </ul>
geolayerDataGeoViewportHi :: GeolayerDataGeoViewportHi
gdgvhLatitude :: Lens' GeolayerDataGeoViewportHi (Maybe Double)
gdgvhLongitude :: Lens' GeolayerDataGeoViewportHi (Maybe Double)

-- | Action that caused this reading position to be set.
data MyLibraryReadingPositionsSetPositionAction

-- | <tt>bookmark</tt> User chose bookmark within volume.
Bookmark :: MyLibraryReadingPositionsSetPositionAction

-- | <tt>chapter</tt> User selected chapter from list.
Chapter :: MyLibraryReadingPositionsSetPositionAction

-- | <tt>next-page</tt> Next page event.
NextPage :: MyLibraryReadingPositionsSetPositionAction

-- | <tt>prev-page</tt> Previous page event.
PrevPage :: MyLibraryReadingPositionsSetPositionAction

-- | <tt>scroll</tt> User navigated to page.
Scroll :: MyLibraryReadingPositionsSetPositionAction

-- | <tt>search</tt> User chose search results within volume.
Search :: MyLibraryReadingPositionsSetPositionAction

-- | General volume information.
--   
--   <i>See:</i> <a>volumeVolumeInfo</a> smart constructor.
data VolumeVolumeInfo

-- | Creates a value of <a>VolumeVolumeInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vviImageLinks</a></li>
--   <li><a>vviPanelizationSummary</a></li>
--   <li><a>vviAverageRating</a></li>
--   <li><a>vviRatingsCount</a></li>
--   <li><a>vviCanonicalVolumeLink</a></li>
--   <li><a>vviReadingModes</a></li>
--   <li><a>vviIndustryIdentifiers</a></li>
--   <li><a>vviSeriesInfo</a></li>
--   <li><a>vviPrintedPageCount</a></li>
--   <li><a>vviMainCategory</a></li>
--   <li><a>vviContentVersion</a></li>
--   <li><a>vviSamplePageCount</a></li>
--   <li><a>vviCategories</a></li>
--   <li><a>vviAuthors</a></li>
--   <li><a>vviAllowAnonLogging</a></li>
--   <li><a>vviSubtitle</a></li>
--   <li><a>vviPublishedDate</a></li>
--   <li><a>vviMaturityRating</a></li>
--   <li><a>vviPreviewLink</a></li>
--   <li><a>vviLanguage</a></li>
--   <li><a>vviTitle</a></li>
--   <li><a>vviPageCount</a></li>
--   <li><a>vviDimensions</a></li>
--   <li><a>vviInfoLink</a></li>
--   <li><a>vviPublisher</a></li>
--   <li><a>vviDescription</a></li>
--   <li><a>vviPrintType</a></li>
--   </ul>
volumeVolumeInfo :: VolumeVolumeInfo

-- | A list of image links for all the sizes that are available. (In LITE
--   projection.)
vviImageLinks :: Lens' VolumeVolumeInfo (Maybe VolumeVolumeInfoImageLinks)

-- | A top-level summary of the panelization info in this volume.
vviPanelizationSummary :: Lens' VolumeVolumeInfo (Maybe VolumeVolumeInfoPanelizationSummary)

-- | The mean review rating for this volume. (min = 1.0, max = 5.0)
vviAverageRating :: Lens' VolumeVolumeInfo (Maybe Double)

-- | The number of review ratings for this volume.
vviRatingsCount :: Lens' VolumeVolumeInfo (Maybe Int32)

-- | Canonical URL for a volume. (In LITE projection.)
vviCanonicalVolumeLink :: Lens' VolumeVolumeInfo (Maybe Text)

-- | The reading modes available for this volume.
vviReadingModes :: Lens' VolumeVolumeInfo (Maybe JSONValue)

-- | Industry standard identifiers for this volume.
vviIndustryIdentifiers :: Lens' VolumeVolumeInfo [VolumeVolumeInfoIndustryIdentifiersItem]
vviSeriesInfo :: Lens' VolumeVolumeInfo (Maybe VolumeseriesInfo)

-- | Total number of printed pages in generated pdf representation.
vviPrintedPageCount :: Lens' VolumeVolumeInfo (Maybe Int32)

-- | The main category to which this volume belongs. It will be the
--   category from the categories list returned below that has the highest
--   weight.
vviMainCategory :: Lens' VolumeVolumeInfo (Maybe Text)

-- | An identifier for the version of the volume content (text &amp;
--   images). (In LITE projection)
vviContentVersion :: Lens' VolumeVolumeInfo (Maybe Text)

-- | Total number of sample pages as per publisher metadata.
vviSamplePageCount :: Lens' VolumeVolumeInfo (Maybe Int32)

-- | A list of subject categories, such as "Fiction", "Suspense", etc.
vviCategories :: Lens' VolumeVolumeInfo [Text]

-- | The names of the authors and/or editors for this volume. (In LITE
--   projection)
vviAuthors :: Lens' VolumeVolumeInfo [Text]

-- | Whether anonymous logging should be allowed.
vviAllowAnonLogging :: Lens' VolumeVolumeInfo (Maybe Bool)

-- | Volume subtitle. (In LITE projection.)
vviSubtitle :: Lens' VolumeVolumeInfo (Maybe Text)

-- | Date of publication. (In LITE projection.)
vviPublishedDate :: Lens' VolumeVolumeInfo (Maybe Text)
vviMaturityRating :: Lens' VolumeVolumeInfo (Maybe Text)

-- | URL to preview this volume on the Google Books site.
vviPreviewLink :: Lens' VolumeVolumeInfo (Maybe Text)

-- | Best language for this volume (based on content). It is the two-letter
--   ISO 639-1 code such as 'fr', 'en', etc.
vviLanguage :: Lens' VolumeVolumeInfo (Maybe Text)

-- | Volume title. (In LITE projection.)
vviTitle :: Lens' VolumeVolumeInfo (Maybe Text)

-- | Total number of pages as per publisher metadata.
vviPageCount :: Lens' VolumeVolumeInfo (Maybe Int32)

-- | Physical dimensions of this volume.
vviDimensions :: Lens' VolumeVolumeInfo (Maybe VolumeVolumeInfoDimensions)

-- | URL to view information about this volume on the Google Books site.
--   (In LITE projection)
vviInfoLink :: Lens' VolumeVolumeInfo (Maybe Text)

-- | Publisher of this volume. (In LITE projection.)
vviPublisher :: Lens' VolumeVolumeInfo (Maybe Text)

-- | 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.)
vviDescription :: Lens' VolumeVolumeInfo (Maybe Text)

-- | Type of publication of this volume. Possible values are BOOK or
--   MAGAZINE.
vviPrintType :: Lens' VolumeVolumeInfo (Maybe Text)
data MetadataItemsItem

-- | Creates a value of <a>MetadataItemsItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>miiSize</a></li>
--   <li><a>miiVersion</a></li>
--   <li><a>miiLanguage</a></li>
--   <li><a>miiDownloadURL</a></li>
--   <li><a>miiEncryptedKey</a></li>
--   </ul>
metadataItemsItem :: MetadataItemsItem
miiSize :: Lens' MetadataItemsItem (Maybe Int64)
miiVersion :: Lens' MetadataItemsItem (Maybe Int64)
miiLanguage :: Lens' MetadataItemsItem (Maybe Text)
miiDownloadURL :: Lens' MetadataItemsItem (Maybe Text)
miiEncryptedKey :: Lens' MetadataItemsItem (Maybe Text)
data DictlayerDataDictWordsItemSensesItemSource

-- | Creates a value of <a>DictlayerDataDictWordsItemSensesItemSource</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwisisURL</a></li>
--   <li><a>dddwisisAttribution</a></li>
--   </ul>
dictlayerDataDictWordsItemSensesItemSource :: DictlayerDataDictWordsItemSensesItemSource
dddwisisURL :: Lens' DictlayerDataDictWordsItemSensesItemSource (Maybe Text)
dddwisisAttribution :: Lens' DictlayerDataDictWordsItemSensesItemSource (Maybe Text)

-- | Offer retail (=discounted) price in Micros
--   
--   <i>See:</i> <a>volumeSaleInfoOffersItemRetailPrice</a> smart
--   constructor.
data VolumeSaleInfoOffersItemRetailPrice

-- | Creates a value of <a>VolumeSaleInfoOffersItemRetailPrice</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsioirpCurrencyCode</a></li>
--   <li><a>vsioirpAmountInMicros</a></li>
--   </ul>
volumeSaleInfoOffersItemRetailPrice :: VolumeSaleInfoOffersItemRetailPrice
vsioirpCurrencyCode :: Lens' VolumeSaleInfoOffersItemRetailPrice (Maybe Text)
vsioirpAmountInMicros :: Lens' VolumeSaleInfoOffersItemRetailPrice (Maybe Double)

-- | Information on the ability to share with the family.
--   
--   <i>See:</i> <a>volumeUserInfoFamilySharing</a> smart constructor.
data VolumeUserInfoFamilySharing

-- | Creates a value of <a>VolumeUserInfoFamilySharing</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vuifsFamilyRole</a></li>
--   <li><a>vuifsIsSharingAllowed</a></li>
--   <li><a>vuifsIsSharingDisabledByFop</a></li>
--   </ul>
volumeUserInfoFamilySharing :: VolumeUserInfoFamilySharing

-- | The role of the user in the family.
vuifsFamilyRole :: Lens' VolumeUserInfoFamilySharing (Maybe Text)

-- | 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.
vuifsIsSharingAllowed :: Lens' VolumeUserInfoFamilySharing (Maybe Bool)

-- | Whether or not sharing this volume is temporarily disabled due to
--   issues with the Family Wallet.
vuifsIsSharingDisabledByFop :: Lens' VolumeUserInfoFamilySharing (Maybe Bool)
data UserSettingsNotificationMoreFromSeries

-- | Creates a value of <a>UserSettingsNotificationMoreFromSeries</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usnmfsOptedState</a></li>
--   </ul>
userSettingsNotificationMoreFromSeries :: UserSettingsNotificationMoreFromSeries
usnmfsOptedState :: Lens' UserSettingsNotificationMoreFromSeries (Maybe Text)
data VolumeVolumeInfoIndustryIdentifiersItem

-- | Creates a value of <a>VolumeVolumeInfoIndustryIdentifiersItem</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vviiiiIdentifier</a></li>
--   <li><a>vviiiiType</a></li>
--   </ul>
volumeVolumeInfoIndustryIdentifiersItem :: VolumeVolumeInfoIndustryIdentifiersItem

-- | Industry specific volume identifier.
vviiiiIdentifier :: Lens' VolumeVolumeInfoIndustryIdentifiersItem (Maybe Text)

-- | Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.
vviiiiType :: Lens' VolumeVolumeInfoIndustryIdentifiersItem (Maybe Text)
data BooksAnnotationsRange

-- | Creates a value of <a>BooksAnnotationsRange</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>barStartOffSet</a></li>
--   <li><a>barEndOffSet</a></li>
--   <li><a>barEndPosition</a></li>
--   <li><a>barStartPosition</a></li>
--   </ul>
booksAnnotationsRange :: BooksAnnotationsRange

-- | The offset from the starting position.
barStartOffSet :: Lens' BooksAnnotationsRange (Maybe Text)

-- | The offset from the ending position.
barEndOffSet :: Lens' BooksAnnotationsRange (Maybe Text)

-- | The ending position for the range.
barEndPosition :: Lens' BooksAnnotationsRange (Maybe Text)

-- | The starting position for the range.
barStartPosition :: Lens' BooksAnnotationsRange (Maybe Text)

-- | The maximum allowed maturity rating of returned recommendations. Books
--   with a higher maturity rating are filtered out.
data VolumesListMaxAllowedMaturityRating

-- | <tt>mature</tt> Show books which are rated mature or lower.
VLMAMRMature :: VolumesListMaxAllowedMaturityRating

-- | <tt>not-mature</tt> Show books which are rated not mature.
VLMAMRNotMature :: VolumesListMaxAllowedMaturityRating
data Layersummaries

-- | Creates a value of <a>Layersummaries</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>layTotalItems</a></li>
--   <li><a>layKind</a></li>
--   <li><a>layItems</a></li>
--   </ul>
layersummaries :: Layersummaries

-- | The total number of layer summaries found.
layTotalItems :: Lens' Layersummaries (Maybe Int32)

-- | Resource type.
layKind :: Lens' Layersummaries Text

-- | A list of layer summary items.
layItems :: Lens' Layersummaries [Layersummary]


-- | Retrieves metadata for a specific bookshelf for the specified user.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.bookshelves.get</tt>.
module Network.Google.Resource.Books.Bookshelves.Get

-- | A resource alias for <tt>books.bookshelves.get</tt> method which the
--   <a>BookshelvesGet</a> request conforms to.
type BookshelvesGetResource = "books" :> ("v1" :> ("users" :> (Capture "userId" Text :> ("bookshelves" :> (Capture "shelf" Text :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Bookshelf)))))))

-- | Creates a value of <a>BookshelvesGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bgUserId</a></li>
--   <li><a>bgShelf</a></li>
--   <li><a>bgSource</a></li>
--   </ul>
bookshelvesGet :: Text -> Text -> BookshelvesGet

-- | Retrieves metadata for a specific bookshelf for the specified user.
--   
--   <i>See:</i> <a>bookshelvesGet</a> smart constructor.
data BookshelvesGet

-- | ID of user for whom to retrieve bookshelves.
bgUserId :: Lens' BookshelvesGet Text

-- | ID of bookshelf to retrieve.
bgShelf :: Lens' BookshelvesGet Text

-- | String to identify the originator of this request.
bgSource :: Lens' BookshelvesGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.Bookshelves.Get.BookshelvesGet
instance Data.Data.Data Network.Google.Resource.Books.Bookshelves.Get.BookshelvesGet
instance GHC.Show.Show Network.Google.Resource.Books.Bookshelves.Get.BookshelvesGet
instance GHC.Classes.Eq Network.Google.Resource.Books.Bookshelves.Get.BookshelvesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Bookshelves.Get.BookshelvesGet


-- | Retrieves a list of public bookshelves for the specified user.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.bookshelves.list</tt>.
module Network.Google.Resource.Books.Bookshelves.List

-- | A resource alias for <tt>books.bookshelves.list</tt> method which the
--   <a>BookshelvesList</a> request conforms to.
type BookshelvesListResource = "books" :> ("v1" :> ("users" :> (Capture "userId" Text :> ("bookshelves" :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Bookshelves))))))

-- | Creates a value of <a>BookshelvesList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>blUserId</a></li>
--   <li><a>blSource</a></li>
--   </ul>
bookshelvesList :: Text -> BookshelvesList

-- | Retrieves a list of public bookshelves for the specified user.
--   
--   <i>See:</i> <a>bookshelvesList</a> smart constructor.
data BookshelvesList

-- | ID of user for whom to retrieve bookshelves.
blUserId :: Lens' BookshelvesList Text

-- | String to identify the originator of this request.
blSource :: Lens' BookshelvesList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.Bookshelves.List.BookshelvesList
instance Data.Data.Data Network.Google.Resource.Books.Bookshelves.List.BookshelvesList
instance GHC.Show.Show Network.Google.Resource.Books.Bookshelves.List.BookshelvesList
instance GHC.Classes.Eq Network.Google.Resource.Books.Bookshelves.List.BookshelvesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Bookshelves.List.BookshelvesList


-- | Retrieves volumes in a specific bookshelf for the specified user.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.bookshelves.volumes.list</tt>.
module Network.Google.Resource.Books.Bookshelves.Volumes.List

-- | A resource alias for <tt>books.bookshelves.volumes.list</tt> method
--   which the <a>BookshelvesVolumesList</a> request conforms to.
type BookshelvesVolumesListResource = "books" :> ("v1" :> ("users" :> (Capture "userId" Text :> ("bookshelves" :> (Capture "shelf" Text :> ("volumes" :> (QueryParam "source" Text :> (QueryParam "startIndex" (Textual Word32) :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "showPreorders" Bool :> (QueryParam "alt" AltJSON :> Get '[JSON] Volumes)))))))))))

-- | Creates a value of <a>BookshelvesVolumesList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bvlUserId</a></li>
--   <li><a>bvlShelf</a></li>
--   <li><a>bvlSource</a></li>
--   <li><a>bvlStartIndex</a></li>
--   <li><a>bvlMaxResults</a></li>
--   <li><a>bvlShowPreOrders</a></li>
--   </ul>
bookshelvesVolumesList :: Text -> Text -> BookshelvesVolumesList

-- | Retrieves volumes in a specific bookshelf for the specified user.
--   
--   <i>See:</i> <a>bookshelvesVolumesList</a> smart constructor.
data BookshelvesVolumesList

-- | ID of user for whom to retrieve bookshelf volumes.
bvlUserId :: Lens' BookshelvesVolumesList Text

-- | ID of bookshelf to retrieve volumes.
bvlShelf :: Lens' BookshelvesVolumesList Text

-- | String to identify the originator of this request.
bvlSource :: Lens' BookshelvesVolumesList (Maybe Text)

-- | Index of the first element to return (starts at 0)
bvlStartIndex :: Lens' BookshelvesVolumesList (Maybe Word32)

-- | Maximum number of results to return
bvlMaxResults :: Lens' BookshelvesVolumesList (Maybe Word32)

-- | Set to true to show pre-ordered books. Defaults to false.
bvlShowPreOrders :: Lens' BookshelvesVolumesList (Maybe Bool)
instance GHC.Generics.Generic Network.Google.Resource.Books.Bookshelves.Volumes.List.BookshelvesVolumesList
instance Data.Data.Data Network.Google.Resource.Books.Bookshelves.Volumes.List.BookshelvesVolumesList
instance GHC.Show.Show Network.Google.Resource.Books.Bookshelves.Volumes.List.BookshelvesVolumesList
instance GHC.Classes.Eq Network.Google.Resource.Books.Bookshelves.Volumes.List.BookshelvesVolumesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Bookshelves.Volumes.List.BookshelvesVolumesList


-- | <ul>
--   <li>- |</li>
--   </ul>
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.cloudloading.addBook</tt>.
module Network.Google.Resource.Books.CloudLoading.AddBook

-- | A resource alias for <tt>books.cloudloading.addBook</tt> method which
--   the <a>CloudLoadingAddBook</a> request conforms to.
type CloudLoadingAddBookResource = "books" :> ("v1" :> ("cloudloading" :> ("addBook" :> (QueryParam "mime_type" Text :> (QueryParam "upload_client_token" Text :> (QueryParam "name" Text :> (QueryParam "drive_document_id" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] BooksCloudLoadingResource))))))))

-- | Creates a value of <a>CloudLoadingAddBook</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clabMimeType</a></li>
--   <li><a>clabUploadClientToken</a></li>
--   <li><a>clabName</a></li>
--   <li><a>clabDriveDocumentId</a></li>
--   </ul>
cloudLoadingAddBook :: CloudLoadingAddBook

-- | <i>See:</i> <a>cloudLoadingAddBook</a> smart constructor.
data CloudLoadingAddBook

-- | The document MIME type. It can be set only if the drive_document_id is
--   set.
clabMimeType :: Lens' CloudLoadingAddBook (Maybe Text)
clabUploadClientToken :: Lens' CloudLoadingAddBook (Maybe Text)

-- | The document name. It can be set only if the drive_document_id is set.
clabName :: Lens' CloudLoadingAddBook (Maybe Text)

-- | A drive document id. The upload_client_token must not be set.
clabDriveDocumentId :: Lens' CloudLoadingAddBook (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.CloudLoading.AddBook.CloudLoadingAddBook
instance Data.Data.Data Network.Google.Resource.Books.CloudLoading.AddBook.CloudLoadingAddBook
instance GHC.Show.Show Network.Google.Resource.Books.CloudLoading.AddBook.CloudLoadingAddBook
instance GHC.Classes.Eq Network.Google.Resource.Books.CloudLoading.AddBook.CloudLoadingAddBook
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.CloudLoading.AddBook.CloudLoadingAddBook


-- | Remove the book and its contents
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.cloudloading.deleteBook</tt>.
module Network.Google.Resource.Books.CloudLoading.DeleteBook

-- | A resource alias for <tt>books.cloudloading.deleteBook</tt> method
--   which the <a>CloudLoadingDeleteBook</a> request conforms to.
type CloudLoadingDeleteBookResource = "books" :> ("v1" :> ("cloudloading" :> ("deleteBook" :> (QueryParam "volumeId" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] ())))))

-- | Creates a value of <a>CloudLoadingDeleteBook</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cldbVolumeId</a></li>
--   </ul>
cloudLoadingDeleteBook :: Text -> CloudLoadingDeleteBook

-- | Remove the book and its contents
--   
--   <i>See:</i> <a>cloudLoadingDeleteBook</a> smart constructor.
data CloudLoadingDeleteBook

-- | The id of the book to be removed.
cldbVolumeId :: Lens' CloudLoadingDeleteBook Text
instance GHC.Generics.Generic Network.Google.Resource.Books.CloudLoading.DeleteBook.CloudLoadingDeleteBook
instance Data.Data.Data Network.Google.Resource.Books.CloudLoading.DeleteBook.CloudLoadingDeleteBook
instance GHC.Show.Show Network.Google.Resource.Books.CloudLoading.DeleteBook.CloudLoadingDeleteBook
instance GHC.Classes.Eq Network.Google.Resource.Books.CloudLoading.DeleteBook.CloudLoadingDeleteBook
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.CloudLoading.DeleteBook.CloudLoadingDeleteBook


-- | <ul>
--   <li>- |</li>
--   </ul>
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.cloudloading.updateBook</tt>.
module Network.Google.Resource.Books.CloudLoading.UpdateBook

-- | A resource alias for <tt>books.cloudloading.updateBook</tt> method
--   which the <a>CloudLoadingUpdateBook</a> request conforms to.
type CloudLoadingUpdateBookResource = "books" :> ("v1" :> ("cloudloading" :> ("updateBook" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] BooksCloudLoadingResource :> Post '[JSON] BooksCloudLoadingResource)))))

-- | Creates a value of <a>CloudLoadingUpdateBook</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clubPayload</a></li>
--   </ul>
cloudLoadingUpdateBook :: BooksCloudLoadingResource -> CloudLoadingUpdateBook

-- | <i>See:</i> <a>cloudLoadingUpdateBook</a> smart constructor.
data CloudLoadingUpdateBook

-- | Multipart request metadata.
clubPayload :: Lens' CloudLoadingUpdateBook BooksCloudLoadingResource
instance GHC.Generics.Generic Network.Google.Resource.Books.CloudLoading.UpdateBook.CloudLoadingUpdateBook
instance Data.Data.Data Network.Google.Resource.Books.CloudLoading.UpdateBook.CloudLoadingUpdateBook
instance GHC.Show.Show Network.Google.Resource.Books.CloudLoading.UpdateBook.CloudLoadingUpdateBook
instance GHC.Classes.Eq Network.Google.Resource.Books.CloudLoading.UpdateBook.CloudLoadingUpdateBook
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.CloudLoading.UpdateBook.CloudLoadingUpdateBook


-- | Returns a list of offline dictionary metadata available
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.dictionary.listOfflineMetadata</tt>.
module Network.Google.Resource.Books.Dictionary.ListOfflineMetadata

-- | A resource alias for <tt>books.dictionary.listOfflineMetadata</tt>
--   method which the <a>DictionaryListOfflineMetadata</a> request conforms
--   to.
type DictionaryListOfflineMetadataResource = "books" :> ("v1" :> ("dictionary" :> ("listOfflineMetadata" :> (QueryParam "cpksver" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Metadata)))))

-- | Creates a value of <a>DictionaryListOfflineMetadata</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlomCpksver</a></li>
--   </ul>
dictionaryListOfflineMetadata :: Text -> DictionaryListOfflineMetadata

-- | Returns a list of offline dictionary metadata available
--   
--   <i>See:</i> <a>dictionaryListOfflineMetadata</a> smart constructor.
data DictionaryListOfflineMetadata

-- | The device/version ID from which to request the data.
dlomCpksver :: Lens' DictionaryListOfflineMetadata Text
instance GHC.Generics.Generic Network.Google.Resource.Books.Dictionary.ListOfflineMetadata.DictionaryListOfflineMetadata
instance Data.Data.Data Network.Google.Resource.Books.Dictionary.ListOfflineMetadata.DictionaryListOfflineMetadata
instance GHC.Show.Show Network.Google.Resource.Books.Dictionary.ListOfflineMetadata.DictionaryListOfflineMetadata
instance GHC.Classes.Eq Network.Google.Resource.Books.Dictionary.ListOfflineMetadata.DictionaryListOfflineMetadata
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Dictionary.ListOfflineMetadata.DictionaryListOfflineMetadata


-- | Gets the annotation data.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.layers.annotationData.get</tt>.
module Network.Google.Resource.Books.Layers.AnnotationData.Get

-- | A resource alias for <tt>books.layers.annotationData.get</tt> method
--   which the <a>LayersAnnotationDataGet</a> request conforms to.
type LayersAnnotationDataGetResource = "books" :> ("v1" :> ("volumes" :> (Capture "volumeId" Text :> ("layers" :> (Capture "layerId" Text :> ("data" :> (Capture "annotationDataId" Text :> (QueryParam "contentVersion" Text :> (QueryParam "w" (Textual Int32) :> (QueryParam "scale" (Textual Int32) :> (QueryParam "locale" Text :> (QueryParam "allowWebDefinitions" Bool :> (QueryParam "source" Text :> (QueryParam "h" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] AnnotationData)))))))))))))))

-- | Creates a value of <a>LayersAnnotationDataGet</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ladgW</a></li>
--   <li><a>ladgScale</a></li>
--   <li><a>ladgLocale</a></li>
--   <li><a>ladgContentVersion</a></li>
--   <li><a>ladgAllowWebDefinitions</a></li>
--   <li><a>ladgAnnotationDataId</a></li>
--   <li><a>ladgVolumeId</a></li>
--   <li><a>ladgSource</a></li>
--   <li><a>ladgH</a></li>
--   <li><a>ladgLayerId</a></li>
--   </ul>
layersAnnotationDataGet :: Text -> Text -> Text -> Text -> LayersAnnotationDataGet

-- | Gets the annotation data.
--   
--   <i>See:</i> <a>layersAnnotationDataGet</a> smart constructor.
data LayersAnnotationDataGet

-- | The requested pixel width for any images. If width is provided height
--   must also be provided.
ladgW :: Lens' LayersAnnotationDataGet (Maybe Int32)

-- | The requested scale for the image.
ladgScale :: Lens' LayersAnnotationDataGet (Maybe Int32)

-- | The locale information for the data. ISO-639-1 language and ISO-3166-1
--   country code. Ex: 'en_US'.
ladgLocale :: Lens' LayersAnnotationDataGet (Maybe Text)

-- | The content version for the volume you are trying to retrieve.
ladgContentVersion :: Lens' LayersAnnotationDataGet Text

-- | For the dictionary layer. Whether or not to allow web definitions.
ladgAllowWebDefinitions :: Lens' LayersAnnotationDataGet (Maybe Bool)

-- | The ID of the annotation data to retrieve.
ladgAnnotationDataId :: Lens' LayersAnnotationDataGet Text

-- | The volume to retrieve annotations for.
ladgVolumeId :: Lens' LayersAnnotationDataGet Text

-- | String to identify the originator of this request.
ladgSource :: Lens' LayersAnnotationDataGet (Maybe Text)

-- | The requested pixel height for any images. If height is provided width
--   must also be provided.
ladgH :: Lens' LayersAnnotationDataGet (Maybe Int32)

-- | The ID for the layer to get the annotations.
ladgLayerId :: Lens' LayersAnnotationDataGet Text
instance GHC.Generics.Generic Network.Google.Resource.Books.Layers.AnnotationData.Get.LayersAnnotationDataGet
instance Data.Data.Data Network.Google.Resource.Books.Layers.AnnotationData.Get.LayersAnnotationDataGet
instance GHC.Show.Show Network.Google.Resource.Books.Layers.AnnotationData.Get.LayersAnnotationDataGet
instance GHC.Classes.Eq Network.Google.Resource.Books.Layers.AnnotationData.Get.LayersAnnotationDataGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Layers.AnnotationData.Get.LayersAnnotationDataGet


-- | Gets the annotation data for a volume and layer.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.layers.annotationData.list</tt>.
module Network.Google.Resource.Books.Layers.AnnotationData.List

-- | A resource alias for <tt>books.layers.annotationData.list</tt> method
--   which the <a>LayersAnnotationDataList</a> request conforms to.
type LayersAnnotationDataListResource = "books" :> ("v1" :> ("volumes" :> (Capture "volumeId" Text :> ("layers" :> (Capture "layerId" Text :> ("data" :> (QueryParam "contentVersion" Text :> (QueryParam "w" (Textual Int32) :> (QueryParam "scale" (Textual Int32) :> (QueryParam "locale" Text :> (QueryParam "updatedMax" Text :> (QueryParam "updatedMin" Text :> (QueryParams "annotationDataId" Text :> (QueryParam "source" Text :> (QueryParam "h" (Textual Int32) :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] AnnotationsData))))))))))))))))))

-- | Creates a value of <a>LayersAnnotationDataList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ladlW</a></li>
--   <li><a>ladlScale</a></li>
--   <li><a>ladlLocale</a></li>
--   <li><a>ladlContentVersion</a></li>
--   <li><a>ladlUpdatedMax</a></li>
--   <li><a>ladlUpdatedMin</a></li>
--   <li><a>ladlAnnotationDataId</a></li>
--   <li><a>ladlVolumeId</a></li>
--   <li><a>ladlSource</a></li>
--   <li><a>ladlH</a></li>
--   <li><a>ladlPageToken</a></li>
--   <li><a>ladlLayerId</a></li>
--   <li><a>ladlMaxResults</a></li>
--   </ul>
layersAnnotationDataList :: Text -> Text -> Text -> LayersAnnotationDataList

-- | Gets the annotation data for a volume and layer.
--   
--   <i>See:</i> <a>layersAnnotationDataList</a> smart constructor.
data LayersAnnotationDataList

-- | The requested pixel width for any images. If width is provided height
--   must also be provided.
ladlW :: Lens' LayersAnnotationDataList (Maybe Int32)

-- | The requested scale for the image.
ladlScale :: Lens' LayersAnnotationDataList (Maybe Int32)

-- | The locale information for the data. ISO-639-1 language and ISO-3166-1
--   country code. Ex: 'en_US'.
ladlLocale :: Lens' LayersAnnotationDataList (Maybe Text)

-- | The content version for the requested volume.
ladlContentVersion :: Lens' LayersAnnotationDataList Text

-- | RFC 3339 timestamp to restrict to items updated prior to this
--   timestamp (exclusive).
ladlUpdatedMax :: Lens' LayersAnnotationDataList (Maybe Text)

-- | RFC 3339 timestamp to restrict to items updated since this timestamp
--   (inclusive).
ladlUpdatedMin :: Lens' LayersAnnotationDataList (Maybe Text)

-- | The list of Annotation Data Ids to retrieve. Pagination is ignored if
--   this is set.
ladlAnnotationDataId :: Lens' LayersAnnotationDataList [Text]

-- | The volume to retrieve annotation data for.
ladlVolumeId :: Lens' LayersAnnotationDataList Text

-- | String to identify the originator of this request.
ladlSource :: Lens' LayersAnnotationDataList (Maybe Text)

-- | The requested pixel height for any images. If height is provided width
--   must also be provided.
ladlH :: Lens' LayersAnnotationDataList (Maybe Int32)

-- | The value of the nextToken from the previous page.
ladlPageToken :: Lens' LayersAnnotationDataList (Maybe Text)

-- | The ID for the layer to get the annotation data.
ladlLayerId :: Lens' LayersAnnotationDataList Text

-- | Maximum number of results to return
ladlMaxResults :: Lens' LayersAnnotationDataList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.Books.Layers.AnnotationData.List.LayersAnnotationDataList
instance Data.Data.Data Network.Google.Resource.Books.Layers.AnnotationData.List.LayersAnnotationDataList
instance GHC.Show.Show Network.Google.Resource.Books.Layers.AnnotationData.List.LayersAnnotationDataList
instance GHC.Classes.Eq Network.Google.Resource.Books.Layers.AnnotationData.List.LayersAnnotationDataList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Layers.AnnotationData.List.LayersAnnotationDataList


-- | Gets the layer summary for a volume.
--   
--   <i>See:</i> <a>Books API Reference</a> for <tt>books.layers.get</tt>.
module Network.Google.Resource.Books.Layers.Get

-- | A resource alias for <tt>books.layers.get</tt> method which the
--   <a>LayersGet</a> request conforms to.
type LayersGetResource = "books" :> ("v1" :> ("volumes" :> (Capture "volumeId" Text :> ("layersummary" :> (Capture "summaryId" Text :> (QueryParam "contentVersion" Text :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Layersummary))))))))

-- | Creates a value of <a>LayersGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lgContentVersion</a></li>
--   <li><a>lgVolumeId</a></li>
--   <li><a>lgSource</a></li>
--   <li><a>lgSummaryId</a></li>
--   </ul>
layersGet :: Text -> Text -> LayersGet

-- | Gets the layer summary for a volume.
--   
--   <i>See:</i> <a>layersGet</a> smart constructor.
data LayersGet

-- | The content version for the requested volume.
lgContentVersion :: Lens' LayersGet (Maybe Text)

-- | The volume to retrieve layers for.
lgVolumeId :: Lens' LayersGet Text

-- | String to identify the originator of this request.
lgSource :: Lens' LayersGet (Maybe Text)

-- | The ID for the layer to get the summary for.
lgSummaryId :: Lens' LayersGet Text
instance GHC.Generics.Generic Network.Google.Resource.Books.Layers.Get.LayersGet
instance Data.Data.Data Network.Google.Resource.Books.Layers.Get.LayersGet
instance GHC.Show.Show Network.Google.Resource.Books.Layers.Get.LayersGet
instance GHC.Classes.Eq Network.Google.Resource.Books.Layers.Get.LayersGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Layers.Get.LayersGet


-- | List the layer summaries for a volume.
--   
--   <i>See:</i> <a>Books API Reference</a> for <tt>books.layers.list</tt>.
module Network.Google.Resource.Books.Layers.List

-- | A resource alias for <tt>books.layers.list</tt> method which the
--   <a>LayersList</a> request conforms to.
type LayersListResource = "books" :> ("v1" :> ("volumes" :> (Capture "volumeId" Text :> ("layersummary" :> (QueryParam "contentVersion" Text :> (QueryParam "source" Text :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] Layersummaries)))))))))

-- | Creates a value of <a>LayersList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>llContentVersion</a></li>
--   <li><a>llVolumeId</a></li>
--   <li><a>llSource</a></li>
--   <li><a>llPageToken</a></li>
--   <li><a>llMaxResults</a></li>
--   </ul>
layersList :: Text -> LayersList

-- | List the layer summaries for a volume.
--   
--   <i>See:</i> <a>layersList</a> smart constructor.
data LayersList

-- | The content version for the requested volume.
llContentVersion :: Lens' LayersList (Maybe Text)

-- | The volume to retrieve layers for.
llVolumeId :: Lens' LayersList Text

-- | String to identify the originator of this request.
llSource :: Lens' LayersList (Maybe Text)

-- | The value of the nextToken from the previous page.
llPageToken :: Lens' LayersList (Maybe Text)

-- | Maximum number of results to return
llMaxResults :: Lens' LayersList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.Books.Layers.List.LayersList
instance Data.Data.Data Network.Google.Resource.Books.Layers.List.LayersList
instance GHC.Show.Show Network.Google.Resource.Books.Layers.List.LayersList
instance GHC.Classes.Eq Network.Google.Resource.Books.Layers.List.LayersList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Layers.List.LayersList


-- | Gets the volume annotation.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.layers.volumeAnnotations.get</tt>.
module Network.Google.Resource.Books.Layers.VolumeAnnotations.Get

-- | A resource alias for <tt>books.layers.volumeAnnotations.get</tt>
--   method which the <a>LayersVolumeAnnotationsGet</a> request conforms
--   to.
type LayersVolumeAnnotationsGetResource = "books" :> ("v1" :> ("volumes" :> (Capture "volumeId" Text :> ("layers" :> (Capture "layerId" Text :> ("annotations" :> (Capture "annotationId" Text :> (QueryParam "locale" Text :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Volumeannotation))))))))))

-- | Creates a value of <a>LayersVolumeAnnotationsGet</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lvagLocale</a></li>
--   <li><a>lvagAnnotationId</a></li>
--   <li><a>lvagVolumeId</a></li>
--   <li><a>lvagSource</a></li>
--   <li><a>lvagLayerId</a></li>
--   </ul>
layersVolumeAnnotationsGet :: Text -> Text -> Text -> LayersVolumeAnnotationsGet

-- | Gets the volume annotation.
--   
--   <i>See:</i> <a>layersVolumeAnnotationsGet</a> smart constructor.
data LayersVolumeAnnotationsGet

-- | The locale information for the data. ISO-639-1 language and ISO-3166-1
--   country code. Ex: 'en_US'.
lvagLocale :: Lens' LayersVolumeAnnotationsGet (Maybe Text)

-- | The ID of the volume annotation to retrieve.
lvagAnnotationId :: Lens' LayersVolumeAnnotationsGet Text

-- | The volume to retrieve annotations for.
lvagVolumeId :: Lens' LayersVolumeAnnotationsGet Text

-- | String to identify the originator of this request.
lvagSource :: Lens' LayersVolumeAnnotationsGet (Maybe Text)

-- | The ID for the layer to get the annotations.
lvagLayerId :: Lens' LayersVolumeAnnotationsGet Text
instance GHC.Generics.Generic Network.Google.Resource.Books.Layers.VolumeAnnotations.Get.LayersVolumeAnnotationsGet
instance Data.Data.Data Network.Google.Resource.Books.Layers.VolumeAnnotations.Get.LayersVolumeAnnotationsGet
instance GHC.Show.Show Network.Google.Resource.Books.Layers.VolumeAnnotations.Get.LayersVolumeAnnotationsGet
instance GHC.Classes.Eq Network.Google.Resource.Books.Layers.VolumeAnnotations.Get.LayersVolumeAnnotationsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Layers.VolumeAnnotations.Get.LayersVolumeAnnotationsGet


-- | Gets the volume annotations for a volume and layer.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.layers.volumeAnnotations.list</tt>.
module Network.Google.Resource.Books.Layers.VolumeAnnotations.List

-- | A resource alias for <tt>books.layers.volumeAnnotations.list</tt>
--   method which the <a>LayersVolumeAnnotationsList</a> request conforms
--   to.
type LayersVolumeAnnotationsListResource = "books" :> ("v1" :> ("volumes" :> (Capture "volumeId" Text :> ("layers" :> (Capture "layerId" Text :> (QueryParam "contentVersion" Text :> (QueryParam "startOffset" Text :> (QueryParam "locale" Text :> (QueryParam "showDeleted" Bool :> (QueryParam "volumeAnnotationsVersion" Text :> (QueryParam "updatedMax" Text :> (QueryParam "updatedMin" Text :> (QueryParam "endOffset" Text :> (QueryParam "source" Text :> (QueryParam "pageToken" Text :> (QueryParam "endPosition" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "startPosition" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Volumeannotations)))))))))))))))))))

-- | Creates a value of <a>LayersVolumeAnnotationsList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lvalStartOffSet</a></li>
--   <li><a>lvalLocale</a></li>
--   <li><a>lvalContentVersion</a></li>
--   <li><a>lvalShowDeleted</a></li>
--   <li><a>lvalVolumeAnnotationsVersion</a></li>
--   <li><a>lvalUpdatedMax</a></li>
--   <li><a>lvalUpdatedMin</a></li>
--   <li><a>lvalEndOffSet</a></li>
--   <li><a>lvalVolumeId</a></li>
--   <li><a>lvalSource</a></li>
--   <li><a>lvalPageToken</a></li>
--   <li><a>lvalEndPosition</a></li>
--   <li><a>lvalLayerId</a></li>
--   <li><a>lvalMaxResults</a></li>
--   <li><a>lvalStartPosition</a></li>
--   </ul>
layersVolumeAnnotationsList :: Text -> Text -> Text -> LayersVolumeAnnotationsList

-- | Gets the volume annotations for a volume and layer.
--   
--   <i>See:</i> <a>layersVolumeAnnotationsList</a> smart constructor.
data LayersVolumeAnnotationsList

-- | The start offset to start retrieving data from.
lvalStartOffSet :: Lens' LayersVolumeAnnotationsList (Maybe Text)

-- | The locale information for the data. ISO-639-1 language and ISO-3166-1
--   country code. Ex: 'en_US'.
lvalLocale :: Lens' LayersVolumeAnnotationsList (Maybe Text)

-- | The content version for the requested volume.
lvalContentVersion :: Lens' LayersVolumeAnnotationsList Text

-- | Set to true to return deleted annotations. updatedMin must be in the
--   request to use this. Defaults to false.
lvalShowDeleted :: Lens' LayersVolumeAnnotationsList (Maybe Bool)

-- | The version of the volume annotations that you are requesting.
lvalVolumeAnnotationsVersion :: Lens' LayersVolumeAnnotationsList (Maybe Text)

-- | RFC 3339 timestamp to restrict to items updated prior to this
--   timestamp (exclusive).
lvalUpdatedMax :: Lens' LayersVolumeAnnotationsList (Maybe Text)

-- | RFC 3339 timestamp to restrict to items updated since this timestamp
--   (inclusive).
lvalUpdatedMin :: Lens' LayersVolumeAnnotationsList (Maybe Text)

-- | The end offset to end retrieving data from.
lvalEndOffSet :: Lens' LayersVolumeAnnotationsList (Maybe Text)

-- | The volume to retrieve annotations for.
lvalVolumeId :: Lens' LayersVolumeAnnotationsList Text

-- | String to identify the originator of this request.
lvalSource :: Lens' LayersVolumeAnnotationsList (Maybe Text)

-- | The value of the nextToken from the previous page.
lvalPageToken :: Lens' LayersVolumeAnnotationsList (Maybe Text)

-- | The end position to end retrieving data from.
lvalEndPosition :: Lens' LayersVolumeAnnotationsList (Maybe Text)

-- | The ID for the layer to get the annotations.
lvalLayerId :: Lens' LayersVolumeAnnotationsList Text

-- | Maximum number of results to return
lvalMaxResults :: Lens' LayersVolumeAnnotationsList (Maybe Word32)

-- | The start position to start retrieving data from.
lvalStartPosition :: Lens' LayersVolumeAnnotationsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.Layers.VolumeAnnotations.List.LayersVolumeAnnotationsList
instance Data.Data.Data Network.Google.Resource.Books.Layers.VolumeAnnotations.List.LayersVolumeAnnotationsList
instance GHC.Show.Show Network.Google.Resource.Books.Layers.VolumeAnnotations.List.LayersVolumeAnnotationsList
instance GHC.Classes.Eq Network.Google.Resource.Books.Layers.VolumeAnnotations.List.LayersVolumeAnnotationsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Layers.VolumeAnnotations.List.LayersVolumeAnnotationsList


-- | Gets the current settings for the user.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.myconfig.getUserSettings</tt>.
module Network.Google.Resource.Books.MyConfig.GetUserSettings

-- | A resource alias for <tt>books.myconfig.getUserSettings</tt> method
--   which the <a>MyConfigGetUserSettings</a> request conforms to.
type MyConfigGetUserSettingsResource = "books" :> ("v1" :> ("myconfig" :> ("getUserSettings" :> (QueryParam "alt" AltJSON :> Get '[JSON] UserSettings))))

-- | Creates a value of <a>MyConfigGetUserSettings</a> with the minimum
--   fields required to make a request.
myConfigGetUserSettings :: MyConfigGetUserSettings

-- | Gets the current settings for the user.
--   
--   <i>See:</i> <a>myConfigGetUserSettings</a> smart constructor.
data MyConfigGetUserSettings
instance GHC.Generics.Generic Network.Google.Resource.Books.MyConfig.GetUserSettings.MyConfigGetUserSettings
instance Data.Data.Data Network.Google.Resource.Books.MyConfig.GetUserSettings.MyConfigGetUserSettings
instance GHC.Show.Show Network.Google.Resource.Books.MyConfig.GetUserSettings.MyConfigGetUserSettings
instance GHC.Classes.Eq Network.Google.Resource.Books.MyConfig.GetUserSettings.MyConfigGetUserSettings
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyConfig.GetUserSettings.MyConfigGetUserSettings


-- | Release downloaded content access restriction.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.myconfig.releaseDownloadAccess</tt>.
module Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess

-- | A resource alias for <tt>books.myconfig.releaseDownloadAccess</tt>
--   method which the <a>MyConfigReleaseDownloadAccess</a> request conforms
--   to.
type MyConfigReleaseDownloadAccessResource = "books" :> ("v1" :> ("myconfig" :> ("releaseDownloadAccess" :> (QueryParams "volumeIds" Text :> (QueryParam "cpksver" Text :> (QueryParam "locale" Text :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] DownloadAccesses))))))))

-- | Creates a value of <a>MyConfigReleaseDownloadAccess</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcrdaCpksver</a></li>
--   <li><a>mcrdaLocale</a></li>
--   <li><a>mcrdaVolumeIds</a></li>
--   <li><a>mcrdaSource</a></li>
--   </ul>
myConfigReleaseDownloadAccess :: Text -> [Text] -> MyConfigReleaseDownloadAccess

-- | Release downloaded content access restriction.
--   
--   <i>See:</i> <a>myConfigReleaseDownloadAccess</a> smart constructor.
data MyConfigReleaseDownloadAccess

-- | The device/version ID from which to release the restriction.
mcrdaCpksver :: Lens' MyConfigReleaseDownloadAccess Text

-- | ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.
mcrdaLocale :: Lens' MyConfigReleaseDownloadAccess (Maybe Text)

-- | The volume(s) to release restrictions for.
mcrdaVolumeIds :: Lens' MyConfigReleaseDownloadAccess [Text]

-- | String to identify the originator of this request.
mcrdaSource :: Lens' MyConfigReleaseDownloadAccess (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess.MyConfigReleaseDownloadAccess
instance Data.Data.Data Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess.MyConfigReleaseDownloadAccess
instance GHC.Show.Show Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess.MyConfigReleaseDownloadAccess
instance GHC.Classes.Eq Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess.MyConfigReleaseDownloadAccess
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess.MyConfigReleaseDownloadAccess


-- | Request concurrent and download access restrictions.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.myconfig.requestAccess</tt>.
module Network.Google.Resource.Books.MyConfig.RequestAccess

-- | A resource alias for <tt>books.myconfig.requestAccess</tt> method
--   which the <a>MyConfigRequestAccess</a> request conforms to.
type MyConfigRequestAccessResource = "books" :> ("v1" :> ("myconfig" :> ("requestAccess" :> (QueryParam "source" Text :> (QueryParam "volumeId" Text :> (QueryParam "nonce" Text :> (QueryParam "cpksver" Text :> (QueryParam "locale" Text :> (QueryParam "licenseTypes" MyConfigRequestAccessLicenseTypes :> (QueryParam "alt" AltJSON :> Post '[JSON] RequestAccess))))))))))

-- | Creates a value of <a>MyConfigRequestAccess</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcraCpksver</a></li>
--   <li><a>mcraLocale</a></li>
--   <li><a>mcraLicenseTypes</a></li>
--   <li><a>mcraVolumeId</a></li>
--   <li><a>mcraSource</a></li>
--   <li><a>mcraNonce</a></li>
--   </ul>
myConfigRequestAccess :: Text -> Text -> Text -> Text -> MyConfigRequestAccess

-- | Request concurrent and download access restrictions.
--   
--   <i>See:</i> <a>myConfigRequestAccess</a> smart constructor.
data MyConfigRequestAccess

-- | The device/version ID from which to request the restrictions.
mcraCpksver :: Lens' MyConfigRequestAccess Text

-- | ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.
mcraLocale :: Lens' MyConfigRequestAccess (Maybe Text)

-- | The type of access license to request. If not specified, the default
--   is BOTH.
mcraLicenseTypes :: Lens' MyConfigRequestAccess (Maybe MyConfigRequestAccessLicenseTypes)

-- | The volume to request concurrent/download restrictions for.
mcraVolumeId :: Lens' MyConfigRequestAccess Text

-- | String to identify the originator of this request.
mcraSource :: Lens' MyConfigRequestAccess Text

-- | The client nonce value.
mcraNonce :: Lens' MyConfigRequestAccess Text
instance GHC.Generics.Generic Network.Google.Resource.Books.MyConfig.RequestAccess.MyConfigRequestAccess
instance Data.Data.Data Network.Google.Resource.Books.MyConfig.RequestAccess.MyConfigRequestAccess
instance GHC.Show.Show Network.Google.Resource.Books.MyConfig.RequestAccess.MyConfigRequestAccess
instance GHC.Classes.Eq Network.Google.Resource.Books.MyConfig.RequestAccess.MyConfigRequestAccess
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyConfig.RequestAccess.MyConfigRequestAccess


-- | Request downloaded content access for specified volumes on the My
--   eBooks shelf.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.myconfig.syncVolumeLicenses</tt>.
module Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses

-- | A resource alias for <tt>books.myconfig.syncVolumeLicenses</tt> method
--   which the <a>MyConfigSyncVolumeLicenses</a> request conforms to.
type MyConfigSyncVolumeLicensesResource = "books" :> ("v1" :> ("myconfig" :> ("syncVolumeLicenses" :> (QueryParam "source" Text :> (QueryParam "nonce" Text :> (QueryParam "cpksver" Text :> (QueryParam "locale" Text :> (QueryParam "includeNonComicsSeries" Bool :> (QueryParams "volumeIds" Text :> (QueryParams "features" MyConfigSyncVolumeLicensesFeatures :> (QueryParam "showPreorders" Bool :> (QueryParam "alt" AltJSON :> Post '[JSON] Volumes))))))))))))

-- | Creates a value of <a>MyConfigSyncVolumeLicenses</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcsvlCpksver</a></li>
--   <li><a>mcsvlLocale</a></li>
--   <li><a>mcsvlIncludeNonComicsSeries</a></li>
--   <li><a>mcsvlVolumeIds</a></li>
--   <li><a>mcsvlFeatures</a></li>
--   <li><a>mcsvlSource</a></li>
--   <li><a>mcsvlShowPreOrders</a></li>
--   <li><a>mcsvlNonce</a></li>
--   </ul>
myConfigSyncVolumeLicenses :: Text -> Text -> Text -> MyConfigSyncVolumeLicenses

-- | Request downloaded content access for specified volumes on the My
--   eBooks shelf.
--   
--   <i>See:</i> <a>myConfigSyncVolumeLicenses</a> smart constructor.
data MyConfigSyncVolumeLicenses

-- | The device/version ID from which to release the restriction.
mcsvlCpksver :: Lens' MyConfigSyncVolumeLicenses Text

-- | ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.
mcsvlLocale :: Lens' MyConfigSyncVolumeLicenses (Maybe Text)

-- | Set to true to include non-comics series. Defaults to false.
mcsvlIncludeNonComicsSeries :: Lens' MyConfigSyncVolumeLicenses (Maybe Bool)

-- | The volume(s) to request download restrictions for.
mcsvlVolumeIds :: Lens' MyConfigSyncVolumeLicenses [Text]

-- | List of features supported by the client, i.e., 'RENTALS'
mcsvlFeatures :: Lens' MyConfigSyncVolumeLicenses [MyConfigSyncVolumeLicensesFeatures]

-- | String to identify the originator of this request.
mcsvlSource :: Lens' MyConfigSyncVolumeLicenses Text

-- | Set to true to show pre-ordered books. Defaults to false.
mcsvlShowPreOrders :: Lens' MyConfigSyncVolumeLicenses (Maybe Bool)

-- | The client nonce value.
mcsvlNonce :: Lens' MyConfigSyncVolumeLicenses Text
instance GHC.Generics.Generic Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses.MyConfigSyncVolumeLicenses
instance Data.Data.Data Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses.MyConfigSyncVolumeLicenses
instance GHC.Show.Show Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses.MyConfigSyncVolumeLicenses
instance GHC.Classes.Eq Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses.MyConfigSyncVolumeLicenses
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses.MyConfigSyncVolumeLicenses


-- | 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.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.myconfig.updateUserSettings</tt>.
module Network.Google.Resource.Books.MyConfig.UpdateUserSettings

-- | A resource alias for <tt>books.myconfig.updateUserSettings</tt> method
--   which the <a>MyConfigUpdateUserSettings</a> request conforms to.
type MyConfigUpdateUserSettingsResource = "books" :> ("v1" :> ("myconfig" :> ("updateUserSettings" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] UserSettings :> Post '[JSON] UserSettings)))))

-- | Creates a value of <a>MyConfigUpdateUserSettings</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcuusPayload</a></li>
--   </ul>
myConfigUpdateUserSettings :: UserSettings -> MyConfigUpdateUserSettings

-- | 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.
--   
--   <i>See:</i> <a>myConfigUpdateUserSettings</a> smart constructor.
data MyConfigUpdateUserSettings

-- | Multipart request metadata.
mcuusPayload :: Lens' MyConfigUpdateUserSettings UserSettings
instance GHC.Generics.Generic Network.Google.Resource.Books.MyConfig.UpdateUserSettings.MyConfigUpdateUserSettings
instance Data.Data.Data Network.Google.Resource.Books.MyConfig.UpdateUserSettings.MyConfigUpdateUserSettings
instance GHC.Show.Show Network.Google.Resource.Books.MyConfig.UpdateUserSettings.MyConfigUpdateUserSettings
instance GHC.Classes.Eq Network.Google.Resource.Books.MyConfig.UpdateUserSettings.MyConfigUpdateUserSettings
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyConfig.UpdateUserSettings.MyConfigUpdateUserSettings


-- | Deletes an annotation.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.mylibrary.annotations.delete</tt>.
module Network.Google.Resource.Books.MyLibrary.Annotations.Delete

-- | A resource alias for <tt>books.mylibrary.annotations.delete</tt>
--   method which the <a>MyLibraryAnnotationsDelete</a> request conforms
--   to.
type MyLibraryAnnotationsDeleteResource = "books" :> ("v1" :> ("mylibrary" :> ("annotations" :> (Capture "annotationId" Text :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))))

-- | Creates a value of <a>MyLibraryAnnotationsDelete</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mladAnnotationId</a></li>
--   <li><a>mladSource</a></li>
--   </ul>
myLibraryAnnotationsDelete :: Text -> MyLibraryAnnotationsDelete

-- | Deletes an annotation.
--   
--   <i>See:</i> <a>myLibraryAnnotationsDelete</a> smart constructor.
data MyLibraryAnnotationsDelete

-- | The ID for the annotation to delete.
mladAnnotationId :: Lens' MyLibraryAnnotationsDelete Text

-- | String to identify the originator of this request.
mladSource :: Lens' MyLibraryAnnotationsDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.MyLibrary.Annotations.Delete.MyLibraryAnnotationsDelete
instance Data.Data.Data Network.Google.Resource.Books.MyLibrary.Annotations.Delete.MyLibraryAnnotationsDelete
instance GHC.Show.Show Network.Google.Resource.Books.MyLibrary.Annotations.Delete.MyLibraryAnnotationsDelete
instance GHC.Classes.Eq Network.Google.Resource.Books.MyLibrary.Annotations.Delete.MyLibraryAnnotationsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyLibrary.Annotations.Delete.MyLibraryAnnotationsDelete


-- | Inserts a new annotation.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.mylibrary.annotations.insert</tt>.
module Network.Google.Resource.Books.MyLibrary.Annotations.Insert

-- | A resource alias for <tt>books.mylibrary.annotations.insert</tt>
--   method which the <a>MyLibraryAnnotationsInsert</a> request conforms
--   to.
type MyLibraryAnnotationsInsertResource = "books" :> ("v1" :> ("mylibrary" :> ("annotations" :> (QueryParam "country" Text :> (QueryParam "showOnlySummaryInResponse" Bool :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Annotation :> Post '[JSON] Annotation))))))))

-- | Creates a value of <a>MyLibraryAnnotationsInsert</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mlaiCountry</a></li>
--   <li><a>mlaiPayload</a></li>
--   <li><a>mlaiShowOnlySummaryInResponse</a></li>
--   <li><a>mlaiSource</a></li>
--   </ul>
myLibraryAnnotationsInsert :: Annotation -> MyLibraryAnnotationsInsert

-- | Inserts a new annotation.
--   
--   <i>See:</i> <a>myLibraryAnnotationsInsert</a> smart constructor.
data MyLibraryAnnotationsInsert

-- | ISO-3166-1 code to override the IP-based location.
mlaiCountry :: Lens' MyLibraryAnnotationsInsert (Maybe Text)

-- | Multipart request metadata.
mlaiPayload :: Lens' MyLibraryAnnotationsInsert Annotation

-- | Requests that only the summary of the specified layer be provided in
--   the response.
mlaiShowOnlySummaryInResponse :: Lens' MyLibraryAnnotationsInsert (Maybe Bool)

-- | String to identify the originator of this request.
mlaiSource :: Lens' MyLibraryAnnotationsInsert (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.MyLibrary.Annotations.Insert.MyLibraryAnnotationsInsert
instance Data.Data.Data Network.Google.Resource.Books.MyLibrary.Annotations.Insert.MyLibraryAnnotationsInsert
instance GHC.Show.Show Network.Google.Resource.Books.MyLibrary.Annotations.Insert.MyLibraryAnnotationsInsert
instance GHC.Classes.Eq Network.Google.Resource.Books.MyLibrary.Annotations.Insert.MyLibraryAnnotationsInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyLibrary.Annotations.Insert.MyLibraryAnnotationsInsert


-- | Retrieves a list of annotations, possibly filtered.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.mylibrary.annotations.list</tt>.
module Network.Google.Resource.Books.MyLibrary.Annotations.List

-- | A resource alias for <tt>books.mylibrary.annotations.list</tt> method
--   which the <a>MyLibraryAnnotationsList</a> request conforms to.
type MyLibraryAnnotationsListResource = "books" :> ("v1" :> ("mylibrary" :> ("annotations" :> (QueryParam "contentVersion" Text :> (QueryParam "showDeleted" Bool :> (QueryParam "updatedMax" Text :> (QueryParam "updatedMin" Text :> (QueryParams "layerIds" Text :> (QueryParam "volumeId" Text :> (QueryParam "source" Text :> (QueryParam "pageToken" Text :> (QueryParam "layerId" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] Annotations))))))))))))))

-- | Creates a value of <a>MyLibraryAnnotationsList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mlalContentVersion</a></li>
--   <li><a>mlalShowDeleted</a></li>
--   <li><a>mlalUpdatedMax</a></li>
--   <li><a>mlalUpdatedMin</a></li>
--   <li><a>mlalLayerIds</a></li>
--   <li><a>mlalVolumeId</a></li>
--   <li><a>mlalSource</a></li>
--   <li><a>mlalPageToken</a></li>
--   <li><a>mlalLayerId</a></li>
--   <li><a>mlalMaxResults</a></li>
--   </ul>
myLibraryAnnotationsList :: MyLibraryAnnotationsList

-- | Retrieves a list of annotations, possibly filtered.
--   
--   <i>See:</i> <a>myLibraryAnnotationsList</a> smart constructor.
data MyLibraryAnnotationsList

-- | The content version for the requested volume.
mlalContentVersion :: Lens' MyLibraryAnnotationsList (Maybe Text)

-- | Set to true to return deleted annotations. updatedMin must be in the
--   request to use this. Defaults to false.
mlalShowDeleted :: Lens' MyLibraryAnnotationsList (Maybe Bool)

-- | RFC 3339 timestamp to restrict to items updated prior to this
--   timestamp (exclusive).
mlalUpdatedMax :: Lens' MyLibraryAnnotationsList (Maybe Text)

-- | RFC 3339 timestamp to restrict to items updated since this timestamp
--   (inclusive).
mlalUpdatedMin :: Lens' MyLibraryAnnotationsList (Maybe Text)

-- | The layer ID(s) to limit annotation by.
mlalLayerIds :: Lens' MyLibraryAnnotationsList [Text]

-- | The volume to restrict annotations to.
mlalVolumeId :: Lens' MyLibraryAnnotationsList (Maybe Text)

-- | String to identify the originator of this request.
mlalSource :: Lens' MyLibraryAnnotationsList (Maybe Text)

-- | The value of the nextToken from the previous page.
mlalPageToken :: Lens' MyLibraryAnnotationsList (Maybe Text)

-- | The layer ID to limit annotation by.
mlalLayerId :: Lens' MyLibraryAnnotationsList (Maybe Text)

-- | Maximum number of results to return
mlalMaxResults :: Lens' MyLibraryAnnotationsList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.Books.MyLibrary.Annotations.List.MyLibraryAnnotationsList
instance Data.Data.Data Network.Google.Resource.Books.MyLibrary.Annotations.List.MyLibraryAnnotationsList
instance GHC.Show.Show Network.Google.Resource.Books.MyLibrary.Annotations.List.MyLibraryAnnotationsList
instance GHC.Classes.Eq Network.Google.Resource.Books.MyLibrary.Annotations.List.MyLibraryAnnotationsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyLibrary.Annotations.List.MyLibraryAnnotationsList


-- | Gets the summary of specified layers.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.mylibrary.annotations.summary</tt>.
module Network.Google.Resource.Books.MyLibrary.Annotations.Summary

-- | A resource alias for <tt>books.mylibrary.annotations.summary</tt>
--   method which the <a>MyLibraryAnnotationsSummary</a> request conforms
--   to.
type MyLibraryAnnotationsSummaryResource = "books" :> ("v1" :> ("mylibrary" :> ("annotations" :> ("summary" :> (QueryParams "layerIds" Text :> (QueryParam "volumeId" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] AnnotationsSummary)))))))

-- | Creates a value of <a>MyLibraryAnnotationsSummary</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mlasLayerIds</a></li>
--   <li><a>mlasVolumeId</a></li>
--   </ul>
myLibraryAnnotationsSummary :: [Text] -> Text -> MyLibraryAnnotationsSummary

-- | Gets the summary of specified layers.
--   
--   <i>See:</i> <a>myLibraryAnnotationsSummary</a> smart constructor.
data MyLibraryAnnotationsSummary

-- | Array of layer IDs to get the summary for.
mlasLayerIds :: Lens' MyLibraryAnnotationsSummary [Text]

-- | Volume id to get the summary for.
mlasVolumeId :: Lens' MyLibraryAnnotationsSummary Text
instance GHC.Generics.Generic Network.Google.Resource.Books.MyLibrary.Annotations.Summary.MyLibraryAnnotationsSummary
instance Data.Data.Data Network.Google.Resource.Books.MyLibrary.Annotations.Summary.MyLibraryAnnotationsSummary
instance GHC.Show.Show Network.Google.Resource.Books.MyLibrary.Annotations.Summary.MyLibraryAnnotationsSummary
instance GHC.Classes.Eq Network.Google.Resource.Books.MyLibrary.Annotations.Summary.MyLibraryAnnotationsSummary
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyLibrary.Annotations.Summary.MyLibraryAnnotationsSummary


-- | Updates an existing annotation.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.mylibrary.annotations.update</tt>.
module Network.Google.Resource.Books.MyLibrary.Annotations.Update

-- | A resource alias for <tt>books.mylibrary.annotations.update</tt>
--   method which the <a>MyLibraryAnnotationsUpdate</a> request conforms
--   to.
type MyLibraryAnnotationsUpdateResource = "books" :> ("v1" :> ("mylibrary" :> ("annotations" :> (Capture "annotationId" Text :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Annotation :> Put '[JSON] Annotation)))))))

-- | Creates a value of <a>MyLibraryAnnotationsUpdate</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mlauPayload</a></li>
--   <li><a>mlauAnnotationId</a></li>
--   <li><a>mlauSource</a></li>
--   </ul>
myLibraryAnnotationsUpdate :: Annotation -> Text -> MyLibraryAnnotationsUpdate

-- | Updates an existing annotation.
--   
--   <i>See:</i> <a>myLibraryAnnotationsUpdate</a> smart constructor.
data MyLibraryAnnotationsUpdate

-- | Multipart request metadata.
mlauPayload :: Lens' MyLibraryAnnotationsUpdate Annotation

-- | The ID for the annotation to update.
mlauAnnotationId :: Lens' MyLibraryAnnotationsUpdate Text

-- | String to identify the originator of this request.
mlauSource :: Lens' MyLibraryAnnotationsUpdate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.MyLibrary.Annotations.Update.MyLibraryAnnotationsUpdate
instance Data.Data.Data Network.Google.Resource.Books.MyLibrary.Annotations.Update.MyLibraryAnnotationsUpdate
instance GHC.Show.Show Network.Google.Resource.Books.MyLibrary.Annotations.Update.MyLibraryAnnotationsUpdate
instance GHC.Classes.Eq Network.Google.Resource.Books.MyLibrary.Annotations.Update.MyLibraryAnnotationsUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyLibrary.Annotations.Update.MyLibraryAnnotationsUpdate


-- | Adds a volume to a bookshelf.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.mylibrary.bookshelves.addVolume</tt>.
module Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume

-- | A resource alias for <tt>books.mylibrary.bookshelves.addVolume</tt>
--   method which the <a>MyLibraryBookshelvesAddVolume</a> request conforms
--   to.
type MyLibraryBookshelvesAddVolumeResource = "books" :> ("v1" :> ("mylibrary" :> ("bookshelves" :> (Capture "shelf" Text :> ("addVolume" :> (QueryParam "volumeId" Text :> (QueryParam "reason" MyLibraryBookshelvesAddVolumeReason :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] ())))))))))

-- | Creates a value of <a>MyLibraryBookshelvesAddVolume</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mlbavReason</a></li>
--   <li><a>mlbavShelf</a></li>
--   <li><a>mlbavVolumeId</a></li>
--   <li><a>mlbavSource</a></li>
--   </ul>
myLibraryBookshelvesAddVolume :: Text -> Text -> MyLibraryBookshelvesAddVolume

-- | Adds a volume to a bookshelf.
--   
--   <i>See:</i> <a>myLibraryBookshelvesAddVolume</a> smart constructor.
data MyLibraryBookshelvesAddVolume

-- | The reason for which the book is added to the library.
mlbavReason :: Lens' MyLibraryBookshelvesAddVolume (Maybe MyLibraryBookshelvesAddVolumeReason)

-- | ID of bookshelf to which to add a volume.
mlbavShelf :: Lens' MyLibraryBookshelvesAddVolume Text

-- | ID of volume to add.
mlbavVolumeId :: Lens' MyLibraryBookshelvesAddVolume Text

-- | String to identify the originator of this request.
mlbavSource :: Lens' MyLibraryBookshelvesAddVolume (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume.MyLibraryBookshelvesAddVolume
instance Data.Data.Data Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume.MyLibraryBookshelvesAddVolume
instance GHC.Show.Show Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume.MyLibraryBookshelvesAddVolume
instance GHC.Classes.Eq Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume.MyLibraryBookshelvesAddVolume
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume.MyLibraryBookshelvesAddVolume


-- | Clears all volumes from a bookshelf.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.mylibrary.bookshelves.clearVolumes</tt>.
module Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes

-- | A resource alias for <tt>books.mylibrary.bookshelves.clearVolumes</tt>
--   method which the <a>MyLibraryBookshelvesClearVolumes</a> request
--   conforms to.
type MyLibraryBookshelvesClearVolumesResource = "books" :> ("v1" :> ("mylibrary" :> ("bookshelves" :> (Capture "shelf" Text :> ("clearVolumes" :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] ())))))))

-- | Creates a value of <a>MyLibraryBookshelvesClearVolumes</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mlbcvShelf</a></li>
--   <li><a>mlbcvSource</a></li>
--   </ul>
myLibraryBookshelvesClearVolumes :: Text -> MyLibraryBookshelvesClearVolumes

-- | Clears all volumes from a bookshelf.
--   
--   <i>See:</i> <a>myLibraryBookshelvesClearVolumes</a> smart constructor.
data MyLibraryBookshelvesClearVolumes

-- | ID of bookshelf from which to remove a volume.
mlbcvShelf :: Lens' MyLibraryBookshelvesClearVolumes Text

-- | String to identify the originator of this request.
mlbcvSource :: Lens' MyLibraryBookshelvesClearVolumes (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes.MyLibraryBookshelvesClearVolumes
instance Data.Data.Data Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes.MyLibraryBookshelvesClearVolumes
instance GHC.Show.Show Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes.MyLibraryBookshelvesClearVolumes
instance GHC.Classes.Eq Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes.MyLibraryBookshelvesClearVolumes
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes.MyLibraryBookshelvesClearVolumes


-- | Retrieves metadata for a specific bookshelf belonging to the
--   authenticated user.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.mylibrary.bookshelves.get</tt>.
module Network.Google.Resource.Books.MyLibrary.Bookshelves.Get

-- | A resource alias for <tt>books.mylibrary.bookshelves.get</tt> method
--   which the <a>MyLibraryBookshelvesGet</a> request conforms to.
type MyLibraryBookshelvesGetResource = "books" :> ("v1" :> ("mylibrary" :> ("bookshelves" :> (Capture "shelf" Text :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Bookshelf))))))

-- | Creates a value of <a>MyLibraryBookshelvesGet</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mlbgShelf</a></li>
--   <li><a>mlbgSource</a></li>
--   </ul>
myLibraryBookshelvesGet :: Text -> MyLibraryBookshelvesGet

-- | Retrieves metadata for a specific bookshelf belonging to the
--   authenticated user.
--   
--   <i>See:</i> <a>myLibraryBookshelvesGet</a> smart constructor.
data MyLibraryBookshelvesGet

-- | ID of bookshelf to retrieve.
mlbgShelf :: Lens' MyLibraryBookshelvesGet Text

-- | String to identify the originator of this request.
mlbgSource :: Lens' MyLibraryBookshelvesGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.MyLibrary.Bookshelves.Get.MyLibraryBookshelvesGet
instance Data.Data.Data Network.Google.Resource.Books.MyLibrary.Bookshelves.Get.MyLibraryBookshelvesGet
instance GHC.Show.Show Network.Google.Resource.Books.MyLibrary.Bookshelves.Get.MyLibraryBookshelvesGet
instance GHC.Classes.Eq Network.Google.Resource.Books.MyLibrary.Bookshelves.Get.MyLibraryBookshelvesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyLibrary.Bookshelves.Get.MyLibraryBookshelvesGet


-- | Retrieves a list of bookshelves belonging to the authenticated user.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.mylibrary.bookshelves.list</tt>.
module Network.Google.Resource.Books.MyLibrary.Bookshelves.List

-- | A resource alias for <tt>books.mylibrary.bookshelves.list</tt> method
--   which the <a>MyLibraryBookshelvesList</a> request conforms to.
type MyLibraryBookshelvesListResource = "books" :> ("v1" :> ("mylibrary" :> ("bookshelves" :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Bookshelves)))))

-- | Creates a value of <a>MyLibraryBookshelvesList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mlblSource</a></li>
--   </ul>
myLibraryBookshelvesList :: MyLibraryBookshelvesList

-- | Retrieves a list of bookshelves belonging to the authenticated user.
--   
--   <i>See:</i> <a>myLibraryBookshelvesList</a> smart constructor.
data MyLibraryBookshelvesList

-- | String to identify the originator of this request.
mlblSource :: Lens' MyLibraryBookshelvesList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.MyLibrary.Bookshelves.List.MyLibraryBookshelvesList
instance Data.Data.Data Network.Google.Resource.Books.MyLibrary.Bookshelves.List.MyLibraryBookshelvesList
instance GHC.Show.Show Network.Google.Resource.Books.MyLibrary.Bookshelves.List.MyLibraryBookshelvesList
instance GHC.Classes.Eq Network.Google.Resource.Books.MyLibrary.Bookshelves.List.MyLibraryBookshelvesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyLibrary.Bookshelves.List.MyLibraryBookshelvesList


-- | Moves a volume within a bookshelf.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.mylibrary.bookshelves.moveVolume</tt>.
module Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume

-- | A resource alias for <tt>books.mylibrary.bookshelves.moveVolume</tt>
--   method which the <a>MyLibraryBookshelvesMoveVolume</a> request
--   conforms to.
type MyLibraryBookshelvesMoveVolumeResource = "books" :> ("v1" :> ("mylibrary" :> ("bookshelves" :> (Capture "shelf" Text :> ("moveVolume" :> (QueryParam "volumeId" Text :> (QueryParam "volumePosition" (Textual Int32) :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] ())))))))))

-- | Creates a value of <a>MyLibraryBookshelvesMoveVolume</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mlbmvShelf</a></li>
--   <li><a>mlbmvVolumeId</a></li>
--   <li><a>mlbmvSource</a></li>
--   <li><a>mlbmvVolumePosition</a></li>
--   </ul>
myLibraryBookshelvesMoveVolume :: Text -> Text -> Int32 -> MyLibraryBookshelvesMoveVolume

-- | Moves a volume within a bookshelf.
--   
--   <i>See:</i> <a>myLibraryBookshelvesMoveVolume</a> smart constructor.
data MyLibraryBookshelvesMoveVolume

-- | ID of bookshelf with the volume.
mlbmvShelf :: Lens' MyLibraryBookshelvesMoveVolume Text

-- | ID of volume to move.
mlbmvVolumeId :: Lens' MyLibraryBookshelvesMoveVolume Text

-- | String to identify the originator of this request.
mlbmvSource :: Lens' MyLibraryBookshelvesMoveVolume (Maybe Text)

-- | Position on shelf to move the item (0 puts the item before the current
--   first item, 1 puts it between the first and the second and so on.)
mlbmvVolumePosition :: Lens' MyLibraryBookshelvesMoveVolume Int32
instance GHC.Generics.Generic Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume.MyLibraryBookshelvesMoveVolume
instance Data.Data.Data Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume.MyLibraryBookshelvesMoveVolume
instance GHC.Show.Show Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume.MyLibraryBookshelvesMoveVolume
instance GHC.Classes.Eq Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume.MyLibraryBookshelvesMoveVolume
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume.MyLibraryBookshelvesMoveVolume


-- | Removes a volume from a bookshelf.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.mylibrary.bookshelves.removeVolume</tt>.
module Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume

-- | A resource alias for <tt>books.mylibrary.bookshelves.removeVolume</tt>
--   method which the <a>MyLibraryBookshelvesRemoveVolume</a> request
--   conforms to.
type MyLibraryBookshelvesRemoveVolumeResource = "books" :> ("v1" :> ("mylibrary" :> ("bookshelves" :> (Capture "shelf" Text :> ("removeVolume" :> (QueryParam "volumeId" Text :> (QueryParam "reason" MyLibraryBookshelvesRemoveVolumeReason :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] ())))))))))

-- | Creates a value of <a>MyLibraryBookshelvesRemoveVolume</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mlbrvReason</a></li>
--   <li><a>mlbrvShelf</a></li>
--   <li><a>mlbrvVolumeId</a></li>
--   <li><a>mlbrvSource</a></li>
--   </ul>
myLibraryBookshelvesRemoveVolume :: Text -> Text -> MyLibraryBookshelvesRemoveVolume

-- | Removes a volume from a bookshelf.
--   
--   <i>See:</i> <a>myLibraryBookshelvesRemoveVolume</a> smart constructor.
data MyLibraryBookshelvesRemoveVolume

-- | The reason for which the book is removed from the library.
mlbrvReason :: Lens' MyLibraryBookshelvesRemoveVolume (Maybe MyLibraryBookshelvesRemoveVolumeReason)

-- | ID of bookshelf from which to remove a volume.
mlbrvShelf :: Lens' MyLibraryBookshelvesRemoveVolume Text

-- | ID of volume to remove.
mlbrvVolumeId :: Lens' MyLibraryBookshelvesRemoveVolume Text

-- | String to identify the originator of this request.
mlbrvSource :: Lens' MyLibraryBookshelvesRemoveVolume (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume.MyLibraryBookshelvesRemoveVolume
instance Data.Data.Data Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume.MyLibraryBookshelvesRemoveVolume
instance GHC.Show.Show Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume.MyLibraryBookshelvesRemoveVolume
instance GHC.Classes.Eq Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume.MyLibraryBookshelvesRemoveVolume
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume.MyLibraryBookshelvesRemoveVolume


-- | Gets volume information for volumes on a bookshelf.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.mylibrary.bookshelves.volumes.list</tt>.
module Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List

-- | A resource alias for <tt>books.mylibrary.bookshelves.volumes.list</tt>
--   method which the <a>MyLibraryBookshelvesVolumesList</a> request
--   conforms to.
type MyLibraryBookshelvesVolumesListResource = "books" :> ("v1" :> ("mylibrary" :> ("bookshelves" :> (Capture "shelf" Text :> ("volumes" :> (QueryParam "country" Text :> (QueryParam "q" Text :> (QueryParam "source" Text :> (QueryParam "projection" MyLibraryBookshelvesVolumesListProjection :> (QueryParam "startIndex" (Textual Word32) :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "showPreorders" Bool :> (QueryParam "alt" AltJSON :> Get '[JSON] Volumes)))))))))))))

-- | Creates a value of <a>MyLibraryBookshelvesVolumesList</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mlbvlCountry</a></li>
--   <li><a>mlbvlQ</a></li>
--   <li><a>mlbvlShelf</a></li>
--   <li><a>mlbvlSource</a></li>
--   <li><a>mlbvlProjection</a></li>
--   <li><a>mlbvlStartIndex</a></li>
--   <li><a>mlbvlMaxResults</a></li>
--   <li><a>mlbvlShowPreOrders</a></li>
--   </ul>
myLibraryBookshelvesVolumesList :: Text -> MyLibraryBookshelvesVolumesList

-- | Gets volume information for volumes on a bookshelf.
--   
--   <i>See:</i> <a>myLibraryBookshelvesVolumesList</a> smart constructor.
data MyLibraryBookshelvesVolumesList

-- | ISO-3166-1 code to override the IP-based location.
mlbvlCountry :: Lens' MyLibraryBookshelvesVolumesList (Maybe Text)

-- | Full-text search query string in this bookshelf.
mlbvlQ :: Lens' MyLibraryBookshelvesVolumesList (Maybe Text)

-- | The bookshelf ID or name retrieve volumes for.
mlbvlShelf :: Lens' MyLibraryBookshelvesVolumesList Text

-- | String to identify the originator of this request.
mlbvlSource :: Lens' MyLibraryBookshelvesVolumesList (Maybe Text)

-- | Restrict information returned to a set of selected fields.
mlbvlProjection :: Lens' MyLibraryBookshelvesVolumesList (Maybe MyLibraryBookshelvesVolumesListProjection)

-- | Index of the first element to return (starts at 0)
mlbvlStartIndex :: Lens' MyLibraryBookshelvesVolumesList (Maybe Word32)

-- | Maximum number of results to return
mlbvlMaxResults :: Lens' MyLibraryBookshelvesVolumesList (Maybe Word32)

-- | Set to true to show pre-ordered books. Defaults to false.
mlbvlShowPreOrders :: Lens' MyLibraryBookshelvesVolumesList (Maybe Bool)
instance GHC.Generics.Generic Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List.MyLibraryBookshelvesVolumesList
instance Data.Data.Data Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List.MyLibraryBookshelvesVolumesList
instance GHC.Show.Show Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List.MyLibraryBookshelvesVolumesList
instance GHC.Classes.Eq Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List.MyLibraryBookshelvesVolumesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List.MyLibraryBookshelvesVolumesList


-- | Retrieves my reading position information for a volume.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.mylibrary.readingpositions.get</tt>.
module Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get

-- | A resource alias for <tt>books.mylibrary.readingpositions.get</tt>
--   method which the <a>MyLibraryReadingPositionsGet</a> request conforms
--   to.
type MyLibraryReadingPositionsGetResource = "books" :> ("v1" :> ("mylibrary" :> ("readingpositions" :> (Capture "volumeId" Text :> (QueryParam "contentVersion" Text :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ReadingPosition)))))))

-- | Creates a value of <a>MyLibraryReadingPositionsGet</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mlrpgContentVersion</a></li>
--   <li><a>mlrpgVolumeId</a></li>
--   <li><a>mlrpgSource</a></li>
--   </ul>
myLibraryReadingPositionsGet :: Text -> MyLibraryReadingPositionsGet

-- | Retrieves my reading position information for a volume.
--   
--   <i>See:</i> <a>myLibraryReadingPositionsGet</a> smart constructor.
data MyLibraryReadingPositionsGet

-- | Volume content version for which this reading position is requested.
mlrpgContentVersion :: Lens' MyLibraryReadingPositionsGet (Maybe Text)

-- | ID of volume for which to retrieve a reading position.
mlrpgVolumeId :: Lens' MyLibraryReadingPositionsGet Text

-- | String to identify the originator of this request.
mlrpgSource :: Lens' MyLibraryReadingPositionsGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get.MyLibraryReadingPositionsGet
instance Data.Data.Data Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get.MyLibraryReadingPositionsGet
instance GHC.Show.Show Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get.MyLibraryReadingPositionsGet
instance GHC.Classes.Eq Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get.MyLibraryReadingPositionsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get.MyLibraryReadingPositionsGet


-- | Sets my reading position information for a volume.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.mylibrary.readingpositions.setPosition</tt>.
module Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition

-- | A resource alias for
--   <tt>books.mylibrary.readingpositions.setPosition</tt> method which the
--   <a>MyLibraryReadingPositionsSetPosition</a> request conforms to.
type MyLibraryReadingPositionsSetPositionResource = "books" :> ("v1" :> ("mylibrary" :> ("readingpositions" :> (Capture "volumeId" Text :> ("setPosition" :> (QueryParam "timestamp" Text :> (QueryParam "position" Text :> (QueryParam "deviceCookie" Text :> (QueryParam "contentVersion" Text :> (QueryParam "action" MyLibraryReadingPositionsSetPositionAction :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] ()))))))))))))

-- | Creates a value of <a>MyLibraryReadingPositionsSetPosition</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mlrpspDeviceCookie</a></li>
--   <li><a>mlrpspContentVersion</a></li>
--   <li><a>mlrpspAction</a></li>
--   <li><a>mlrpspVolumeId</a></li>
--   <li><a>mlrpspSource</a></li>
--   <li><a>mlrpspTimestamp</a></li>
--   <li><a>mlrpspPosition</a></li>
--   </ul>
myLibraryReadingPositionsSetPosition :: Text -> Text -> Text -> MyLibraryReadingPositionsSetPosition

-- | Sets my reading position information for a volume.
--   
--   <i>See:</i> <a>myLibraryReadingPositionsSetPosition</a> smart
--   constructor.
data MyLibraryReadingPositionsSetPosition

-- | Random persistent device cookie optional on set position.
mlrpspDeviceCookie :: Lens' MyLibraryReadingPositionsSetPosition (Maybe Text)

-- | Volume content version for which this reading position applies.
mlrpspContentVersion :: Lens' MyLibraryReadingPositionsSetPosition (Maybe Text)

-- | Action that caused this reading position to be set.
mlrpspAction :: Lens' MyLibraryReadingPositionsSetPosition (Maybe MyLibraryReadingPositionsSetPositionAction)

-- | ID of volume for which to update the reading position.
mlrpspVolumeId :: Lens' MyLibraryReadingPositionsSetPosition Text

-- | String to identify the originator of this request.
mlrpspSource :: Lens' MyLibraryReadingPositionsSetPosition (Maybe Text)

-- | RFC 3339 UTC format timestamp associated with this reading position.
mlrpspTimestamp :: Lens' MyLibraryReadingPositionsSetPosition Text

-- | Position string for the new volume reading position.
mlrpspPosition :: Lens' MyLibraryReadingPositionsSetPosition Text
instance GHC.Generics.Generic Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition.MyLibraryReadingPositionsSetPosition
instance Data.Data.Data Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition.MyLibraryReadingPositionsSetPosition
instance GHC.Show.Show Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition.MyLibraryReadingPositionsSetPosition
instance GHC.Classes.Eq Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition.MyLibraryReadingPositionsSetPosition
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition.MyLibraryReadingPositionsSetPosition


-- | Returns notification details for a given notification id.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.notification.get</tt>.
module Network.Google.Resource.Books.Notification.Get

-- | A resource alias for <tt>books.notification.get</tt> method which the
--   <a>NotificationGet</a> request conforms to.
type NotificationGetResource = "books" :> ("v1" :> ("notification" :> ("get" :> (QueryParam "notification_id" Text :> (QueryParam "locale" Text :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Notification)))))))

-- | Creates a value of <a>NotificationGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ngLocale</a></li>
--   <li><a>ngNotificationId</a></li>
--   <li><a>ngSource</a></li>
--   </ul>
notificationGet :: Text -> NotificationGet

-- | Returns notification details for a given notification id.
--   
--   <i>See:</i> <a>notificationGet</a> smart constructor.
data NotificationGet

-- | ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for
--   generating notification title and body.
ngLocale :: Lens' NotificationGet (Maybe Text)

-- | String to identify the notification.
ngNotificationId :: Lens' NotificationGet Text

-- | String to identify the originator of this request.
ngSource :: Lens' NotificationGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.Notification.Get.NotificationGet
instance Data.Data.Data Network.Google.Resource.Books.Notification.Get.NotificationGet
instance GHC.Show.Show Network.Google.Resource.Books.Notification.Get.NotificationGet
instance GHC.Classes.Eq Network.Google.Resource.Books.Notification.Get.NotificationGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Notification.Get.NotificationGet


-- | List categories for onboarding experience.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.onboarding.listCategories</tt>.
module Network.Google.Resource.Books.Onboarding.ListCategories

-- | A resource alias for <tt>books.onboarding.listCategories</tt> method
--   which the <a>OnboardingListCategories</a> request conforms to.
type OnboardingListCategoriesResource = "books" :> ("v1" :> ("onboarding" :> ("listCategories" :> (QueryParam "locale" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Category)))))

-- | Creates a value of <a>OnboardingListCategories</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>olcLocale</a></li>
--   </ul>
onboardingListCategories :: OnboardingListCategories

-- | List categories for onboarding experience.
--   
--   <i>See:</i> <a>onboardingListCategories</a> smart constructor.
data OnboardingListCategories

-- | ISO-639-1 language and ISO-3166-1 country code. Default is en-US if
--   unset.
olcLocale :: Lens' OnboardingListCategories (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.Onboarding.ListCategories.OnboardingListCategories
instance Data.Data.Data Network.Google.Resource.Books.Onboarding.ListCategories.OnboardingListCategories
instance GHC.Show.Show Network.Google.Resource.Books.Onboarding.ListCategories.OnboardingListCategories
instance GHC.Classes.Eq Network.Google.Resource.Books.Onboarding.ListCategories.OnboardingListCategories
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Onboarding.ListCategories.OnboardingListCategories


-- | List available volumes under categories for onboarding experience.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.onboarding.listCategoryVolumes</tt>.
module Network.Google.Resource.Books.Onboarding.ListCategoryVolumes

-- | A resource alias for <tt>books.onboarding.listCategoryVolumes</tt>
--   method which the <a>OnboardingListCategoryVolumes</a> request conforms
--   to.
type OnboardingListCategoryVolumesResource = "books" :> ("v1" :> ("onboarding" :> ("listCategoryVolumes" :> (QueryParam "locale" Text :> (QueryParam "maxAllowedMaturityRating" OnboardingListCategoryVolumesMaxAllowedMaturityRating :> (QueryParams "categoryId" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] Volume2)))))))))

-- | Creates a value of <a>OnboardingListCategoryVolumes</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>olcvLocale</a></li>
--   <li><a>olcvMaxAllowedMaturityRating</a></li>
--   <li><a>olcvCategoryId</a></li>
--   <li><a>olcvPageToken</a></li>
--   <li><a>olcvPageSize</a></li>
--   </ul>
onboardingListCategoryVolumes :: OnboardingListCategoryVolumes

-- | List available volumes under categories for onboarding experience.
--   
--   <i>See:</i> <a>onboardingListCategoryVolumes</a> smart constructor.
data OnboardingListCategoryVolumes

-- | ISO-639-1 language and ISO-3166-1 country code. Default is en-US if
--   unset.
olcvLocale :: Lens' OnboardingListCategoryVolumes (Maybe Text)

-- | The maximum allowed maturity rating of returned volumes. Books with a
--   higher maturity rating are filtered out.
olcvMaxAllowedMaturityRating :: Lens' OnboardingListCategoryVolumes (Maybe OnboardingListCategoryVolumesMaxAllowedMaturityRating)

-- | List of category ids requested.
olcvCategoryId :: Lens' OnboardingListCategoryVolumes [Text]

-- | The value of the nextToken from the previous page.
olcvPageToken :: Lens' OnboardingListCategoryVolumes (Maybe Text)

-- | Number of maximum results per page to be included in the response.
olcvPageSize :: Lens' OnboardingListCategoryVolumes (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.Books.Onboarding.ListCategoryVolumes.OnboardingListCategoryVolumes
instance Data.Data.Data Network.Google.Resource.Books.Onboarding.ListCategoryVolumes.OnboardingListCategoryVolumes
instance GHC.Show.Show Network.Google.Resource.Books.Onboarding.ListCategoryVolumes.OnboardingListCategoryVolumes
instance GHC.Classes.Eq Network.Google.Resource.Books.Onboarding.ListCategoryVolumes.OnboardingListCategoryVolumes
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Onboarding.ListCategoryVolumes.OnboardingListCategoryVolumes


-- | Returns a stream of personalized book clusters
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.personalizedstream.get</tt>.
module Network.Google.Resource.Books.Personalizedstream.Get

-- | A resource alias for <tt>books.personalizedstream.get</tt> method
--   which the <a>PersonalizedstreamGet</a> request conforms to.
type PersonalizedstreamGetResource = "books" :> ("v1" :> ("personalizedstream" :> ("get" :> (QueryParam "locale" Text :> (QueryParam "maxAllowedMaturityRating" PersonalizedstreamGetMaxAllowedMaturityRating :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Discoveryclusters)))))))

-- | Creates a value of <a>PersonalizedstreamGet</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pgLocale</a></li>
--   <li><a>pgMaxAllowedMaturityRating</a></li>
--   <li><a>pgSource</a></li>
--   </ul>
personalizedstreamGet :: PersonalizedstreamGet

-- | Returns a stream of personalized book clusters
--   
--   <i>See:</i> <a>personalizedstreamGet</a> smart constructor.
data PersonalizedstreamGet

-- | ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for
--   generating recommendations.
pgLocale :: Lens' PersonalizedstreamGet (Maybe Text)

-- | The maximum allowed maturity rating of returned recommendations. Books
--   with a higher maturity rating are filtered out.
pgMaxAllowedMaturityRating :: Lens' PersonalizedstreamGet (Maybe PersonalizedstreamGetMaxAllowedMaturityRating)

-- | String to identify the originator of this request.
pgSource :: Lens' PersonalizedstreamGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.Personalizedstream.Get.PersonalizedstreamGet
instance Data.Data.Data Network.Google.Resource.Books.Personalizedstream.Get.PersonalizedstreamGet
instance GHC.Show.Show Network.Google.Resource.Books.Personalizedstream.Get.PersonalizedstreamGet
instance GHC.Classes.Eq Network.Google.Resource.Books.Personalizedstream.Get.PersonalizedstreamGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Personalizedstream.Get.PersonalizedstreamGet


-- | <ul>
--   <li>- |</li>
--   </ul>
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.promooffer.accept</tt>.
module Network.Google.Resource.Books.PromoOffer.Accept

-- | A resource alias for <tt>books.promooffer.accept</tt> method which the
--   <a>PromoOfferAccept</a> request conforms to.
type PromoOfferAcceptResource = "books" :> ("v1" :> ("promooffer" :> ("accept" :> (QueryParam "manufacturer" Text :> (QueryParam "serial" Text :> (QueryParam "device" Text :> (QueryParam "model" Text :> (QueryParam "volumeId" Text :> (QueryParam "offerId" Text :> (QueryParam "product" Text :> (QueryParam "androidId" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] ()))))))))))))

-- | Creates a value of <a>PromoOfferAccept</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>poaManufacturer</a></li>
--   <li><a>poaSerial</a></li>
--   <li><a>poaDevice</a></li>
--   <li><a>poaModel</a></li>
--   <li><a>poaVolumeId</a></li>
--   <li><a>poaOfferId</a></li>
--   <li><a>poaProduct</a></li>
--   <li><a>poaAndroidId</a></li>
--   </ul>
promoOfferAccept :: PromoOfferAccept

-- | <i>See:</i> <a>promoOfferAccept</a> smart constructor.
data PromoOfferAccept

-- | device manufacturer
poaManufacturer :: Lens' PromoOfferAccept (Maybe Text)

-- | device serial
poaSerial :: Lens' PromoOfferAccept (Maybe Text)

-- | device device
poaDevice :: Lens' PromoOfferAccept (Maybe Text)

-- | device model
poaModel :: Lens' PromoOfferAccept (Maybe Text)

-- | Volume id to exercise the offer
poaVolumeId :: Lens' PromoOfferAccept (Maybe Text)
poaOfferId :: Lens' PromoOfferAccept (Maybe Text)

-- | device product
poaProduct :: Lens' PromoOfferAccept (Maybe Text)

-- | device android_id
poaAndroidId :: Lens' PromoOfferAccept (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.PromoOffer.Accept.PromoOfferAccept
instance Data.Data.Data Network.Google.Resource.Books.PromoOffer.Accept.PromoOfferAccept
instance GHC.Show.Show Network.Google.Resource.Books.PromoOffer.Accept.PromoOfferAccept
instance GHC.Classes.Eq Network.Google.Resource.Books.PromoOffer.Accept.PromoOfferAccept
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.PromoOffer.Accept.PromoOfferAccept


-- | <ul>
--   <li>- |</li>
--   </ul>
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.promooffer.dismiss</tt>.
module Network.Google.Resource.Books.PromoOffer.Dismiss

-- | A resource alias for <tt>books.promooffer.dismiss</tt> method which
--   the <a>PromoOfferDismiss</a> request conforms to.
type PromoOfferDismissResource = "books" :> ("v1" :> ("promooffer" :> ("dismiss" :> (QueryParam "manufacturer" Text :> (QueryParam "serial" Text :> (QueryParam "device" Text :> (QueryParam "model" Text :> (QueryParam "offerId" Text :> (QueryParam "product" Text :> (QueryParam "androidId" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] ())))))))))))

-- | Creates a value of <a>PromoOfferDismiss</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>podManufacturer</a></li>
--   <li><a>podSerial</a></li>
--   <li><a>podDevice</a></li>
--   <li><a>podModel</a></li>
--   <li><a>podOfferId</a></li>
--   <li><a>podProduct</a></li>
--   <li><a>podAndroidId</a></li>
--   </ul>
promoOfferDismiss :: PromoOfferDismiss

-- | <i>See:</i> <a>promoOfferDismiss</a> smart constructor.
data PromoOfferDismiss

-- | device manufacturer
podManufacturer :: Lens' PromoOfferDismiss (Maybe Text)

-- | device serial
podSerial :: Lens' PromoOfferDismiss (Maybe Text)

-- | device device
podDevice :: Lens' PromoOfferDismiss (Maybe Text)

-- | device model
podModel :: Lens' PromoOfferDismiss (Maybe Text)

-- | Offer to dimiss
podOfferId :: Lens' PromoOfferDismiss (Maybe Text)

-- | device product
podProduct :: Lens' PromoOfferDismiss (Maybe Text)

-- | device android_id
podAndroidId :: Lens' PromoOfferDismiss (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.PromoOffer.Dismiss.PromoOfferDismiss
instance Data.Data.Data Network.Google.Resource.Books.PromoOffer.Dismiss.PromoOfferDismiss
instance GHC.Show.Show Network.Google.Resource.Books.PromoOffer.Dismiss.PromoOfferDismiss
instance GHC.Classes.Eq Network.Google.Resource.Books.PromoOffer.Dismiss.PromoOfferDismiss
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.PromoOffer.Dismiss.PromoOfferDismiss


-- | Returns a list of promo offers available to the user
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.promooffer.get</tt>.
module Network.Google.Resource.Books.PromoOffer.Get

-- | A resource alias for <tt>books.promooffer.get</tt> method which the
--   <a>PromoOfferGet</a> request conforms to.
type PromoOfferGetResource = "books" :> ("v1" :> ("promooffer" :> ("get" :> (QueryParam "manufacturer" Text :> (QueryParam "serial" Text :> (QueryParam "device" Text :> (QueryParam "model" Text :> (QueryParam "product" Text :> (QueryParam "androidId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Offers))))))))))

-- | Creates a value of <a>PromoOfferGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pogManufacturer</a></li>
--   <li><a>pogSerial</a></li>
--   <li><a>pogDevice</a></li>
--   <li><a>pogModel</a></li>
--   <li><a>pogProduct</a></li>
--   <li><a>pogAndroidId</a></li>
--   </ul>
promoOfferGet :: PromoOfferGet

-- | Returns a list of promo offers available to the user
--   
--   <i>See:</i> <a>promoOfferGet</a> smart constructor.
data PromoOfferGet

-- | device manufacturer
pogManufacturer :: Lens' PromoOfferGet (Maybe Text)

-- | device serial
pogSerial :: Lens' PromoOfferGet (Maybe Text)

-- | device device
pogDevice :: Lens' PromoOfferGet (Maybe Text)

-- | device model
pogModel :: Lens' PromoOfferGet (Maybe Text)

-- | device product
pogProduct :: Lens' PromoOfferGet (Maybe Text)

-- | device android_id
pogAndroidId :: Lens' PromoOfferGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.PromoOffer.Get.PromoOfferGet
instance Data.Data.Data Network.Google.Resource.Books.PromoOffer.Get.PromoOfferGet
instance GHC.Show.Show Network.Google.Resource.Books.PromoOffer.Get.PromoOfferGet
instance GHC.Classes.Eq Network.Google.Resource.Books.PromoOffer.Get.PromoOfferGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.PromoOffer.Get.PromoOfferGet


-- | Returns Series metadata for the given series ids.
--   
--   <i>See:</i> <a>Books API Reference</a> for <tt>books.series.get</tt>.
module Network.Google.Resource.Books.Series.Get

-- | A resource alias for <tt>books.series.get</tt> method which the
--   <a>SeriesGet</a> request conforms to.
type SeriesGetResource = "books" :> ("v1" :> ("series" :> ("get" :> (QueryParams "series_id" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Series)))))

-- | Creates a value of <a>SeriesGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sgSeriesId</a></li>
--   </ul>
seriesGet :: [Text] -> SeriesGet

-- | Returns Series metadata for the given series ids.
--   
--   <i>See:</i> <a>seriesGet</a> smart constructor.
data SeriesGet

-- | String that identifies the series
sgSeriesId :: Lens' SeriesGet [Text]
instance GHC.Generics.Generic Network.Google.Resource.Books.Series.Get.SeriesGet
instance Data.Data.Data Network.Google.Resource.Books.Series.Get.SeriesGet
instance GHC.Show.Show Network.Google.Resource.Books.Series.Get.SeriesGet
instance GHC.Classes.Eq Network.Google.Resource.Books.Series.Get.SeriesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Series.Get.SeriesGet


-- | Returns Series membership data given the series id.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.series.membership.get</tt>.
module Network.Google.Resource.Books.Series.Membership.Get

-- | A resource alias for <tt>books.series.membership.get</tt> method which
--   the <a>SeriesMembershipGet</a> request conforms to.
type SeriesMembershipGetResource = "books" :> ("v1" :> ("series" :> ("membership" :> ("get" :> (QueryParam "series_id" Text :> (QueryParam "page_token" Text :> (QueryParam "page_size" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] Seriesmembership))))))))

-- | Creates a value of <a>SeriesMembershipGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>smgPageToken</a></li>
--   <li><a>smgPageSize</a></li>
--   <li><a>smgSeriesId</a></li>
--   </ul>
seriesMembershipGet :: Text -> SeriesMembershipGet

-- | Returns Series membership data given the series id.
--   
--   <i>See:</i> <a>seriesMembershipGet</a> smart constructor.
data SeriesMembershipGet

-- | The value of the nextToken from the previous page.
smgPageToken :: Lens' SeriesMembershipGet (Maybe Text)

-- | Number of maximum results per page to be included in the response.
smgPageSize :: Lens' SeriesMembershipGet (Maybe Word32)

-- | String that identifies the series
smgSeriesId :: Lens' SeriesMembershipGet Text
instance GHC.Generics.Generic Network.Google.Resource.Books.Series.Membership.Get.SeriesMembershipGet
instance Data.Data.Data Network.Google.Resource.Books.Series.Membership.Get.SeriesMembershipGet
instance GHC.Show.Show Network.Google.Resource.Books.Series.Membership.Get.SeriesMembershipGet
instance GHC.Classes.Eq Network.Google.Resource.Books.Series.Membership.Get.SeriesMembershipGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Series.Membership.Get.SeriesMembershipGet


-- | Return a list of associated books.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.volumes.associated.list</tt>.
module Network.Google.Resource.Books.Volumes.Associated.List

-- | A resource alias for <tt>books.volumes.associated.list</tt> method
--   which the <a>VolumesAssociatedList</a> request conforms to.
type VolumesAssociatedListResource = "books" :> ("v1" :> ("volumes" :> (Capture "volumeId" Text :> ("associated" :> (QueryParam "locale" Text :> (QueryParam "maxAllowedMaturityRating" VolumesAssociatedListMaxAllowedMaturityRating :> (QueryParam "source" Text :> (QueryParam "association" VolumesAssociatedListAssociation :> (QueryParam "alt" AltJSON :> Get '[JSON] Volumes)))))))))

-- | Creates a value of <a>VolumesAssociatedList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>valLocale</a></li>
--   <li><a>valMaxAllowedMaturityRating</a></li>
--   <li><a>valVolumeId</a></li>
--   <li><a>valSource</a></li>
--   <li><a>valAssociation</a></li>
--   </ul>
volumesAssociatedList :: Text -> VolumesAssociatedList

-- | Return a list of associated books.
--   
--   <i>See:</i> <a>volumesAssociatedList</a> smart constructor.
data VolumesAssociatedList

-- | ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for
--   generating recommendations.
valLocale :: Lens' VolumesAssociatedList (Maybe Text)

-- | The maximum allowed maturity rating of returned recommendations. Books
--   with a higher maturity rating are filtered out.
valMaxAllowedMaturityRating :: Lens' VolumesAssociatedList (Maybe VolumesAssociatedListMaxAllowedMaturityRating)

-- | ID of the source volume.
valVolumeId :: Lens' VolumesAssociatedList Text

-- | String to identify the originator of this request.
valSource :: Lens' VolumesAssociatedList (Maybe Text)

-- | Association type.
valAssociation :: Lens' VolumesAssociatedList (Maybe VolumesAssociatedListAssociation)
instance GHC.Generics.Generic Network.Google.Resource.Books.Volumes.Associated.List.VolumesAssociatedList
instance Data.Data.Data Network.Google.Resource.Books.Volumes.Associated.List.VolumesAssociatedList
instance GHC.Show.Show Network.Google.Resource.Books.Volumes.Associated.List.VolumesAssociatedList
instance GHC.Classes.Eq Network.Google.Resource.Books.Volumes.Associated.List.VolumesAssociatedList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Volumes.Associated.List.VolumesAssociatedList


-- | Gets volume information for a single volume.
--   
--   <i>See:</i> <a>Books API Reference</a> for <tt>books.volumes.get</tt>.
module Network.Google.Resource.Books.Volumes.Get

-- | A resource alias for <tt>books.volumes.get</tt> method which the
--   <a>VolumesGet</a> request conforms to.
type VolumesGetResource = "books" :> ("v1" :> ("volumes" :> (Capture "volumeId" Text :> (QueryParam "country" Text :> (QueryParam "includeNonComicsSeries" Bool :> (QueryParam "partner" Text :> (QueryParam "source" Text :> (QueryParam "projection" VolumesGetProjection :> (QueryParam "user_library_consistent_read" Bool :> (QueryParam "alt" AltJSON :> Get '[JSON] Volume))))))))))

-- | Creates a value of <a>VolumesGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vgCountry</a></li>
--   <li><a>vgIncludeNonComicsSeries</a></li>
--   <li><a>vgPartner</a></li>
--   <li><a>vgVolumeId</a></li>
--   <li><a>vgSource</a></li>
--   <li><a>vgProjection</a></li>
--   <li><a>vgUserLibraryConsistentRead</a></li>
--   </ul>
volumesGet :: Text -> VolumesGet

-- | Gets volume information for a single volume.
--   
--   <i>See:</i> <a>volumesGet</a> smart constructor.
data VolumesGet

-- | ISO-3166-1 code to override the IP-based location.
vgCountry :: Lens' VolumesGet (Maybe Text)

-- | Set to true to include non-comics series. Defaults to false.
vgIncludeNonComicsSeries :: Lens' VolumesGet (Maybe Bool)

-- | Brand results for partner ID.
vgPartner :: Lens' VolumesGet (Maybe Text)

-- | ID of volume to retrieve.
vgVolumeId :: Lens' VolumesGet Text

-- | String to identify the originator of this request.
vgSource :: Lens' VolumesGet (Maybe Text)

-- | Restrict information returned to a set of selected fields.
vgProjection :: Lens' VolumesGet (Maybe VolumesGetProjection)
vgUserLibraryConsistentRead :: Lens' VolumesGet (Maybe Bool)
instance GHC.Generics.Generic Network.Google.Resource.Books.Volumes.Get.VolumesGet
instance Data.Data.Data Network.Google.Resource.Books.Volumes.Get.VolumesGet
instance GHC.Show.Show Network.Google.Resource.Books.Volumes.Get.VolumesGet
instance GHC.Classes.Eq Network.Google.Resource.Books.Volumes.Get.VolumesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Volumes.Get.VolumesGet


-- | Performs a book search.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.volumes.list</tt>.
module Network.Google.Resource.Books.Volumes.List

-- | A resource alias for <tt>books.volumes.list</tt> method which the
--   <a>VolumesList</a> request conforms to.
type VolumesListResource = "books" :> ("v1" :> ("volumes" :> (QueryParam "q" Text :> (QueryParam "orderBy" VolumesListOrderBy :> (QueryParam "maxAllowedMaturityRating" VolumesListMaxAllowedMaturityRating :> (QueryParam "libraryRestrict" VolumesListLibraryRestrict :> (QueryParam "partner" Text :> (QueryParam "download" VolumesListDownload :> (QueryParam "source" Text :> (QueryParam "projection" VolumesListProjection :> (QueryParam "filter" VolumesListFilter :> (QueryParam "langRestrict" Text :> (QueryParam "startIndex" (Textual Word32) :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "showPreorders" Bool :> (QueryParam "printType" VolumesListPrintType :> (QueryParam "alt" AltJSON :> Get '[JSON] Volumes)))))))))))))))))

-- | Creates a value of <a>VolumesList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vlOrderBy</a></li>
--   <li><a>vlMaxAllowedMaturityRating</a></li>
--   <li><a>vlLibraryRestrict</a></li>
--   <li><a>vlPartner</a></li>
--   <li><a>vlQ</a></li>
--   <li><a>vlDownload</a></li>
--   <li><a>vlSource</a></li>
--   <li><a>vlProjection</a></li>
--   <li><a>vlFilter</a></li>
--   <li><a>vlLangRestrict</a></li>
--   <li><a>vlStartIndex</a></li>
--   <li><a>vlMaxResults</a></li>
--   <li><a>vlShowPreOrders</a></li>
--   <li><a>vlPrintType</a></li>
--   </ul>
volumesList :: Text -> VolumesList

-- | Performs a book search.
--   
--   <i>See:</i> <a>volumesList</a> smart constructor.
data VolumesList

-- | Sort search results.
vlOrderBy :: Lens' VolumesList (Maybe VolumesListOrderBy)

-- | The maximum allowed maturity rating of returned recommendations. Books
--   with a higher maturity rating are filtered out.
vlMaxAllowedMaturityRating :: Lens' VolumesList (Maybe VolumesListMaxAllowedMaturityRating)

-- | Restrict search to this user's library.
vlLibraryRestrict :: Lens' VolumesList (Maybe VolumesListLibraryRestrict)

-- | Restrict and brand results for partner ID.
vlPartner :: Lens' VolumesList (Maybe Text)

-- | Full-text search query string.
vlQ :: Lens' VolumesList Text

-- | Restrict to volumes by download availability.
vlDownload :: Lens' VolumesList (Maybe VolumesListDownload)

-- | String to identify the originator of this request.
vlSource :: Lens' VolumesList (Maybe Text)

-- | Restrict information returned to a set of selected fields.
vlProjection :: Lens' VolumesList (Maybe VolumesListProjection)

-- | Filter search results.
vlFilter :: Lens' VolumesList (Maybe VolumesListFilter)

-- | Restrict results to books with this language code.
vlLangRestrict :: Lens' VolumesList (Maybe Text)

-- | Index of the first result to return (starts at 0)
vlStartIndex :: Lens' VolumesList (Maybe Word32)

-- | Maximum number of results to return.
vlMaxResults :: Lens' VolumesList (Maybe Word32)

-- | Set to true to show books available for preorder. Defaults to false.
vlShowPreOrders :: Lens' VolumesList (Maybe Bool)

-- | Restrict to books or magazines.
vlPrintType :: Lens' VolumesList (Maybe VolumesListPrintType)
instance GHC.Generics.Generic Network.Google.Resource.Books.Volumes.List.VolumesList
instance Data.Data.Data Network.Google.Resource.Books.Volumes.List.VolumesList
instance GHC.Show.Show Network.Google.Resource.Books.Volumes.List.VolumesList
instance GHC.Classes.Eq Network.Google.Resource.Books.Volumes.List.VolumesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Volumes.List.VolumesList


-- | Return a list of books in My Library.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.volumes.mybooks.list</tt>.
module Network.Google.Resource.Books.Volumes.Mybooks.List

-- | A resource alias for <tt>books.volumes.mybooks.list</tt> method which
--   the <a>VolumesMybooksList</a> request conforms to.
type VolumesMybooksListResource = "books" :> ("v1" :> ("volumes" :> ("mybooks" :> (QueryParams "processingState" VolumesMybooksListProcessingState :> (QueryParams "acquireMethod" VolumesMybooksListAcquireMethod :> (QueryParam "country" Text :> (QueryParam "locale" Text :> (QueryParam "source" Text :> (QueryParam "startIndex" (Textual Word32) :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] Volumes)))))))))))

-- | Creates a value of <a>VolumesMybooksList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vmlProcessingState</a></li>
--   <li><a>vmlAcquireMethod</a></li>
--   <li><a>vmlCountry</a></li>
--   <li><a>vmlLocale</a></li>
--   <li><a>vmlSource</a></li>
--   <li><a>vmlStartIndex</a></li>
--   <li><a>vmlMaxResults</a></li>
--   </ul>
volumesMybooksList :: VolumesMybooksList

-- | Return a list of books in My Library.
--   
--   <i>See:</i> <a>volumesMybooksList</a> smart constructor.
data VolumesMybooksList

-- | The processing state of the user uploaded volumes to be returned.
--   Applicable only if the UPLOADED is specified in the acquireMethod.
vmlProcessingState :: Lens' VolumesMybooksList [VolumesMybooksListProcessingState]

-- | How the book was acquired
vmlAcquireMethod :: Lens' VolumesMybooksList [VolumesMybooksListAcquireMethod]

-- | ISO-3166-1 code to override the IP-based location.
vmlCountry :: Lens' VolumesMybooksList (Maybe Text)

-- | ISO-639-1 language and ISO-3166-1 country code. Ex:'en_US'. Used for
--   generating recommendations.
vmlLocale :: Lens' VolumesMybooksList (Maybe Text)

-- | String to identify the originator of this request.
vmlSource :: Lens' VolumesMybooksList (Maybe Text)

-- | Index of the first result to return (starts at 0)
vmlStartIndex :: Lens' VolumesMybooksList (Maybe Word32)

-- | Maximum number of results to return.
vmlMaxResults :: Lens' VolumesMybooksList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.Books.Volumes.Mybooks.List.VolumesMybooksList
instance Data.Data.Data Network.Google.Resource.Books.Volumes.Mybooks.List.VolumesMybooksList
instance GHC.Show.Show Network.Google.Resource.Books.Volumes.Mybooks.List.VolumesMybooksList
instance GHC.Classes.Eq Network.Google.Resource.Books.Volumes.Mybooks.List.VolumesMybooksList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Volumes.Mybooks.List.VolumesMybooksList


-- | Return a list of recommended books for the current user.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.volumes.recommended.list</tt>.
module Network.Google.Resource.Books.Volumes.Recommended.List

-- | A resource alias for <tt>books.volumes.recommended.list</tt> method
--   which the <a>VolumesRecommendedList</a> request conforms to.
type VolumesRecommendedListResource = "books" :> ("v1" :> ("volumes" :> ("recommended" :> (QueryParam "locale" Text :> (QueryParam "maxAllowedMaturityRating" VolumesRecommendedListMaxAllowedMaturityRating :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Volumes)))))))

-- | Creates a value of <a>VolumesRecommendedList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vrlLocale</a></li>
--   <li><a>vrlMaxAllowedMaturityRating</a></li>
--   <li><a>vrlSource</a></li>
--   </ul>
volumesRecommendedList :: VolumesRecommendedList

-- | Return a list of recommended books for the current user.
--   
--   <i>See:</i> <a>volumesRecommendedList</a> smart constructor.
data VolumesRecommendedList

-- | ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for
--   generating recommendations.
vrlLocale :: Lens' VolumesRecommendedList (Maybe Text)

-- | The maximum allowed maturity rating of returned recommendations. Books
--   with a higher maturity rating are filtered out.
vrlMaxAllowedMaturityRating :: Lens' VolumesRecommendedList (Maybe VolumesRecommendedListMaxAllowedMaturityRating)

-- | String to identify the originator of this request.
vrlSource :: Lens' VolumesRecommendedList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.Volumes.Recommended.List.VolumesRecommendedList
instance Data.Data.Data Network.Google.Resource.Books.Volumes.Recommended.List.VolumesRecommendedList
instance GHC.Show.Show Network.Google.Resource.Books.Volumes.Recommended.List.VolumesRecommendedList
instance GHC.Classes.Eq Network.Google.Resource.Books.Volumes.Recommended.List.VolumesRecommendedList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Volumes.Recommended.List.VolumesRecommendedList


-- | Rate a recommended book for the current user.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.volumes.recommended.rate</tt>.
module Network.Google.Resource.Books.Volumes.Recommended.Rate

-- | A resource alias for <tt>books.volumes.recommended.rate</tt> method
--   which the <a>VolumesRecommendedRate</a> request conforms to.
type VolumesRecommendedRateResource = "books" :> ("v1" :> ("volumes" :> ("recommended" :> ("rate" :> (QueryParam "rating" VolumesRecommendedRateRating :> (QueryParam "volumeId" Text :> (QueryParam "locale" Text :> (QueryParam "source" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] BooksVolumesRecommendedRateResponse)))))))))

-- | Creates a value of <a>VolumesRecommendedRate</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vrrRating</a></li>
--   <li><a>vrrLocale</a></li>
--   <li><a>vrrVolumeId</a></li>
--   <li><a>vrrSource</a></li>
--   </ul>
volumesRecommendedRate :: VolumesRecommendedRateRating -> Text -> VolumesRecommendedRate

-- | Rate a recommended book for the current user.
--   
--   <i>See:</i> <a>volumesRecommendedRate</a> smart constructor.
data VolumesRecommendedRate

-- | Rating to be given to the volume.
vrrRating :: Lens' VolumesRecommendedRate VolumesRecommendedRateRating

-- | ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for
--   generating recommendations.
vrrLocale :: Lens' VolumesRecommendedRate (Maybe Text)

-- | ID of the source volume.
vrrVolumeId :: Lens' VolumesRecommendedRate Text

-- | String to identify the originator of this request.
vrrSource :: Lens' VolumesRecommendedRate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Books.Volumes.Recommended.Rate.VolumesRecommendedRate
instance Data.Data.Data Network.Google.Resource.Books.Volumes.Recommended.Rate.VolumesRecommendedRate
instance GHC.Show.Show Network.Google.Resource.Books.Volumes.Recommended.Rate.VolumesRecommendedRate
instance GHC.Classes.Eq Network.Google.Resource.Books.Volumes.Recommended.Rate.VolumesRecommendedRate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Volumes.Recommended.Rate.VolumesRecommendedRate


-- | Return a list of books uploaded by the current user.
--   
--   <i>See:</i> <a>Books API Reference</a> for
--   <tt>books.volumes.useruploaded.list</tt>.
module Network.Google.Resource.Books.Volumes.UserUploaded.List

-- | A resource alias for <tt>books.volumes.useruploaded.list</tt> method
--   which the <a>VolumesUserUploadedList</a> request conforms to.
type VolumesUserUploadedListResource = "books" :> ("v1" :> ("volumes" :> ("useruploaded" :> (QueryParams "processingState" VolumesUserUploadedListProcessingState :> (QueryParam "locale" Text :> (QueryParams "volumeId" Text :> (QueryParam "source" Text :> (QueryParam "startIndex" (Textual Word32) :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] Volumes))))))))))

-- | Creates a value of <a>VolumesUserUploadedList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vuulProcessingState</a></li>
--   <li><a>vuulLocale</a></li>
--   <li><a>vuulVolumeId</a></li>
--   <li><a>vuulSource</a></li>
--   <li><a>vuulStartIndex</a></li>
--   <li><a>vuulMaxResults</a></li>
--   </ul>
volumesUserUploadedList :: VolumesUserUploadedList

-- | Return a list of books uploaded by the current user.
--   
--   <i>See:</i> <a>volumesUserUploadedList</a> smart constructor.
data VolumesUserUploadedList

-- | The processing state of the user uploaded volumes to be returned.
vuulProcessingState :: Lens' VolumesUserUploadedList [VolumesUserUploadedListProcessingState]

-- | ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for
--   generating recommendations.
vuulLocale :: Lens' VolumesUserUploadedList (Maybe Text)

-- | The ids of the volumes to be returned. If not specified all that match
--   the processingState are returned.
vuulVolumeId :: Lens' VolumesUserUploadedList [Text]

-- | String to identify the originator of this request.
vuulSource :: Lens' VolumesUserUploadedList (Maybe Text)

-- | Index of the first result to return (starts at 0)
vuulStartIndex :: Lens' VolumesUserUploadedList (Maybe Word32)

-- | Maximum number of results to return.
vuulMaxResults :: Lens' VolumesUserUploadedList (Maybe Word32)
instance GHC.Generics.Generic Network.Google.Resource.Books.Volumes.UserUploaded.List.VolumesUserUploadedList
instance Data.Data.Data Network.Google.Resource.Books.Volumes.UserUploaded.List.VolumesUserUploadedList
instance GHC.Show.Show Network.Google.Resource.Books.Volumes.UserUploaded.List.VolumesUserUploadedList
instance GHC.Classes.Eq Network.Google.Resource.Books.Volumes.UserUploaded.List.VolumesUserUploadedList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Volumes.UserUploaded.List.VolumesUserUploadedList


-- | Searches for books and manages your Google Books library.
--   
--   <i>See:</i> <a>Books API Reference</a>
module Network.Google.Books

-- | Default request referring to version <tt>v1</tt> of the Books API.
--   This contains the host and root path used as a starting point for
--   constructing service requests.
booksService :: ServiceConfig

-- | Manage your books
booksScope :: Proxy '["https://www.googleapis.com/auth/books"]

-- | Represents the entirety of the methods and resources available for the
--   Books API service.
type BooksAPI = NotificationGetResource :<|> (SeriesMembershipGetResource :<|> (SeriesGetResource :<|> (OnboardingListCategoriesResource :<|> (OnboardingListCategoryVolumesResource :<|> (MyLibraryAnnotationsSummaryResource :<|> (MyLibraryAnnotationsInsertResource :<|> (MyLibraryAnnotationsListResource :<|> (MyLibraryAnnotationsDeleteResource :<|> (MyLibraryAnnotationsUpdateResource :<|> (MyLibraryReadingPositionsGetResource :<|> (MyLibraryReadingPositionsSetPositionResource :<|> (MyLibraryBookshelvesVolumesListResource :<|> (MyLibraryBookshelvesClearVolumesResource :<|> (MyLibraryBookshelvesListResource :<|> (MyLibraryBookshelvesGetResource :<|> (MyLibraryBookshelvesRemoveVolumeResource :<|> (MyLibraryBookshelvesAddVolumeResource :<|> (MyLibraryBookshelvesMoveVolumeResource :<|> (PromoOfferAcceptResource :<|> (PromoOfferGetResource :<|> (PromoOfferDismissResource :<|> (CloudLoadingAddBookResource :<|> (CloudLoadingUpdateBookResource :<|> (CloudLoadingDeleteBookResource :<|> (LayersVolumeAnnotationsListResource :<|> (LayersVolumeAnnotationsGetResource :<|> (LayersAnnotationDataListResource :<|> (LayersAnnotationDataGetResource :<|> (LayersListResource :<|> (LayersGetResource :<|> (DictionaryListOfflineMetadataResource :<|> (VolumesUserUploadedListResource :<|> (VolumesRecommendedListResource :<|> (VolumesRecommendedRateResource :<|> (VolumesAssociatedListResource :<|> (VolumesMybooksListResource :<|> (VolumesListResource :<|> (VolumesGetResource :<|> (BookshelvesVolumesListResource :<|> (BookshelvesListResource :<|> (BookshelvesGetResource :<|> (PersonalizedstreamGetResource :<|> (MyConfigSyncVolumeLicensesResource :<|> (MyConfigGetUserSettingsResource :<|> (MyConfigRequestAccessResource :<|> (MyConfigUpdateUserSettingsResource :<|> MyConfigReleaseDownloadAccessResource))))))))))))))))))))))))))))))))))))))))))))))
data UserSettings

-- | Creates a value of <a>UserSettings</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usNotification</a></li>
--   <li><a>usKind</a></li>
--   <li><a>usNotesExport</a></li>
--   </ul>
userSettings :: UserSettings
usNotification :: Lens' UserSettings (Maybe UserSettingsNotification)

-- | Resource type.
usKind :: Lens' UserSettings Text

-- | User settings in sub-objects, each for different purposes.
usNotesExport :: Lens' UserSettings (Maybe UserSettingsNotesExport)
data Annotations

-- | Creates a value of <a>Annotations</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aTotalItems</a></li>
--   <li><a>aNextPageToken</a></li>
--   <li><a>aKind</a></li>
--   <li><a>aItems</a></li>
--   </ul>
annotations :: Annotations

-- | Total number of annotations found. This may be greater than the number
--   of notes returned in this response if results have been paginated.
aTotalItems :: Lens' Annotations (Maybe Int32)

-- | Token to pass in for pagination for the next page. This will not be
--   present if this request does not have more results.
aNextPageToken :: Lens' Annotations (Maybe Text)

-- | Resource type.
aKind :: Lens' Annotations Text

-- | A list of annotations.
aItems :: Lens' Annotations [Annotation]

-- | Restrict information returned to a set of selected fields.
data VolumesListProjection

-- | <tt>full</tt> Includes all volume data.
Full :: VolumesListProjection

-- | <tt>lite</tt> Includes a subset of fields in volumeInfo and
--   accessInfo.
Lite :: VolumesListProjection

-- | Restrict information returned to a set of selected fields.
data MyLibraryBookshelvesVolumesListProjection

-- | <tt>full</tt> Includes all volume data.
MLBVLPFull :: MyLibraryBookshelvesVolumesListProjection

-- | <tt>lite</tt> Includes a subset of fields in volumeInfo and
--   accessInfo.
MLBVLPLite :: MyLibraryBookshelvesVolumesListProjection

-- | Sort search results.
data VolumesListOrderBy

-- | <tt>newest</tt> Most recently published.
Newest :: VolumesListOrderBy

-- | <tt>relevance</tt> Relevance to search terms.
Relevance :: VolumesListOrderBy
data AnnotationsData

-- | Creates a value of <a>AnnotationsData</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>adTotalItems</a></li>
--   <li><a>adNextPageToken</a></li>
--   <li><a>adKind</a></li>
--   <li><a>adItems</a></li>
--   </ul>
annotationsData :: AnnotationsData

-- | The total number of volume annotations found.
adTotalItems :: Lens' AnnotationsData (Maybe Int32)

-- | Token to pass in for pagination for the next page. This will not be
--   present if this request does not have more results.
adNextPageToken :: Lens' AnnotationsData (Maybe Text)

-- | Resource type
adKind :: Lens' AnnotationsData Text

-- | A list of Annotation Data.
adItems :: Lens' AnnotationsData [AnnotationData]
data UserSettingsNotificationMoreFromAuthors

-- | Creates a value of <a>UserSettingsNotificationMoreFromAuthors</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usnmfaOptedState</a></li>
--   </ul>
userSettingsNotificationMoreFromAuthors :: UserSettingsNotificationMoreFromAuthors
usnmfaOptedState :: Lens' UserSettingsNotificationMoreFromAuthors (Maybe Text)
data Volumeannotations

-- | Creates a value of <a>Volumeannotations</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vTotalItems</a></li>
--   <li><a>vNextPageToken</a></li>
--   <li><a>vKind</a></li>
--   <li><a>vItems</a></li>
--   <li><a>vVersion</a></li>
--   </ul>
volumeannotations :: Volumeannotations

-- | The total number of volume annotations found.
vTotalItems :: Lens' Volumeannotations (Maybe Int32)

-- | Token to pass in for pagination for the next page. This will not be
--   present if this request does not have more results.
vNextPageToken :: Lens' Volumeannotations (Maybe Text)

-- | Resource type
vKind :: Lens' Volumeannotations Text

-- | A list of volume annotations.
vItems :: Lens' Volumeannotations [Volumeannotation]

-- | The version string for all of the volume annotations in this layer
--   (not just the ones in this response). Note: the version string doesn't
--   apply to the annotation data, just the information in this response
--   (e.g. the location of annotations in the book).
vVersion :: Lens' Volumeannotations (Maybe Text)

-- | Information regarding the source of this review, when the review is
--   not from a Google Books user.
--   
--   <i>See:</i> <a>reviewSource</a> smart constructor.
data ReviewSource

-- | Creates a value of <a>ReviewSource</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rsExtraDescription</a></li>
--   <li><a>rsURL</a></li>
--   <li><a>rsDescription</a></li>
--   </ul>
reviewSource :: ReviewSource

-- | Extra text about the source of the review.
rsExtraDescription :: Lens' ReviewSource (Maybe Text)

-- | URL of the source of the review.
rsURL :: Lens' ReviewSource (Maybe Text)

-- | Name of the source.
rsDescription :: Lens' ReviewSource (Maybe Text)
data AnnotationData

-- | Creates a value of <a>AnnotationData</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>annEncodedData</a></li>
--   <li><a>annKind</a></li>
--   <li><a>annData</a></li>
--   <li><a>annSelfLink</a></li>
--   <li><a>annAnnotationType</a></li>
--   <li><a>annVolumeId</a></li>
--   <li><a>annId</a></li>
--   <li><a>annUpdated</a></li>
--   <li><a>annLayerId</a></li>
--   </ul>
annotationData :: AnnotationData

-- | Base64 encoded data for this annotation data.
annEncodedData :: Lens' AnnotationData (Maybe ByteString)

-- | Resource Type
annKind :: Lens' AnnotationData Text
annData :: Lens' AnnotationData (Maybe JSONValue)

-- | URL for this resource. *
annSelfLink :: Lens' AnnotationData (Maybe Text)

-- | The type of annotation this data is for.
annAnnotationType :: Lens' AnnotationData (Maybe Text)

-- | The volume id for this data. *
annVolumeId :: Lens' AnnotationData (Maybe Text)

-- | Unique id for this annotation data.
annId :: Lens' AnnotationData (Maybe Text)

-- | Timestamp for the last time this data was updated. (RFC 3339 UTC
--   date-time format).
annUpdated :: Lens' AnnotationData (Maybe UTCTime)

-- | The Layer id for this data. *
annLayerId :: Lens' AnnotationData (Maybe Text)
data Volumeannotation

-- | Creates a value of <a>Volumeannotation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>volSelectedText</a></li>
--   <li><a>volAnnotationDataLink</a></li>
--   <li><a>volPageIds</a></li>
--   <li><a>volKind</a></li>
--   <li><a>volData</a></li>
--   <li><a>volSelfLink</a></li>
--   <li><a>volAnnotationType</a></li>
--   <li><a>volAnnotationDataId</a></li>
--   <li><a>volContentRanges</a></li>
--   <li><a>volVolumeId</a></li>
--   <li><a>volId</a></li>
--   <li><a>volDeleted</a></li>
--   <li><a>volUpdated</a></li>
--   <li><a>volLayerId</a></li>
--   </ul>
volumeannotation :: Volumeannotation

-- | Excerpt from the volume.
volSelectedText :: Lens' Volumeannotation (Maybe Text)

-- | Link to get data for this annotation.
volAnnotationDataLink :: Lens' Volumeannotation (Maybe Text)

-- | Pages the annotation spans.
volPageIds :: Lens' Volumeannotation [Text]

-- | Resource Type
volKind :: Lens' Volumeannotation Text

-- | Data for this annotation.
volData :: Lens' Volumeannotation (Maybe Text)

-- | URL to this resource.
volSelfLink :: Lens' Volumeannotation (Maybe Text)

-- | The type of annotation this is.
volAnnotationType :: Lens' Volumeannotation (Maybe Text)

-- | The annotation data id for this volume annotation.
volAnnotationDataId :: Lens' Volumeannotation (Maybe Text)

-- | The content ranges to identify the selected text.
volContentRanges :: Lens' Volumeannotation (Maybe VolumeannotationContentRanges)

-- | The Volume this annotation is for.
volVolumeId :: Lens' Volumeannotation (Maybe Text)

-- | Unique id of this volume annotation.
volId :: Lens' Volumeannotation (Maybe Text)

-- | Indicates that this annotation is deleted.
volDeleted :: Lens' Volumeannotation (Maybe Bool)

-- | Timestamp for the last time this anntoation was updated. (RFC 3339 UTC
--   date-time format).
volUpdated :: Lens' Volumeannotation (Maybe UTCTime)

-- | The Layer this annotation is for.
volLayerId :: Lens' Volumeannotation (Maybe Text)
data BooksCloudLoadingResource

-- | Creates a value of <a>BooksCloudLoadingResource</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bclrProcessingState</a></li>
--   <li><a>bclrVolumeId</a></li>
--   <li><a>bclrAuthor</a></li>
--   <li><a>bclrTitle</a></li>
--   </ul>
booksCloudLoadingResource :: BooksCloudLoadingResource
bclrProcessingState :: Lens' BooksCloudLoadingResource (Maybe Text)
bclrVolumeId :: Lens' BooksCloudLoadingResource (Maybe Text)
bclrAuthor :: Lens' BooksCloudLoadingResource (Maybe Text)
bclrTitle :: Lens' BooksCloudLoadingResource (Maybe Text)
data VolumeseriesInfoVolumeSeriesItemIssueItem

-- | Creates a value of <a>VolumeseriesInfoVolumeSeriesItemIssueItem</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vivsiiiIssueOrderNumber</a></li>
--   <li><a>vivsiiiIssueDisplayNumber</a></li>
--   </ul>
volumeseriesInfoVolumeSeriesItemIssueItem :: VolumeseriesInfoVolumeSeriesItemIssueItem
vivsiiiIssueOrderNumber :: Lens' VolumeseriesInfoVolumeSeriesItemIssueItem (Maybe Int32)
vivsiiiIssueDisplayNumber :: Lens' VolumeseriesInfoVolumeSeriesItemIssueItem (Maybe Text)
data Annotation

-- | Creates a value of <a>Annotation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aaSelectedText</a></li>
--   <li><a>aaLayerSummary</a></li>
--   <li><a>aaHighlightStyle</a></li>
--   <li><a>aaClientVersionRanges</a></li>
--   <li><a>aaPageIds</a></li>
--   <li><a>aaKind</a></li>
--   <li><a>aaData</a></li>
--   <li><a>aaCreated</a></li>
--   <li><a>aaAfterSelectedText</a></li>
--   <li><a>aaSelfLink</a></li>
--   <li><a>aaCurrentVersionRanges</a></li>
--   <li><a>aaVolumeId</a></li>
--   <li><a>aaBeforeSelectedText</a></li>
--   <li><a>aaId</a></li>
--   <li><a>aaDeleted</a></li>
--   <li><a>aaUpdated</a></li>
--   <li><a>aaLayerId</a></li>
--   </ul>
annotation :: Annotation

-- | Excerpt from the volume.
aaSelectedText :: Lens' Annotation (Maybe Text)
aaLayerSummary :: Lens' Annotation (Maybe AnnotationLayerSummary)

-- | The highlight style for this annotation.
aaHighlightStyle :: Lens' Annotation (Maybe Text)

-- | Selection ranges sent from the client.
aaClientVersionRanges :: Lens' Annotation (Maybe AnnotationClientVersionRanges)

-- | Pages that this annotation spans.
aaPageIds :: Lens' Annotation [Text]

-- | Resource type.
aaKind :: Lens' Annotation Text

-- | User-created data for this annotation.
aaData :: Lens' Annotation (Maybe Text)

-- | Timestamp for the created time of this annotation.
aaCreated :: Lens' Annotation (Maybe UTCTime)

-- | Anchor text after excerpt. For requests, if the user bookmarked a
--   screen that has no flowing text on it, then this field should be
--   empty.
aaAfterSelectedText :: Lens' Annotation (Maybe Text)

-- | URL to this resource.
aaSelfLink :: Lens' Annotation (Maybe Text)

-- | Selection ranges for the most recent content version.
aaCurrentVersionRanges :: Lens' Annotation (Maybe AnnotationCurrentVersionRanges)

-- | The volume that this annotation belongs to.
aaVolumeId :: Lens' Annotation (Maybe Text)

-- | Anchor text before excerpt. For requests, if the user bookmarked a
--   screen that has no flowing text on it, then this field should be
--   empty.
aaBeforeSelectedText :: Lens' Annotation (Maybe Text)

-- | Id of this annotation, in the form of a GUID.
aaId :: Lens' Annotation (Maybe Text)

-- | Indicates that this annotation is deleted.
aaDeleted :: Lens' Annotation (Maybe Bool)

-- | Timestamp for the last time this annotation was modified.
aaUpdated :: Lens' Annotation (Maybe UTCTime)

-- | The layer this annotation is for.
aaLayerId :: Lens' Annotation (Maybe Text)

-- | Author of this review.
--   
--   <i>See:</i> <a>reviewAuthor</a> smart constructor.
data ReviewAuthor

-- | Creates a value of <a>ReviewAuthor</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>raDisplayName</a></li>
--   </ul>
reviewAuthor :: ReviewAuthor

-- | Name of this person.
raDisplayName :: Lens' ReviewAuthor (Maybe Text)

-- | The viewport for showing this location. This is a latitude, longitude
--   rectangle.
--   
--   <i>See:</i> <a>geolayerDataGeoViewport</a> smart constructor.
data GeolayerDataGeoViewport

-- | Creates a value of <a>GeolayerDataGeoViewport</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdgvHi</a></li>
--   <li><a>gdgvLo</a></li>
--   </ul>
geolayerDataGeoViewport :: GeolayerDataGeoViewport
gdgvHi :: Lens' GeolayerDataGeoViewport (Maybe GeolayerDataGeoViewportHi)
gdgvLo :: Lens' GeolayerDataGeoViewport (Maybe GeolayerDataGeoViewportLo)

-- | User specific information related to this volume. (e.g. page this user
--   last read or whether they purchased this book)
--   
--   <i>See:</i> <a>volumeUserInfo</a> smart constructor.
data VolumeUserInfo

-- | Creates a value of <a>VolumeUserInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vuiIsFamilySharingAllowed</a></li>
--   <li><a>vuiIsFamilySharedToUser</a></li>
--   <li><a>vuiCopy</a></li>
--   <li><a>vuiUserUploadedVolumeInfo</a></li>
--   <li><a>vuiIsPurchased</a></li>
--   <li><a>vuiEntitlementType</a></li>
--   <li><a>vuiAcquisitionType</a></li>
--   <li><a>vuiAcquiredTime</a></li>
--   <li><a>vuiRentalState</a></li>
--   <li><a>vuiIsPreOrdered</a></li>
--   <li><a>vuiReview</a></li>
--   <li><a>vuiIsFamilySharedFromUser</a></li>
--   <li><a>vuiRentalPeriod</a></li>
--   <li><a>vuiUpdated</a></li>
--   <li><a>vuiIsUploaded</a></li>
--   <li><a>vuiIsInMyBooks</a></li>
--   <li><a>vuiReadingPosition</a></li>
--   <li><a>vuiFamilySharing</a></li>
--   <li><a>vuiIsFamilySharingDisabledByFop</a></li>
--   </ul>
volumeUserInfo :: VolumeUserInfo

-- | Deprecated: Replaced by familySharing.
vuiIsFamilySharingAllowed :: Lens' VolumeUserInfo (Maybe Bool)

-- | Whether or not the user received this volume through family sharing.
vuiIsFamilySharedToUser :: Lens' VolumeUserInfo (Maybe Bool)

-- | Copy/Paste accounting information.
vuiCopy :: Lens' VolumeUserInfo (Maybe VolumeUserInfoCopy)
vuiUserUploadedVolumeInfo :: Lens' VolumeUserInfo (Maybe VolumeUserInfoUserUploadedVolumeInfo)

-- | Whether or not this volume was purchased by the authenticated user
--   making the request. (In LITE projection.)
vuiIsPurchased :: Lens' VolumeUserInfo (Maybe Bool)

-- | Whether this volume is purchased, sample, pd download etc.
vuiEntitlementType :: Lens' VolumeUserInfo (Maybe Int32)

-- | How this volume was acquired.
vuiAcquisitionType :: Lens' VolumeUserInfo (Maybe Int32)

-- | Timestamp when this volume was acquired by the user. (RFC 3339 UTC
--   date-time format) Acquiring includes purchase, user upload, receiving
--   family sharing, etc.
vuiAcquiredTime :: Lens' VolumeUserInfo (Maybe UTCTime)

-- | Whether this book is an active or an expired rental.
vuiRentalState :: Lens' VolumeUserInfo (Maybe Text)

-- | Whether or not this volume was pre-ordered by the authenticated user
--   making the request. (In LITE projection.)
vuiIsPreOrdered :: Lens' VolumeUserInfo (Maybe Bool)

-- | This user's review of this volume, if one exists.
vuiReview :: Lens' VolumeUserInfo (Maybe Review)

-- | Whether or not the user shared this volume with the family.
vuiIsFamilySharedFromUser :: Lens' VolumeUserInfo (Maybe Bool)

-- | Period during this book is/was a valid rental.
vuiRentalPeriod :: Lens' VolumeUserInfo (Maybe VolumeUserInfoRentalPeriod)

-- | 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).
vuiUpdated :: Lens' VolumeUserInfo (Maybe UTCTime)

-- | Whether or not this volume was user uploaded.
vuiIsUploaded :: Lens' VolumeUserInfo (Maybe Bool)

-- | Whether or not this volume is currently in "my books."
vuiIsInMyBooks :: Lens' VolumeUserInfo (Maybe Bool)

-- | The user's current reading position in the volume, if one is
--   available. (In LITE projection.)
vuiReadingPosition :: Lens' VolumeUserInfo (Maybe ReadingPosition)

-- | Information on the ability to share with the family.
vuiFamilySharing :: Lens' VolumeUserInfo (Maybe VolumeUserInfoFamilySharing)

-- | Deprecated: Replaced by familySharing.
vuiIsFamilySharingDisabledByFop :: Lens' VolumeUserInfo (Maybe Bool)
data Layersummary

-- | Creates a value of <a>Layersummary</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lAnnotationsDataLink</a></li>
--   <li><a>lAnnotationsLink</a></li>
--   <li><a>lKind</a></li>
--   <li><a>lDataCount</a></li>
--   <li><a>lContentVersion</a></li>
--   <li><a>lVolumeAnnotationsVersion</a></li>
--   <li><a>lAnnotationCount</a></li>
--   <li><a>lAnnotationTypes</a></li>
--   <li><a>lSelfLink</a></li>
--   <li><a>lVolumeId</a></li>
--   <li><a>lId</a></li>
--   <li><a>lUpdated</a></li>
--   <li><a>lLayerId</a></li>
--   </ul>
layersummary :: Layersummary

-- | Link to get data for this annotation.
lAnnotationsDataLink :: Lens' Layersummary (Maybe Text)

-- | The link to get the annotations for this layer.
lAnnotationsLink :: Lens' Layersummary (Maybe Text)

-- | Resource Type
lKind :: Lens' Layersummary Text

-- | The number of data items for this layer.
lDataCount :: Lens' Layersummary (Maybe Int32)

-- | The content version this resource is for.
lContentVersion :: Lens' Layersummary (Maybe Text)

-- | 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.
lVolumeAnnotationsVersion :: Lens' Layersummary (Maybe Text)

-- | The number of annotations for this layer.
lAnnotationCount :: Lens' Layersummary (Maybe Int32)

-- | The list of annotation types contained for this layer.
lAnnotationTypes :: Lens' Layersummary [Text]

-- | URL to this resource.
lSelfLink :: Lens' Layersummary (Maybe Text)

-- | The volume id this resource is for.
lVolumeId :: Lens' Layersummary (Maybe Text)

-- | Unique id of this layer summary.
lId :: Lens' Layersummary (Maybe Text)

-- | Timestamp for the last time an item in this layer was updated. (RFC
--   3339 UTC date-time format).
lUpdated :: Lens' Layersummary (Maybe UTCTime)

-- | The layer id for this summary.
lLayerId :: Lens' Layersummary (Maybe Text)

-- | Restrict search to this user's library.
data VolumesListLibraryRestrict

-- | <tt>my-library</tt> Restrict to the user's library, any shelf.
MyLibrary :: VolumesListLibraryRestrict

-- | <tt>no-restrict</tt> Do not restrict based on user's library.
NoRestrict :: VolumesListLibraryRestrict

-- | The content ranges to identify the selected text.
--   
--   <i>See:</i> <a>volumeannotationContentRanges</a> smart constructor.
data VolumeannotationContentRanges

-- | Creates a value of <a>VolumeannotationContentRanges</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vcrGbImageRange</a></li>
--   <li><a>vcrContentVersion</a></li>
--   <li><a>vcrGbTextRange</a></li>
--   <li><a>vcrCfiRange</a></li>
--   </ul>
volumeannotationContentRanges :: VolumeannotationContentRanges

-- | Range in GB image format for this annotation for version above.
vcrGbImageRange :: Lens' VolumeannotationContentRanges (Maybe BooksAnnotationsRange)

-- | Content version applicable to ranges below.
vcrContentVersion :: Lens' VolumeannotationContentRanges (Maybe Text)

-- | Range in GB text format for this annotation for version above.
vcrGbTextRange :: Lens' VolumeannotationContentRanges (Maybe BooksAnnotationsRange)

-- | Range in CFI format for this annotation for version above.
vcrCfiRange :: Lens' VolumeannotationContentRanges (Maybe BooksAnnotationsRange)

-- | 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.).
--   
--   <i>See:</i> <a>volumeAccessInfo</a> smart constructor.
data VolumeAccessInfo

-- | Creates a value of <a>VolumeAccessInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vaiWebReaderLink</a></li>
--   <li><a>vaiCountry</a></li>
--   <li><a>vaiDriveImportedContentLink</a></li>
--   <li><a>vaiExplicitOfflineLicenseManagement</a></li>
--   <li><a>vaiViewability</a></li>
--   <li><a>vaiQuoteSharingAllowed</a></li>
--   <li><a>vaiEpub</a></li>
--   <li><a>vaiPdf</a></li>
--   <li><a>vaiTextToSpeechPermission</a></li>
--   <li><a>vaiEmbeddable</a></li>
--   <li><a>vaiAccessViewStatus</a></li>
--   <li><a>vaiDownloadAccess</a></li>
--   <li><a>vaiViewOrderURL</a></li>
--   <li><a>vaiPublicDomain</a></li>
--   </ul>
volumeAccessInfo :: VolumeAccessInfo

-- | URL to read this volume on the Google Books site. Link will not allow
--   users to read non-viewable volumes.
vaiWebReaderLink :: Lens' VolumeAccessInfo (Maybe Text)

-- | The two-letter ISO_3166-1 country code for which this access
--   information is valid. (In LITE projection.)
vaiCountry :: Lens' VolumeAccessInfo (Maybe Text)

-- | URL to the Google Drive viewer if this volume is uploaded by the user
--   by selecting the file from Google Drive.
vaiDriveImportedContentLink :: Lens' VolumeAccessInfo (Maybe Text)

-- | 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.
vaiExplicitOfflineLicenseManagement :: Lens' VolumeAccessInfo (Maybe Bool)

-- | 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.
vaiViewability :: Lens' VolumeAccessInfo (Maybe Text)

-- | Whether quote sharing is allowed for this volume.
vaiQuoteSharingAllowed :: Lens' VolumeAccessInfo (Maybe Bool)

-- | Information about epub content. (In LITE projection.)
vaiEpub :: Lens' VolumeAccessInfo (Maybe VolumeAccessInfoEpub)

-- | Information about pdf content. (In LITE projection.)
vaiPdf :: Lens' VolumeAccessInfo (Maybe VolumeAccessInfoPdf)

-- | Whether text-to-speech is permitted for this volume. Values can be
--   ALLOWED, ALLOWED_FOR_ACCESSIBILITY, or NOT_ALLOWED.
vaiTextToSpeechPermission :: Lens' VolumeAccessInfo (Maybe Text)

-- | Whether this volume can be embedded in a viewport using the Embedded
--   Viewer API.
vaiEmbeddable :: Lens' VolumeAccessInfo (Maybe Bool)

-- | 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.)
vaiAccessViewStatus :: Lens' VolumeAccessInfo (Maybe Text)

-- | Information about a volume's download license access restrictions.
vaiDownloadAccess :: Lens' VolumeAccessInfo (Maybe DownloadAccessRestriction)

-- | For ordered but not yet processed orders, we give a URL that can be
--   used to go to the appropriate Google Wallet page.
vaiViewOrderURL :: Lens' VolumeAccessInfo (Maybe Text)

-- | Whether or not this book is public domain in the country listed above.
vaiPublicDomain :: Lens' VolumeAccessInfo (Maybe Bool)

-- | A top-level summary of the panelization info in this volume.
--   
--   <i>See:</i> <a>volumeVolumeInfoPanelizationSummary</a> smart
--   constructor.
data VolumeVolumeInfoPanelizationSummary

-- | Creates a value of <a>VolumeVolumeInfoPanelizationSummary</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vvipsEpubBubbleVersion</a></li>
--   <li><a>vvipsContainsImageBubbles</a></li>
--   <li><a>vvipsContainsEpubBubbles</a></li>
--   <li><a>vvipsImageBubbleVersion</a></li>
--   </ul>
volumeVolumeInfoPanelizationSummary :: VolumeVolumeInfoPanelizationSummary
vvipsEpubBubbleVersion :: Lens' VolumeVolumeInfoPanelizationSummary (Maybe Text)
vvipsContainsImageBubbles :: Lens' VolumeVolumeInfoPanelizationSummary (Maybe Bool)
vvipsContainsEpubBubbles :: Lens' VolumeVolumeInfoPanelizationSummary (Maybe Bool)
vvipsImageBubbleVersion :: Lens' VolumeVolumeInfoPanelizationSummary (Maybe Text)

-- | The reason for which the book is removed from the library.
data MyLibraryBookshelvesRemoveVolumeReason

-- | <tt>ONBOARDING</tt> Samples removed from the Onboarding flow.
Onboarding :: MyLibraryBookshelvesRemoveVolumeReason

-- | A list of image links for all the sizes that are available. (In LITE
--   projection.)
--   
--   <i>See:</i> <a>volumeVolumeInfoImageLinks</a> smart constructor.
data VolumeVolumeInfoImageLinks

-- | Creates a value of <a>VolumeVolumeInfoImageLinks</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vviilThumbnail</a></li>
--   <li><a>vviilSmall</a></li>
--   <li><a>vviilExtraLarge</a></li>
--   <li><a>vviilLarge</a></li>
--   <li><a>vviilMedium</a></li>
--   <li><a>vviilSmallThumbnail</a></li>
--   </ul>
volumeVolumeInfoImageLinks :: VolumeVolumeInfoImageLinks

-- | Image link for thumbnail size (width of ~128 pixels). (In LITE
--   projection)
vviilThumbnail :: Lens' VolumeVolumeInfoImageLinks (Maybe Text)

-- | Image link for small size (width of ~300 pixels). (In LITE projection)
vviilSmall :: Lens' VolumeVolumeInfoImageLinks (Maybe Text)

-- | Image link for extra large size (width of ~1280 pixels). (In LITE
--   projection)
vviilExtraLarge :: Lens' VolumeVolumeInfoImageLinks (Maybe Text)

-- | Image link for large size (width of ~800 pixels). (In LITE projection)
vviilLarge :: Lens' VolumeVolumeInfoImageLinks (Maybe Text)

-- | Image link for medium size (width of ~575 pixels). (In LITE
--   projection)
vviilMedium :: Lens' VolumeVolumeInfoImageLinks (Maybe Text)

-- | Image link for small thumbnail size (width of ~80 pixels). (In LITE
--   projection)
vviilSmallThumbnail :: Lens' VolumeVolumeInfoImageLinks (Maybe Text)

-- | The maximum allowed maturity rating of returned volumes. Books with a
--   higher maturity rating are filtered out.
data OnboardingListCategoryVolumesMaxAllowedMaturityRating

-- | <tt>mature</tt> Show books which are rated mature or lower.
Mature :: OnboardingListCategoryVolumesMaxAllowedMaturityRating

-- | <tt>not-mature</tt> Show books which are rated not mature.
NotMature :: OnboardingListCategoryVolumesMaxAllowedMaturityRating
data VolumeUserInfoUserUploadedVolumeInfo

-- | Creates a value of <a>VolumeUserInfoUserUploadedVolumeInfo</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vuiuuviProcessingState</a></li>
--   </ul>
volumeUserInfoUserUploadedVolumeInfo :: VolumeUserInfoUserUploadedVolumeInfo
vuiuuviProcessingState :: Lens' VolumeUserInfoUserUploadedVolumeInfo (Maybe Text)

-- | Copy/Paste accounting information.
--   
--   <i>See:</i> <a>volumeUserInfoCopy</a> smart constructor.
data VolumeUserInfoCopy

-- | Creates a value of <a>VolumeUserInfoCopy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vuicLimitType</a></li>
--   <li><a>vuicAllowedCharacterCount</a></li>
--   <li><a>vuicUpdated</a></li>
--   <li><a>vuicRemainingCharacterCount</a></li>
--   </ul>
volumeUserInfoCopy :: VolumeUserInfoCopy
vuicLimitType :: Lens' VolumeUserInfoCopy (Maybe Text)
vuicAllowedCharacterCount :: Lens' VolumeUserInfoCopy (Maybe Int32)
vuicUpdated :: Lens' VolumeUserInfoCopy (Maybe UTCTime)
vuicRemainingCharacterCount :: Lens' VolumeUserInfoCopy (Maybe Int32)
data BooksVolumesRecommendedRateResponse

-- | Creates a value of <a>BooksVolumesRecommendedRateResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bvrrrConsistencyToken</a></li>
--   </ul>
booksVolumesRecommendedRateResponse :: BooksVolumesRecommendedRateResponse
bvrrrConsistencyToken :: Lens' BooksVolumesRecommendedRateResponse (Maybe Text)
data VolumeseriesInfo

-- | Creates a value of <a>VolumeseriesInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>viBookDisplayNumber</a></li>
--   <li><a>viKind</a></li>
--   <li><a>viShortSeriesBookTitle</a></li>
--   <li><a>viVolumeSeries</a></li>
--   </ul>
volumeseriesInfo :: VolumeseriesInfo

-- | The display number string. This should be used only for display
--   purposes and the actual sequence should be inferred from the below
--   orderNumber.
viBookDisplayNumber :: Lens' VolumeseriesInfo (Maybe Text)

-- | Resource type.
viKind :: Lens' VolumeseriesInfo Text

-- | Short book title in the context of the series.
viShortSeriesBookTitle :: Lens' VolumeseriesInfo (Maybe Text)
viVolumeSeries :: Lens' VolumeseriesInfo [VolumeseriesInfoVolumeSeriesItem]
data Bookshelf

-- | Creates a value of <a>Bookshelf</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bAccess</a></li>
--   <li><a>bVolumesLastUpdated</a></li>
--   <li><a>bKind</a></li>
--   <li><a>bCreated</a></li>
--   <li><a>bVolumeCount</a></li>
--   <li><a>bSelfLink</a></li>
--   <li><a>bId</a></li>
--   <li><a>bUpdated</a></li>
--   <li><a>bTitle</a></li>
--   <li><a>bDescription</a></li>
--   </ul>
bookshelf :: Bookshelf

-- | Whether this bookshelf is PUBLIC or PRIVATE.
bAccess :: Lens' Bookshelf (Maybe Text)

-- | Last time a volume was added or removed from this bookshelf (formatted
--   UTC timestamp with millisecond resolution).
bVolumesLastUpdated :: Lens' Bookshelf (Maybe UTCTime)

-- | Resource type for bookshelf metadata.
bKind :: Lens' Bookshelf Text

-- | Created time for this bookshelf (formatted UTC timestamp with
--   millisecond resolution).
bCreated :: Lens' Bookshelf (Maybe UTCTime)

-- | Number of volumes in this bookshelf.
bVolumeCount :: Lens' Bookshelf (Maybe Int32)

-- | URL to this resource.
bSelfLink :: Lens' Bookshelf (Maybe Text)

-- | Id of this bookshelf, only unique by user.
bId :: Lens' Bookshelf (Maybe Int32)

-- | Last modified time of this bookshelf (formatted UTC timestamp with
--   millisecond resolution).
bUpdated :: Lens' Bookshelf (Maybe UTCTime)

-- | Title of this bookshelf.
bTitle :: Lens' Bookshelf (Maybe Text)

-- | Description of this bookshelf.
bDescription :: Lens' Bookshelf (Maybe Text)
data Notification

-- | Creates a value of <a>Notification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nDocType</a></li>
--   <li><a>nTargetURL</a></li>
--   <li><a>nShowNotificationSettingsAction</a></li>
--   <li><a>nDocId</a></li>
--   <li><a>nKind</a></li>
--   <li><a>nBody</a></li>
--   <li><a>nCrmExperimentIds</a></li>
--   <li><a>nPcampaignId</a></li>
--   <li><a>nReason</a></li>
--   <li><a>nDontShowNotification</a></li>
--   <li><a>nNotificationType</a></li>
--   <li><a>nNotificationGroup</a></li>
--   <li><a>nIconURL</a></li>
--   <li><a>nTitle</a></li>
--   </ul>
notification :: Notification
nDocType :: Lens' Notification (Maybe Text)
nTargetURL :: Lens' Notification (Maybe Text)
nShowNotificationSettingsAction :: Lens' Notification (Maybe Bool)
nDocId :: Lens' Notification (Maybe Text)

-- | Resource type.
nKind :: Lens' Notification Text
nBody :: Lens' Notification (Maybe Text)

-- | The list of crm experiment ids.
nCrmExperimentIds :: Lens' Notification [Int64]
nPcampaignId :: Lens' Notification (Maybe Text)
nReason :: Lens' Notification (Maybe Text)
nDontShowNotification :: Lens' Notification (Maybe Bool)
nNotificationType :: Lens' Notification (Maybe Text)
nNotificationGroup :: Lens' Notification (Maybe Text)
nIconURL :: Lens' Notification (Maybe Text)
nTitle :: Lens' Notification (Maybe Text)

-- | Restrict to volumes by download availability.
data VolumesListDownload

-- | <tt>epub</tt> All volumes with epub.
Epub :: VolumesListDownload
data AnnotationsSummaryLayersItem

-- | Creates a value of <a>AnnotationsSummaryLayersItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>asliLimitType</a></li>
--   <li><a>asliAllowedCharacterCount</a></li>
--   <li><a>asliUpdated</a></li>
--   <li><a>asliLayerId</a></li>
--   <li><a>asliRemainingCharacterCount</a></li>
--   </ul>
annotationsSummaryLayersItem :: AnnotationsSummaryLayersItem
asliLimitType :: Lens' AnnotationsSummaryLayersItem (Maybe Text)
asliAllowedCharacterCount :: Lens' AnnotationsSummaryLayersItem (Maybe Int32)
asliUpdated :: Lens' AnnotationsSummaryLayersItem (Maybe UTCTime)
asliLayerId :: Lens' AnnotationsSummaryLayersItem (Maybe Text)
asliRemainingCharacterCount :: Lens' AnnotationsSummaryLayersItem (Maybe Int32)

-- | The rental duration (for rental offers only).
--   
--   <i>See:</i> <a>volumeSaleInfoOffersItemRentalDuration</a> smart
--   constructor.
data VolumeSaleInfoOffersItemRentalDuration

-- | Creates a value of <a>VolumeSaleInfoOffersItemRentalDuration</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsioirdCount</a></li>
--   <li><a>vsioirdUnit</a></li>
--   </ul>
volumeSaleInfoOffersItemRentalDuration :: VolumeSaleInfoOffersItemRentalDuration
vsioirdCount :: Lens' VolumeSaleInfoOffersItemRentalDuration (Maybe Double)
vsioirdUnit :: Lens' VolumeSaleInfoOffersItemRentalDuration (Maybe Text)
data DictlayerDataDictWordsItemExamplesItem

-- | Creates a value of <a>DictlayerDataDictWordsItemExamplesItem</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwieiText</a></li>
--   <li><a>dddwieiSource</a></li>
--   </ul>
dictlayerDataDictWordsItemExamplesItem :: DictlayerDataDictWordsItemExamplesItem
dddwieiText :: Lens' DictlayerDataDictWordsItemExamplesItem (Maybe Text)
dddwieiSource :: Lens' DictlayerDataDictWordsItemExamplesItem (Maybe DictlayerDataDictWordsItemExamplesItemSource)
data OffersItemsItem

-- | Creates a value of <a>OffersItemsItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oiiItems</a></li>
--   <li><a>oiiArtURL</a></li>
--   <li><a>oiiId</a></li>
--   <li><a>oiiGServicesKey</a></li>
--   </ul>
offersItemsItem :: OffersItemsItem
oiiItems :: Lens' OffersItemsItem [OffersItemsItemItemsItem]
oiiArtURL :: Lens' OffersItemsItem (Maybe Text)
oiiId :: Lens' OffersItemsItem (Maybe Text)
oiiGServicesKey :: Lens' OffersItemsItem (Maybe Text)
data AnnotationLayerSummary

-- | Creates a value of <a>AnnotationLayerSummary</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>alsLimitType</a></li>
--   <li><a>alsAllowedCharacterCount</a></li>
--   <li><a>alsRemainingCharacterCount</a></li>
--   </ul>
annotationLayerSummary :: AnnotationLayerSummary

-- | Type of limitation on this layer. "limited" or "unlimited" for the
--   "copy" layer.
alsLimitType :: Lens' AnnotationLayerSummary (Maybe Text)

-- | Maximum allowed characters on this layer, especially for the "copy"
--   layer.
alsAllowedCharacterCount :: Lens' AnnotationLayerSummary (Maybe Int32)

-- | Remaining allowed characters on this layer, especially for the "copy"
--   layer.
alsRemainingCharacterCount :: Lens' AnnotationLayerSummary (Maybe Int32)

-- | Search result information related to this volume.
--   
--   <i>See:</i> <a>volumeSearchInfo</a> smart constructor.
data VolumeSearchInfo

-- | Creates a value of <a>VolumeSearchInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsiTextSnippet</a></li>
--   </ul>
volumeSearchInfo :: VolumeSearchInfo

-- | A text snippet containing the search query.
vsiTextSnippet :: Lens' VolumeSearchInfo (Maybe Text)
data AnnotationsSummary

-- | Creates a value of <a>AnnotationsSummary</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>asKind</a></li>
--   <li><a>asLayers</a></li>
--   </ul>
annotationsSummary :: AnnotationsSummary
asKind :: Lens' AnnotationsSummary Text
asLayers :: Lens' AnnotationsSummary [AnnotationsSummaryLayersItem]

-- | Restrict information returned to a set of selected fields.
data VolumesGetProjection

-- | <tt>full</tt> Includes all volume data.
VGPFull :: VolumesGetProjection

-- | <tt>lite</tt> Includes a subset of fields in volumeInfo and
--   accessInfo.
VGPLite :: VolumesGetProjection
data Category

-- | Creates a value of <a>Category</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cKind</a></li>
--   <li><a>cItems</a></li>
--   </ul>
category :: Category

-- | Resource type.
cKind :: Lens' Category Text

-- | A list of onboarding categories.
cItems :: Lens' Category [CategoryItemsItem]

-- | Association type.
data VolumesAssociatedListAssociation

-- | <tt>end-of-sample</tt> Recommendations for display end-of-sample.
EndOfSample :: VolumesAssociatedListAssociation

-- | <tt>end-of-volume</tt> Recommendations for display end-of-volume.
EndOfVolume :: VolumesAssociatedListAssociation

-- | <tt>related-for-play</tt> Related volumes for Play Store.
RelatedForPlay :: VolumesAssociatedListAssociation
data DiscoveryclustersClustersItemBanner_with_content_container

-- | Creates a value of
--   <a>DiscoveryclustersClustersItemBanner_with_content_container</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcibFillColorArgb</a></li>
--   <li><a>dcibMoreButtonURL</a></li>
--   <li><a>dcibTextColorArgb</a></li>
--   <li><a>dcibMoreButtonText</a></li>
--   <li><a>dcibImageURL</a></li>
--   <li><a>dcibMaskColorArgb</a></li>
--   </ul>
discoveryclustersClustersItemBanner_with_content_container :: DiscoveryclustersClustersItemBanner_with_content_container
dcibFillColorArgb :: Lens' DiscoveryclustersClustersItemBanner_with_content_container (Maybe Text)
dcibMoreButtonURL :: Lens' DiscoveryclustersClustersItemBanner_with_content_container (Maybe Text)
dcibTextColorArgb :: Lens' DiscoveryclustersClustersItemBanner_with_content_container (Maybe Text)
dcibMoreButtonText :: Lens' DiscoveryclustersClustersItemBanner_with_content_container (Maybe Text)
dcibImageURL :: Lens' DiscoveryclustersClustersItemBanner_with_content_container (Maybe Text)
dcibMaskColorArgb :: Lens' DiscoveryclustersClustersItemBanner_with_content_container (Maybe Text)
data Volume

-- | Creates a value of <a>Volume</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vvUserInfo</a></li>
--   <li><a>vvEtag</a></li>
--   <li><a>vvAccessInfo</a></li>
--   <li><a>vvKind</a></li>
--   <li><a>vvSearchInfo</a></li>
--   <li><a>vvSelfLink</a></li>
--   <li><a>vvLayerInfo</a></li>
--   <li><a>vvSaleInfo</a></li>
--   <li><a>vvId</a></li>
--   <li><a>vvRecommendedInfo</a></li>
--   <li><a>vvVolumeInfo</a></li>
--   </ul>
volume :: Volume

-- | User specific information related to this volume. (e.g. page this user
--   last read or whether they purchased this book)
vvUserInfo :: Lens' Volume (Maybe VolumeUserInfo)

-- | Opaque identifier for a specific version of a volume resource. (In
--   LITE projection)
vvEtag :: Lens' Volume (Maybe Text)

-- | 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.).
vvAccessInfo :: Lens' Volume (Maybe VolumeAccessInfo)

-- | Resource type for a volume. (In LITE projection.)
vvKind :: Lens' Volume Text

-- | Search result information related to this volume.
vvSearchInfo :: Lens' Volume (Maybe VolumeSearchInfo)

-- | URL to this resource. (In LITE projection.)
vvSelfLink :: Lens' Volume (Maybe Text)

-- | What layers exist in this volume and high level information about
--   them.
vvLayerInfo :: Lens' Volume (Maybe VolumeLayerInfo)

-- | 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).
vvSaleInfo :: Lens' Volume (Maybe VolumeSaleInfo)

-- | Unique identifier for a volume. (In LITE projection.)
vvId :: Lens' Volume (Maybe Text)

-- | Recommendation related information for this volume.
vvRecommendedInfo :: Lens' Volume (Maybe VolumeRecommendedInfo)

-- | General volume information.
vvVolumeInfo :: Lens' Volume (Maybe VolumeVolumeInfo)
data GeolayerDataGeoBoundaryItemItem

-- | Creates a value of <a>GeolayerDataGeoBoundaryItemItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdgbiiLatitude</a></li>
--   <li><a>gdgbiiLongitude</a></li>
--   </ul>
geolayerDataGeoBoundaryItemItem :: GeolayerDataGeoBoundaryItemItem
gdgbiiLatitude :: Lens' GeolayerDataGeoBoundaryItemItem (Maybe Word32)
gdgbiiLongitude :: Lens' GeolayerDataGeoBoundaryItemItem (Maybe Word32)
data Series

-- | Creates a value of <a>Series</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sKind</a></li>
--   <li><a>sSeries</a></li>
--   </ul>
series :: Series

-- | Resource type.
sKind :: Lens' Series Text
sSeries :: Lens' Series [SeriesSeriesItem]
data OffersItemsItemItemsItem

-- | Creates a value of <a>OffersItemsItemItemsItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oiiiiCanonicalVolumeLink</a></li>
--   <li><a>oiiiiCoverURL</a></li>
--   <li><a>oiiiiVolumeId</a></li>
--   <li><a>oiiiiAuthor</a></li>
--   <li><a>oiiiiTitle</a></li>
--   <li><a>oiiiiDescription</a></li>
--   </ul>
offersItemsItemItemsItem :: OffersItemsItemItemsItem
oiiiiCanonicalVolumeLink :: Lens' OffersItemsItemItemsItem (Maybe Text)
oiiiiCoverURL :: Lens' OffersItemsItemItemsItem (Maybe Text)
oiiiiVolumeId :: Lens' OffersItemsItemItemsItem (Maybe Text)
oiiiiAuthor :: Lens' OffersItemsItemItemsItem (Maybe Text)
oiiiiTitle :: Lens' OffersItemsItemItemsItem (Maybe Text)
oiiiiDescription :: Lens' OffersItemsItemItemsItem (Maybe Text)
data DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource

-- | Creates a value of
--   <a>DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwisidieisURL</a></li>
--   <li><a>dddwisidieisAttribution</a></li>
--   </ul>
dictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource :: DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource
dddwisidieisURL :: Lens' DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource (Maybe Text)
dddwisidieisAttribution :: Lens' DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource (Maybe Text)
data GeolayerDataCommon

-- | Creates a value of <a>GeolayerDataCommon</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdcSnippet</a></li>
--   <li><a>gdcSnippetURL</a></li>
--   <li><a>gdcLang</a></li>
--   <li><a>gdcTitle</a></li>
--   <li><a>gdcPreviewImageURL</a></li>
--   </ul>
geolayerDataCommon :: GeolayerDataCommon

-- | The description for this location.
gdcSnippet :: Lens' GeolayerDataCommon (Maybe Text)

-- | The URL for information for this location. Ex: wikipedia link.
gdcSnippetURL :: Lens' GeolayerDataCommon (Maybe Text)

-- | The language of the information url and description.
gdcLang :: Lens' GeolayerDataCommon (Maybe Text)

-- | The display title and localized canonical name to use when searching
--   for this entity on Google search.
gdcTitle :: Lens' GeolayerDataCommon (Maybe Text)

-- | The URL for the preview image information.
gdcPreviewImageURL :: Lens' GeolayerDataCommon (Maybe Text)
data GeolayerDataGeo

-- | Creates a value of <a>GeolayerDataGeo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdgMapType</a></li>
--   <li><a>gdgCachePolicy</a></li>
--   <li><a>gdgViewport</a></li>
--   <li><a>gdgBoundary</a></li>
--   <li><a>gdgLatitude</a></li>
--   <li><a>gdgZoom</a></li>
--   <li><a>gdgCountryCode</a></li>
--   <li><a>gdgLongitude</a></li>
--   </ul>
geolayerDataGeo :: GeolayerDataGeo

-- | The type of map that should be used for this location. EX: HYBRID,
--   ROADMAP, SATELLITE, TERRAIN
gdgMapType :: Lens' GeolayerDataGeo (Maybe Text)

-- | The cache policy active for this data. EX: UNRESTRICTED, RESTRICTED,
--   NEVER
gdgCachePolicy :: Lens' GeolayerDataGeo (Maybe Text)

-- | The viewport for showing this location. This is a latitude, longitude
--   rectangle.
gdgViewport :: Lens' GeolayerDataGeo (Maybe GeolayerDataGeoViewport)

-- | The boundary of the location as a set of loops containing pairs of
--   latitude, longitude coordinates.
gdgBoundary :: Lens' GeolayerDataGeo [[GeolayerDataGeoBoundaryItemItem]]

-- | The latitude of the location.
gdgLatitude :: Lens' GeolayerDataGeo (Maybe Double)

-- | The Zoom level to use for the map. Zoom levels between 0 (the lowest
--   zoom level, in which the entire world can be seen on one map) to 21+
--   (down to individual buildings). See:
--   https://developers.google.com/maps/documentation/staticmaps/#Zoomlevels
gdgZoom :: Lens' GeolayerDataGeo (Maybe Int32)

-- | The country code of the location.
gdgCountryCode :: Lens' GeolayerDataGeo (Maybe Text)

-- | The longitude of the location.
gdgLongitude :: Lens' GeolayerDataGeo (Maybe Double)
data DictlayerDataDictWordsItem

-- | Creates a value of <a>DictlayerDataDictWordsItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwiSenses</a></li>
--   <li><a>dddwiSource</a></li>
--   <li><a>dddwiDerivatives</a></li>
--   <li><a>dddwiExamples</a></li>
--   </ul>
dictlayerDataDictWordsItem :: DictlayerDataDictWordsItem
dddwiSenses :: Lens' DictlayerDataDictWordsItem [DictlayerDataDictWordsItemSensesItem]

-- | The words with different meanings but not related words, e.g. "go"
--   (game) and "go" (verb).
dddwiSource :: Lens' DictlayerDataDictWordsItem (Maybe DictlayerDataDictWordsItemSource)
dddwiDerivatives :: Lens' DictlayerDataDictWordsItem [DictlayerDataDictWordsItemDerivativesItem]
dddwiExamples :: Lens' DictlayerDataDictWordsItem [DictlayerDataDictWordsItemExamplesItem]
data CategoryItemsItem

-- | Creates a value of <a>CategoryItemsItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ciiName</a></li>
--   <li><a>ciiCategoryId</a></li>
--   <li><a>ciiBadgeURL</a></li>
--   </ul>
categoryItemsItem :: CategoryItemsItem
ciiName :: Lens' CategoryItemsItem (Maybe Text)
ciiCategoryId :: Lens' CategoryItemsItem (Maybe Text)
ciiBadgeURL :: Lens' CategoryItemsItem (Maybe Text)
data DictlayerDataDictWordsItemDerivativesItemSource

-- | Creates a value of
--   <a>DictlayerDataDictWordsItemDerivativesItemSource</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwidisURL</a></li>
--   <li><a>dddwidisAttribution</a></li>
--   </ul>
dictlayerDataDictWordsItemDerivativesItemSource :: DictlayerDataDictWordsItemDerivativesItemSource
dddwidisURL :: Lens' DictlayerDataDictWordsItemDerivativesItemSource (Maybe Text)
dddwidisAttribution :: Lens' DictlayerDataDictWordsItemDerivativesItemSource (Maybe Text)

-- | Rating to be given to the volume.
data VolumesRecommendedRateRating

-- | <tt>HAVE_IT</tt> Rating indicating a dismissal due to ownership.
HaveIt :: VolumesRecommendedRateRating

-- | <tt>NOT_INTERESTED</tt> Rating indicating a negative dismissal of a
--   volume.
NotInterested :: VolumesRecommendedRateRating
data GeolayerData

-- | Creates a value of <a>GeolayerData</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdKind</a></li>
--   <li><a>gdGeo</a></li>
--   <li><a>gdCommon</a></li>
--   </ul>
geolayerData :: GeolayerData
gdKind :: Lens' GeolayerData Text
gdGeo :: Lens' GeolayerData (Maybe GeolayerDataGeo)
gdCommon :: Lens' GeolayerData (Maybe GeolayerDataCommon)

-- | The words with different meanings but not related words, e.g. "go"
--   (game) and "go" (verb).
--   
--   <i>See:</i> <a>dictlayerDataDictWordsItemSource</a> smart constructor.
data DictlayerDataDictWordsItemSource

-- | Creates a value of <a>DictlayerDataDictWordsItemSource</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwisURL</a></li>
--   <li><a>dddwisAttribution</a></li>
--   </ul>
dictlayerDataDictWordsItemSource :: DictlayerDataDictWordsItemSource
dddwisURL :: Lens' DictlayerDataDictWordsItemSource (Maybe Text)
dddwisAttribution :: Lens' DictlayerDataDictWordsItemSource (Maybe Text)
data DictlayerDataDictWordsItemDerivativesItem

-- | Creates a value of <a>DictlayerDataDictWordsItemDerivativesItem</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwidiText</a></li>
--   <li><a>dddwidiSource</a></li>
--   </ul>
dictlayerDataDictWordsItemDerivativesItem :: DictlayerDataDictWordsItemDerivativesItem
dddwidiText :: Lens' DictlayerDataDictWordsItemDerivativesItem (Maybe Text)
dddwidiSource :: Lens' DictlayerDataDictWordsItemDerivativesItem (Maybe DictlayerDataDictWordsItemDerivativesItemSource)

-- | The processing state of the user uploaded volumes to be returned.
data VolumesUserUploadedListProcessingState

-- | <tt>COMPLETED_FAILED</tt> The volume processing hase failed.
CompletedFailed :: VolumesUserUploadedListProcessingState

-- | <tt>COMPLETED_SUCCESS</tt> The volume processing was completed.
CompletedSuccess :: VolumesUserUploadedListProcessingState

-- | <tt>RUNNING</tt> The volume processing is not completed.
Running :: VolumesUserUploadedListProcessingState

-- | List of features supported by the client, i.e., 'RENTALS'
data MyConfigSyncVolumeLicensesFeatures

-- | <tt>RENTALS</tt> Client supports rentals.
Rentals :: MyConfigSyncVolumeLicensesFeatures
data DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem

-- | Creates a value of
--   <a>DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwisidieiText</a></li>
--   <li><a>dddwisidieiSource</a></li>
--   </ul>
dictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem :: DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem
dddwisidieiText :: Lens' DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem (Maybe Text)
dddwisidieiSource :: Lens' DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem (Maybe DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource)
data DictlayerData

-- | Creates a value of <a>DictlayerData</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddKind</a></li>
--   <li><a>ddDict</a></li>
--   <li><a>ddCommon</a></li>
--   </ul>
dictlayerData :: DictlayerData
ddKind :: Lens' DictlayerData Text
ddDict :: Lens' DictlayerData (Maybe DictlayerDataDict)
ddCommon :: Lens' DictlayerData (Maybe DictlayerDataCommon)

-- | The maximum allowed maturity rating of returned recommendations. Books
--   with a higher maturity rating are filtered out.
data VolumesAssociatedListMaxAllowedMaturityRating

-- | <tt>mature</tt> Show books which are rated mature or lower.
VALMAMRMature :: VolumesAssociatedListMaxAllowedMaturityRating

-- | <tt>not-mature</tt> Show books which are rated not mature.
VALMAMRNotMature :: VolumesAssociatedListMaxAllowedMaturityRating
data DictlayerDataDictWordsItemSensesItemSynonymsItemSource

-- | Creates a value of
--   <a>DictlayerDataDictWordsItemSensesItemSynonymsItemSource</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwisisisURL</a></li>
--   <li><a>dddwisisisAttribution</a></li>
--   </ul>
dictlayerDataDictWordsItemSensesItemSynonymsItemSource :: DictlayerDataDictWordsItemSensesItemSynonymsItemSource
dddwisisisURL :: Lens' DictlayerDataDictWordsItemSensesItemSynonymsItemSource (Maybe Text)
dddwisisisAttribution :: Lens' DictlayerDataDictWordsItemSensesItemSynonymsItemSource (Maybe Text)
data Seriesmembership

-- | Creates a value of <a>Seriesmembership</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>serNextPageToken</a></li>
--   <li><a>serKind</a></li>
--   <li><a>serMember</a></li>
--   </ul>
seriesmembership :: Seriesmembership
serNextPageToken :: Lens' Seriesmembership (Maybe Text)

-- | Resorce type.
serKind :: Lens' Seriesmembership Text
serMember :: Lens' Seriesmembership [Volume]

-- | Filter search results.
data VolumesListFilter

-- | <tt>ebooks</tt> All Google eBooks.
VLFEbooks :: VolumesListFilter

-- | <tt>free-ebooks</tt> Google eBook with full volume text viewability.
VLFFreeEbooks :: VolumesListFilter

-- | <tt>full</tt> Public can view entire volume text.
VLFFull :: VolumesListFilter

-- | <tt>paid-ebooks</tt> Google eBook with a price.
VLFPaidEbooks :: VolumesListFilter

-- | <tt>partial</tt> Public able to see parts of text.
VLFPartial :: VolumesListFilter
data UserSettingsNotification

-- | Creates a value of <a>UserSettingsNotification</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usnMoreFromAuthors</a></li>
--   <li><a>usnMoreFromSeries</a></li>
--   </ul>
userSettingsNotification :: UserSettingsNotification
usnMoreFromAuthors :: Lens' UserSettingsNotification (Maybe UserSettingsNotificationMoreFromAuthors)
usnMoreFromSeries :: Lens' UserSettingsNotification (Maybe UserSettingsNotificationMoreFromSeries)
data DictlayerDataDictWordsItemSensesItemSynonymsItem

-- | Creates a value of
--   <a>DictlayerDataDictWordsItemSensesItemSynonymsItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwisisiText</a></li>
--   <li><a>dddwisisiSource</a></li>
--   </ul>
dictlayerDataDictWordsItemSensesItemSynonymsItem :: DictlayerDataDictWordsItemSensesItemSynonymsItem
dddwisisiText :: Lens' DictlayerDataDictWordsItemSensesItemSynonymsItem (Maybe Text)
dddwisisiSource :: Lens' DictlayerDataDictWordsItemSensesItemSynonymsItem (Maybe DictlayerDataDictWordsItemSensesItemSynonymsItemSource)
data GeolayerDataGeoViewportLo

-- | Creates a value of <a>GeolayerDataGeoViewportLo</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdgvlLatitude</a></li>
--   <li><a>gdgvlLongitude</a></li>
--   </ul>
geolayerDataGeoViewportLo :: GeolayerDataGeoViewportLo
gdgvlLatitude :: Lens' GeolayerDataGeoViewportLo (Maybe Double)
gdgvlLongitude :: Lens' GeolayerDataGeoViewportLo (Maybe Double)

-- | The maximum allowed maturity rating of returned recommendations. Books
--   with a higher maturity rating are filtered out.
data VolumesRecommendedListMaxAllowedMaturityRating

-- | <tt>mature</tt> Show books which are rated mature or lower.
VRLMAMRMature :: VolumesRecommendedListMaxAllowedMaturityRating

-- | <tt>not-mature</tt> Show books which are rated not mature.
VRLMAMRNotMature :: VolumesRecommendedListMaxAllowedMaturityRating

-- | Offer list (=undiscounted) price in Micros.
--   
--   <i>See:</i> <a>volumeSaleInfoOffersItemListPrice</a> smart
--   constructor.
data VolumeSaleInfoOffersItemListPrice

-- | Creates a value of <a>VolumeSaleInfoOffersItemListPrice</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsioilpCurrencyCode</a></li>
--   <li><a>vsioilpAmountInMicros</a></li>
--   </ul>
volumeSaleInfoOffersItemListPrice :: VolumeSaleInfoOffersItemListPrice
vsioilpCurrencyCode :: Lens' VolumeSaleInfoOffersItemListPrice (Maybe Text)
vsioilpAmountInMicros :: Lens' VolumeSaleInfoOffersItemListPrice (Maybe Double)
data DownloadAccessRestriction

-- | Creates a value of <a>DownloadAccessRestriction</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>darJustAcquired</a></li>
--   <li><a>darSignature</a></li>
--   <li><a>darKind</a></li>
--   <li><a>darMaxDownloadDevices</a></li>
--   <li><a>darDownloadsAcquired</a></li>
--   <li><a>darReasonCode</a></li>
--   <li><a>darVolumeId</a></li>
--   <li><a>darRestricted</a></li>
--   <li><a>darSource</a></li>
--   <li><a>darDeviceAllowed</a></li>
--   <li><a>darMessage</a></li>
--   <li><a>darNonce</a></li>
--   </ul>
downloadAccessRestriction :: DownloadAccessRestriction

-- | If deviceAllowed, whether access was just acquired with this request.
darJustAcquired :: Lens' DownloadAccessRestriction (Maybe Bool)

-- | Response signature.
darSignature :: Lens' DownloadAccessRestriction (Maybe Text)

-- | Resource type.
darKind :: Lens' DownloadAccessRestriction Text

-- | If restricted, the maximum number of content download licenses for
--   this volume.
darMaxDownloadDevices :: Lens' DownloadAccessRestriction (Maybe Int32)

-- | If restricted, the number of content download licenses already
--   acquired (including the requesting client, if licensed).
darDownloadsAcquired :: Lens' DownloadAccessRestriction (Maybe Int32)

-- | 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
darReasonCode :: Lens' DownloadAccessRestriction (Maybe Text)

-- | Identifies the volume for which this entry applies.
darVolumeId :: Lens' DownloadAccessRestriction (Maybe Text)

-- | Whether this volume has any download access restrictions.
darRestricted :: Lens' DownloadAccessRestriction (Maybe Bool)

-- | Client app identifier for verification. Download access and
--   client-validation only.
darSource :: Lens' DownloadAccessRestriction (Maybe Text)

-- | If restricted, whether access is granted for this (user, device,
--   volume).
darDeviceAllowed :: Lens' DownloadAccessRestriction (Maybe Bool)

-- | Error/warning message.
darMessage :: Lens' DownloadAccessRestriction (Maybe Text)

-- | Client nonce for verification. Download access and client-validation
--   only.
darNonce :: Lens' DownloadAccessRestriction (Maybe Text)
data DictlayerDataCommon

-- | Creates a value of <a>DictlayerDataCommon</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddcTitle</a></li>
--   </ul>
dictlayerDataCommon :: DictlayerDataCommon

-- | The display title and localized canonical name to use when searching
--   for this entity on Google search.
ddcTitle :: Lens' DictlayerDataCommon (Maybe Text)
data DiscoveryclustersClustersItem

-- | Creates a value of <a>DiscoveryclustersClustersItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dciBannerWithContentContainer</a></li>
--   <li><a>dciUid</a></li>
--   <li><a>dciTotalVolumes</a></li>
--   <li><a>dciSubTitle</a></li>
--   <li><a>dciTitle</a></li>
--   <li><a>dciVolumes</a></li>
--   </ul>
discoveryclustersClustersItem :: DiscoveryclustersClustersItem
dciBannerWithContentContainer :: Lens' DiscoveryclustersClustersItem (Maybe DiscoveryclustersClustersItemBanner_with_content_container)
dciUid :: Lens' DiscoveryclustersClustersItem (Maybe Text)
dciTotalVolumes :: Lens' DiscoveryclustersClustersItem (Maybe Int32)
dciSubTitle :: Lens' DiscoveryclustersClustersItem (Maybe Text)
dciTitle :: Lens' DiscoveryclustersClustersItem (Maybe Text)
dciVolumes :: Lens' DiscoveryclustersClustersItem [Volume]

-- | 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.)
--   
--   <i>See:</i> <a>volumeSaleInfoRetailPrice</a> smart constructor.
data VolumeSaleInfoRetailPrice

-- | Creates a value of <a>VolumeSaleInfoRetailPrice</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsirpAmount</a></li>
--   <li><a>vsirpCurrencyCode</a></li>
--   </ul>
volumeSaleInfoRetailPrice :: VolumeSaleInfoRetailPrice

-- | Amount in the currency listed below. (In LITE projection.)
vsirpAmount :: Lens' VolumeSaleInfoRetailPrice (Maybe Double)

-- | An ISO 4217, three-letter currency code. (In LITE projection.)
vsirpCurrencyCode :: Lens' VolumeSaleInfoRetailPrice (Maybe Text)

-- | Suggested retail price. (In LITE projection.)
--   
--   <i>See:</i> <a>volumeSaleInfoListPrice</a> smart constructor.
data VolumeSaleInfoListPrice

-- | Creates a value of <a>VolumeSaleInfoListPrice</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsilpAmount</a></li>
--   <li><a>vsilpCurrencyCode</a></li>
--   </ul>
volumeSaleInfoListPrice :: VolumeSaleInfoListPrice

-- | Amount in the currency listed below. (In LITE projection.)
vsilpAmount :: Lens' VolumeSaleInfoListPrice (Maybe Double)

-- | An ISO 4217, three-letter currency code. (In LITE projection.)
vsilpCurrencyCode :: Lens' VolumeSaleInfoListPrice (Maybe Text)
data DictlayerDataDictWordsItemSensesItemConjugationsItem

-- | Creates a value of
--   <a>DictlayerDataDictWordsItemSensesItemConjugationsItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwisiciValue</a></li>
--   <li><a>dddwisiciType</a></li>
--   </ul>
dictlayerDataDictWordsItemSensesItemConjugationsItem :: DictlayerDataDictWordsItemSensesItemConjugationsItem
dddwisiciValue :: Lens' DictlayerDataDictWordsItemSensesItemConjugationsItem (Maybe Text)
dddwisiciType :: Lens' DictlayerDataDictWordsItemSensesItemConjugationsItem (Maybe Text)
data Volume2

-- | Creates a value of <a>Volume2</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>voloNextPageToken</a></li>
--   <li><a>voloKind</a></li>
--   <li><a>voloItems</a></li>
--   </ul>
volume2 :: Volume2
voloNextPageToken :: Lens' Volume2 (Maybe Text)

-- | Resource type.
voloKind :: Lens' Volume2 Text

-- | A list of volumes.
voloItems :: Lens' Volume2 [Volume]
data Review

-- | Creates a value of <a>Review</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rRating</a></li>
--   <li><a>rKind</a></li>
--   <li><a>rContent</a></li>
--   <li><a>rDate</a></li>
--   <li><a>rVolumeId</a></li>
--   <li><a>rAuthor</a></li>
--   <li><a>rSource</a></li>
--   <li><a>rFullTextURL</a></li>
--   <li><a>rTitle</a></li>
--   <li><a>rType</a></li>
--   </ul>
review :: Review

-- | Star rating for this review. Possible values are ONE, TWO, THREE,
--   FOUR, FIVE or NOT_RATED.
rRating :: Lens' Review (Maybe Text)

-- | Resource type for a review.
rKind :: Lens' Review Text

-- | Review text.
rContent :: Lens' Review (Maybe Text)

-- | Date of this review.
rDate :: Lens' Review (Maybe Text)

-- | Volume that this review is for.
rVolumeId :: Lens' Review (Maybe Text)

-- | Author of this review.
rAuthor :: Lens' Review (Maybe ReviewAuthor)

-- | Information regarding the source of this review, when the review is
--   not from a Google Books user.
rSource :: Lens' Review (Maybe ReviewSource)

-- | URL for the full review text, for reviews gathered from the web.
rFullTextURL :: Lens' Review (Maybe Text)

-- | Title for this review.
rTitle :: Lens' Review (Maybe Text)

-- | Source type for this review. Possible values are EDITORIAL, WEB_USER
--   or GOOGLE_USER.
rType :: Lens' Review (Maybe Text)

-- | Period during this book is/was a valid rental.
--   
--   <i>See:</i> <a>volumeUserInfoRentalPeriod</a> smart constructor.
data VolumeUserInfoRentalPeriod

-- | Creates a value of <a>VolumeUserInfoRentalPeriod</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vuirpEndUtcSec</a></li>
--   <li><a>vuirpStartUtcSec</a></li>
--   </ul>
volumeUserInfoRentalPeriod :: VolumeUserInfoRentalPeriod
vuirpEndUtcSec :: Lens' VolumeUserInfoRentalPeriod (Maybe Int64)
vuirpStartUtcSec :: Lens' VolumeUserInfoRentalPeriod (Maybe Int64)

-- | 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).
--   
--   <i>See:</i> <a>volumeSaleInfo</a> smart constructor.
data VolumeSaleInfo

-- | Creates a value of <a>VolumeSaleInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsiCountry</a></li>
--   <li><a>vsiOnSaleDate</a></li>
--   <li><a>vsiListPrice</a></li>
--   <li><a>vsiRetailPrice</a></li>
--   <li><a>vsiOffers</a></li>
--   <li><a>vsiBuyLink</a></li>
--   <li><a>vsiIsEbook</a></li>
--   <li><a>vsiSaleability</a></li>
--   </ul>
volumeSaleInfo :: VolumeSaleInfo

-- | The two-letter ISO_3166-1 country code for which this sale information
--   is valid. (In LITE projection.)
vsiCountry :: Lens' VolumeSaleInfo (Maybe Text)

-- | The date on which this book is available for sale.
vsiOnSaleDate :: Lens' VolumeSaleInfo (Maybe UTCTime)

-- | Suggested retail price. (In LITE projection.)
vsiListPrice :: Lens' VolumeSaleInfo (Maybe VolumeSaleInfoListPrice)

-- | 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.)
vsiRetailPrice :: Lens' VolumeSaleInfo (Maybe VolumeSaleInfoRetailPrice)

-- | Offers available for this volume (sales and rentals).
vsiOffers :: Lens' VolumeSaleInfo [VolumeSaleInfoOffersItem]

-- | URL to purchase this volume on the Google Books site. (In LITE
--   projection)
vsiBuyLink :: Lens' VolumeSaleInfo (Maybe Text)

-- | Whether or not this volume is an eBook (can be added to the My eBooks
--   shelf).
vsiIsEbook :: Lens' VolumeSaleInfo (Maybe Bool)

-- | 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.
vsiSaleability :: Lens' VolumeSaleInfo (Maybe Text)

-- | The reason for which the book is added to the library.
data MyLibraryBookshelvesAddVolumeReason

-- | <tt>IOS_PREX</tt> Volumes added from the PREX flow on iOS.
MLBAVRIosPrex :: MyLibraryBookshelvesAddVolumeReason

-- | <tt>IOS_SEARCH</tt> Volumes added from the Search flow on iOS.
MLBAVRIosSearch :: MyLibraryBookshelvesAddVolumeReason

-- | <tt>ONBOARDING</tt> Volumes added from the Onboarding flow.
MLBAVROnboarding :: MyLibraryBookshelvesAddVolumeReason
data SeriesSeriesItem

-- | Creates a value of <a>SeriesSeriesItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssiSeriesId</a></li>
--   <li><a>ssiImageURL</a></li>
--   <li><a>ssiBannerImageURL</a></li>
--   <li><a>ssiTitle</a></li>
--   <li><a>ssiSeriesType</a></li>
--   </ul>
seriesSeriesItem :: SeriesSeriesItem
ssiSeriesId :: Lens' SeriesSeriesItem (Maybe Text)
ssiImageURL :: Lens' SeriesSeriesItem (Maybe Text)
ssiBannerImageURL :: Lens' SeriesSeriesItem (Maybe Text)
ssiTitle :: Lens' SeriesSeriesItem (Maybe Text)
ssiSeriesType :: Lens' SeriesSeriesItem (Maybe Text)
data Metadata

-- | Creates a value of <a>Metadata</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mKind</a></li>
--   <li><a>mItems</a></li>
--   </ul>
metadata :: Metadata

-- | Resource type.
mKind :: Lens' Metadata Text

-- | A list of offline dictionary metadata.
mItems :: Lens' Metadata [MetadataItemsItem]

-- | What layers exist in this volume and high level information about
--   them.
--   
--   <i>See:</i> <a>volumeLayerInfo</a> smart constructor.
data VolumeLayerInfo

-- | Creates a value of <a>VolumeLayerInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vliLayers</a></li>
--   </ul>
volumeLayerInfo :: VolumeLayerInfo

-- | A layer should appear here if and only if the layer exists for this
--   book.
vliLayers :: Lens' VolumeLayerInfo [VolumeLayerInfoLayersItem]

-- | Physical dimensions of this volume.
--   
--   <i>See:</i> <a>volumeVolumeInfoDimensions</a> smart constructor.
data VolumeVolumeInfoDimensions

-- | Creates a value of <a>VolumeVolumeInfoDimensions</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vvidHeight</a></li>
--   <li><a>vvidWidth</a></li>
--   <li><a>vvidThickness</a></li>
--   </ul>
volumeVolumeInfoDimensions :: VolumeVolumeInfoDimensions

-- | Height or length of this volume (in cm).
vvidHeight :: Lens' VolumeVolumeInfoDimensions (Maybe Text)

-- | Width of this volume (in cm).
vvidWidth :: Lens' VolumeVolumeInfoDimensions (Maybe Text)

-- | Thickness of this volume (in cm).
vvidThickness :: Lens' VolumeVolumeInfoDimensions (Maybe Text)
data RequestAccess

-- | Creates a value of <a>RequestAccess</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>raConcurrentAccess</a></li>
--   <li><a>raKind</a></li>
--   <li><a>raDownloadAccess</a></li>
--   </ul>
requestAccess :: RequestAccess

-- | A concurrent access response.
raConcurrentAccess :: Lens' RequestAccess (Maybe ConcurrentAccessRestriction)

-- | Resource type.
raKind :: Lens' RequestAccess Text

-- | A download access response.
raDownloadAccess :: Lens' RequestAccess (Maybe DownloadAccessRestriction)

-- | Selection ranges sent from the client.
--   
--   <i>See:</i> <a>annotationClientVersionRanges</a> smart constructor.
data AnnotationClientVersionRanges

-- | Creates a value of <a>AnnotationClientVersionRanges</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>acvrGbImageRange</a></li>
--   <li><a>acvrContentVersion</a></li>
--   <li><a>acvrImageCfiRange</a></li>
--   <li><a>acvrGbTextRange</a></li>
--   <li><a>acvrCfiRange</a></li>
--   </ul>
annotationClientVersionRanges :: AnnotationClientVersionRanges

-- | Range in GB image format for this annotation sent by client.
acvrGbImageRange :: Lens' AnnotationClientVersionRanges (Maybe BooksAnnotationsRange)

-- | Content version the client sent in.
acvrContentVersion :: Lens' AnnotationClientVersionRanges (Maybe Text)

-- | Range in image CFI format for this annotation sent by client.
acvrImageCfiRange :: Lens' AnnotationClientVersionRanges (Maybe BooksAnnotationsRange)

-- | Range in GB text format for this annotation sent by client.
acvrGbTextRange :: Lens' AnnotationClientVersionRanges (Maybe BooksAnnotationsRange)

-- | Range in CFI format for this annotation sent by client.
acvrCfiRange :: Lens' AnnotationClientVersionRanges (Maybe BooksAnnotationsRange)

-- | How the book was acquired
data VolumesMybooksListAcquireMethod

-- | <tt>FAMILY_SHARED</tt> Books acquired via Family Sharing
FamilyShared :: VolumesMybooksListAcquireMethod

-- | <tt>PREORDERED</tt> Preordered books (not yet available)
PreOrdered :: VolumesMybooksListAcquireMethod

-- | <tt>PREVIOUSLY_RENTED</tt> User-rented books past their expiration
--   time
PreviouslyRented :: VolumesMybooksListAcquireMethod

-- | <tt>PUBLIC_DOMAIN</tt> Public domain books
PublicDomain :: VolumesMybooksListAcquireMethod

-- | <tt>PURCHASED</tt> Purchased books
Purchased :: VolumesMybooksListAcquireMethod

-- | <tt>RENTED</tt> User-rented books
Rented :: VolumesMybooksListAcquireMethod

-- | <tt>SAMPLE</tt> Sample books
Sample :: VolumesMybooksListAcquireMethod

-- | <tt>UPLOADED</tt> User uploaded books
Uploaded :: VolumesMybooksListAcquireMethod
data DictlayerDataDictWordsItemSensesItemDefinitionsItem

-- | Creates a value of
--   <a>DictlayerDataDictWordsItemSensesItemDefinitionsItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwisidiDefinition</a></li>
--   <li><a>dddwisidiExamples</a></li>
--   </ul>
dictlayerDataDictWordsItemSensesItemDefinitionsItem :: DictlayerDataDictWordsItemSensesItemDefinitionsItem
dddwisidiDefinition :: Lens' DictlayerDataDictWordsItemSensesItemDefinitionsItem (Maybe Text)
dddwisidiExamples :: Lens' DictlayerDataDictWordsItemSensesItemDefinitionsItem [DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem]
data VolumeLayerInfoLayersItem

-- | Creates a value of <a>VolumeLayerInfoLayersItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vliliVolumeAnnotationsVersion</a></li>
--   <li><a>vliliLayerId</a></li>
--   </ul>
volumeLayerInfoLayersItem :: VolumeLayerInfoLayersItem

-- | 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.
vliliVolumeAnnotationsVersion :: Lens' VolumeLayerInfoLayersItem (Maybe Text)

-- | The layer id of this layer (e.g. "geo").
vliliLayerId :: Lens' VolumeLayerInfoLayersItem (Maybe Text)

-- | Selection ranges for the most recent content version.
--   
--   <i>See:</i> <a>annotationCurrentVersionRanges</a> smart constructor.
data AnnotationCurrentVersionRanges

-- | Creates a value of <a>AnnotationCurrentVersionRanges</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aGbImageRange</a></li>
--   <li><a>aContentVersion</a></li>
--   <li><a>aImageCfiRange</a></li>
--   <li><a>aGbTextRange</a></li>
--   <li><a>aCfiRange</a></li>
--   </ul>
annotationCurrentVersionRanges :: AnnotationCurrentVersionRanges

-- | Range in GB image format for this annotation for version above.
aGbImageRange :: Lens' AnnotationCurrentVersionRanges (Maybe BooksAnnotationsRange)

-- | Content version applicable to ranges below.
aContentVersion :: Lens' AnnotationCurrentVersionRanges (Maybe Text)

-- | Range in image CFI format for this annotation for version above.
aImageCfiRange :: Lens' AnnotationCurrentVersionRanges (Maybe BooksAnnotationsRange)

-- | Range in GB text format for this annotation for version above.
aGbTextRange :: Lens' AnnotationCurrentVersionRanges (Maybe BooksAnnotationsRange)

-- | Range in CFI format for this annotation for version above.
aCfiRange :: Lens' AnnotationCurrentVersionRanges (Maybe BooksAnnotationsRange)

-- | The maximum allowed maturity rating of returned recommendations. Books
--   with a higher maturity rating are filtered out.
data PersonalizedstreamGetMaxAllowedMaturityRating

-- | <tt>mature</tt> Show books which are rated mature or lower.
PGMAMRMature :: PersonalizedstreamGetMaxAllowedMaturityRating

-- | <tt>not-mature</tt> Show books which are rated not mature.
PGMAMRNotMature :: PersonalizedstreamGetMaxAllowedMaturityRating

-- | Restrict to books or magazines.
data VolumesListPrintType

-- | <tt>all</tt> All volume content types.
All :: VolumesListPrintType

-- | <tt>books</tt> Just books.
Books :: VolumesListPrintType

-- | <tt>magazines</tt> Just magazines.
Magazines :: VolumesListPrintType

-- | Information about pdf content. (In LITE projection.)
--   
--   <i>See:</i> <a>volumeAccessInfoPdf</a> smart constructor.
data VolumeAccessInfoPdf

-- | Creates a value of <a>VolumeAccessInfoPdf</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vaipAcsTokenLink</a></li>
--   <li><a>vaipIsAvailable</a></li>
--   <li><a>vaipDownloadLink</a></li>
--   </ul>
volumeAccessInfoPdf :: VolumeAccessInfoPdf

-- | URL to retrieve ACS token for pdf download. (In LITE projection.)
vaipAcsTokenLink :: Lens' VolumeAccessInfoPdf (Maybe Text)

-- | Is a scanned image pdf available either as public domain or for
--   purchase. (In LITE projection.)
vaipIsAvailable :: Lens' VolumeAccessInfoPdf (Maybe Bool)

-- | URL to download pdf. (In LITE projection.)
vaipDownloadLink :: Lens' VolumeAccessInfoPdf (Maybe Text)
data DictlayerDataDictWordsItemExamplesItemSource

-- | Creates a value of <a>DictlayerDataDictWordsItemExamplesItemSource</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwieisURL</a></li>
--   <li><a>dddwieisAttribution</a></li>
--   </ul>
dictlayerDataDictWordsItemExamplesItemSource :: DictlayerDataDictWordsItemExamplesItemSource
dddwieisURL :: Lens' DictlayerDataDictWordsItemExamplesItemSource (Maybe Text)
dddwieisAttribution :: Lens' DictlayerDataDictWordsItemExamplesItemSource (Maybe Text)

-- | Information about epub content. (In LITE projection.)
--   
--   <i>See:</i> <a>volumeAccessInfoEpub</a> smart constructor.
data VolumeAccessInfoEpub

-- | Creates a value of <a>VolumeAccessInfoEpub</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vaieAcsTokenLink</a></li>
--   <li><a>vaieIsAvailable</a></li>
--   <li><a>vaieDownloadLink</a></li>
--   </ul>
volumeAccessInfoEpub :: VolumeAccessInfoEpub

-- | URL to retrieve ACS token for epub download. (In LITE projection.)
vaieAcsTokenLink :: Lens' VolumeAccessInfoEpub (Maybe Text)

-- | Is a flowing text epub available either as public domain or for
--   purchase. (In LITE projection.)
vaieIsAvailable :: Lens' VolumeAccessInfoEpub (Maybe Bool)

-- | URL to download epub. (In LITE projection.)
vaieDownloadLink :: Lens' VolumeAccessInfoEpub (Maybe Text)
data ReadingPosition

-- | Creates a value of <a>ReadingPosition</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rpEpubCfiPosition</a></li>
--   <li><a>rpKind</a></li>
--   <li><a>rpGbImagePosition</a></li>
--   <li><a>rpPdfPosition</a></li>
--   <li><a>rpVolumeId</a></li>
--   <li><a>rpUpdated</a></li>
--   <li><a>rpGbTextPosition</a></li>
--   </ul>
readingPosition :: ReadingPosition

-- | Position in an EPUB as a CFI.
rpEpubCfiPosition :: Lens' ReadingPosition (Maybe Text)

-- | Resource type for a reading position.
rpKind :: Lens' ReadingPosition Text

-- | Position in a volume for image-based content.
rpGbImagePosition :: Lens' ReadingPosition (Maybe Text)

-- | Position in a PDF file.
rpPdfPosition :: Lens' ReadingPosition (Maybe Text)

-- | Volume id associated with this reading position.
rpVolumeId :: Lens' ReadingPosition (Maybe Text)

-- | Timestamp when this reading position was last updated (formatted UTC
--   timestamp with millisecond resolution).
rpUpdated :: Lens' ReadingPosition (Maybe UTCTime)

-- | Position in a volume for text-based content.
rpGbTextPosition :: Lens' ReadingPosition (Maybe Text)
data VolumeSaleInfoOffersItem

-- | Creates a value of <a>VolumeSaleInfoOffersItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsioiFinskyOfferType</a></li>
--   <li><a>vsioiRentalDuration</a></li>
--   <li><a>vsioiListPrice</a></li>
--   <li><a>vsioiRetailPrice</a></li>
--   <li><a>vsioiGiftable</a></li>
--   </ul>
volumeSaleInfoOffersItem :: VolumeSaleInfoOffersItem

-- | The finsky offer type (e.g., PURCHASE=0 RENTAL=3)
vsioiFinskyOfferType :: Lens' VolumeSaleInfoOffersItem (Maybe Int32)

-- | The rental duration (for rental offers only).
vsioiRentalDuration :: Lens' VolumeSaleInfoOffersItem (Maybe VolumeSaleInfoOffersItemRentalDuration)

-- | Offer list (=undiscounted) price in Micros.
vsioiListPrice :: Lens' VolumeSaleInfoOffersItem (Maybe VolumeSaleInfoOffersItemListPrice)

-- | Offer retail (=discounted) price in Micros
vsioiRetailPrice :: Lens' VolumeSaleInfoOffersItem (Maybe VolumeSaleInfoOffersItemRetailPrice)

-- | Indicates whether the offer is giftable.
vsioiGiftable :: Lens' VolumeSaleInfoOffersItem (Maybe Bool)
data DictlayerDataDict

-- | Creates a value of <a>DictlayerDataDict</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddSource</a></li>
--   <li><a>dddWords</a></li>
--   </ul>
dictlayerDataDict :: DictlayerDataDict

-- | The source, url and attribution for this dictionary data.
dddSource :: Lens' DictlayerDataDict (Maybe DictlayerDataDictSource)
dddWords :: Lens' DictlayerDataDict [DictlayerDataDictWordsItem]
data DictlayerDataDictWordsItemSensesItem

-- | Creates a value of <a>DictlayerDataDictWordsItemSensesItem</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwisiPronunciationURL</a></li>
--   <li><a>dddwisiConjugations</a></li>
--   <li><a>dddwisiPronunciation</a></li>
--   <li><a>dddwisiSynonyms</a></li>
--   <li><a>dddwisiSource</a></li>
--   <li><a>dddwisiPartOfSpeech</a></li>
--   <li><a>dddwisiDefinitions</a></li>
--   <li><a>dddwisiSyllabification</a></li>
--   </ul>
dictlayerDataDictWordsItemSensesItem :: DictlayerDataDictWordsItemSensesItem
dddwisiPronunciationURL :: Lens' DictlayerDataDictWordsItemSensesItem (Maybe Text)
dddwisiConjugations :: Lens' DictlayerDataDictWordsItemSensesItem [DictlayerDataDictWordsItemSensesItemConjugationsItem]
dddwisiPronunciation :: Lens' DictlayerDataDictWordsItemSensesItem (Maybe Text)
dddwisiSynonyms :: Lens' DictlayerDataDictWordsItemSensesItem [DictlayerDataDictWordsItemSensesItemSynonymsItem]
dddwisiSource :: Lens' DictlayerDataDictWordsItemSensesItem (Maybe DictlayerDataDictWordsItemSensesItemSource)
dddwisiPartOfSpeech :: Lens' DictlayerDataDictWordsItemSensesItem (Maybe Text)
dddwisiDefinitions :: Lens' DictlayerDataDictWordsItemSensesItem [DictlayerDataDictWordsItemSensesItemDefinitionsItem]
dddwisiSyllabification :: Lens' DictlayerDataDictWordsItemSensesItem (Maybe Text)

-- | Recommendation related information for this volume.
--   
--   <i>See:</i> <a>volumeRecommendedInfo</a> smart constructor.
data VolumeRecommendedInfo

-- | Creates a value of <a>VolumeRecommendedInfo</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vriExplanation</a></li>
--   </ul>
volumeRecommendedInfo :: VolumeRecommendedInfo

-- | A text explaining why this volume is recommended.
vriExplanation :: Lens' VolumeRecommendedInfo (Maybe Text)
data Offers

-- | Creates a value of <a>Offers</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oKind</a></li>
--   <li><a>oItems</a></li>
--   </ul>
offers :: Offers

-- | Resource type.
oKind :: Lens' Offers Text

-- | A list of offers.
oItems :: Lens' Offers [OffersItemsItem]

-- | The processing state of the user uploaded volumes to be returned.
--   Applicable only if the UPLOADED is specified in the acquireMethod.
data VolumesMybooksListProcessingState

-- | <tt>COMPLETED_FAILED</tt> The volume processing hase failed.
VMLPSCompletedFailed :: VolumesMybooksListProcessingState

-- | <tt>COMPLETED_SUCCESS</tt> The volume processing was completed.
VMLPSCompletedSuccess :: VolumesMybooksListProcessingState

-- | <tt>RUNNING</tt> The volume processing is not completed.
VMLPSRunning :: VolumesMybooksListProcessingState
data Discoveryclusters

-- | Creates a value of <a>Discoveryclusters</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dKind</a></li>
--   <li><a>dTotalClusters</a></li>
--   <li><a>dClusters</a></li>
--   </ul>
discoveryclusters :: Discoveryclusters

-- | Resorce type.
dKind :: Lens' Discoveryclusters Text
dTotalClusters :: Lens' Discoveryclusters (Maybe Int32)
dClusters :: Lens' Discoveryclusters [DiscoveryclustersClustersItem]
data VolumeseriesInfoVolumeSeriesItem

-- | Creates a value of <a>VolumeseriesInfoVolumeSeriesItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vivsiSeriesId</a></li>
--   <li><a>vivsiSeriesBookType</a></li>
--   <li><a>vivsiOrderNumber</a></li>
--   <li><a>vivsiIssue</a></li>
--   </ul>
volumeseriesInfoVolumeSeriesItem :: VolumeseriesInfoVolumeSeriesItem

-- | The series id.
vivsiSeriesId :: Lens' VolumeseriesInfoVolumeSeriesItem (Maybe Text)

-- | The book type in the context of series. Examples - Single Issue,
--   Collection Edition, etc.
vivsiSeriesBookType :: Lens' VolumeseriesInfoVolumeSeriesItem (Maybe Text)

-- | The book order number in the series.
vivsiOrderNumber :: Lens' VolumeseriesInfoVolumeSeriesItem (Maybe Int32)

-- | List of issues. Applicable only for Collection Edition and Omnibus.
vivsiIssue :: Lens' VolumeseriesInfoVolumeSeriesItem [VolumeseriesInfoVolumeSeriesItemIssueItem]

-- | User settings in sub-objects, each for different purposes.
--   
--   <i>See:</i> <a>userSettingsNotesExport</a> smart constructor.
data UserSettingsNotesExport

-- | Creates a value of <a>UserSettingsNotesExport</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usneFolderName</a></li>
--   <li><a>usneIsEnabled</a></li>
--   </ul>
userSettingsNotesExport :: UserSettingsNotesExport
usneFolderName :: Lens' UserSettingsNotesExport (Maybe Text)
usneIsEnabled :: Lens' UserSettingsNotesExport (Maybe Bool)
data ConcurrentAccessRestriction

-- | Creates a value of <a>ConcurrentAccessRestriction</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>carMaxConcurrentDevices</a></li>
--   <li><a>carSignature</a></li>
--   <li><a>carTimeWindowSeconds</a></li>
--   <li><a>carKind</a></li>
--   <li><a>carReasonCode</a></li>
--   <li><a>carVolumeId</a></li>
--   <li><a>carRestricted</a></li>
--   <li><a>carSource</a></li>
--   <li><a>carDeviceAllowed</a></li>
--   <li><a>carMessage</a></li>
--   <li><a>carNonce</a></li>
--   </ul>
concurrentAccessRestriction :: ConcurrentAccessRestriction

-- | The maximum number of concurrent access licenses for this volume.
carMaxConcurrentDevices :: Lens' ConcurrentAccessRestriction (Maybe Int32)

-- | Response signature.
carSignature :: Lens' ConcurrentAccessRestriction (Maybe Text)

-- | Time in seconds for license auto-expiration.
carTimeWindowSeconds :: Lens' ConcurrentAccessRestriction (Maybe Int32)

-- | Resource type.
carKind :: Lens' ConcurrentAccessRestriction Text

-- | Error/warning reason code.
carReasonCode :: Lens' ConcurrentAccessRestriction (Maybe Text)

-- | Identifies the volume for which this entry applies.
carVolumeId :: Lens' ConcurrentAccessRestriction (Maybe Text)

-- | Whether this volume has any concurrent access restrictions.
carRestricted :: Lens' ConcurrentAccessRestriction (Maybe Bool)

-- | Client app identifier for verification. Download access and
--   client-validation only.
carSource :: Lens' ConcurrentAccessRestriction (Maybe Text)

-- | Whether access is granted for this (user, device, volume).
carDeviceAllowed :: Lens' ConcurrentAccessRestriction (Maybe Bool)

-- | Error/warning message.
carMessage :: Lens' ConcurrentAccessRestriction (Maybe Text)

-- | Client nonce for verification. Download access and client-validation
--   only.
carNonce :: Lens' ConcurrentAccessRestriction (Maybe Text)
data Volumes

-- | Creates a value of <a>Volumes</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>v1TotalItems</a></li>
--   <li><a>v1Kind</a></li>
--   <li><a>v1Items</a></li>
--   </ul>
volumes :: Volumes

-- | Total number of volumes found. This might be greater than the number
--   of volumes returned in this response if results have been paginated.
v1TotalItems :: Lens' Volumes (Maybe Int32)

-- | Resource type.
v1Kind :: Lens' Volumes Text

-- | A list of volumes.
v1Items :: Lens' Volumes [Volume]
data Bookshelves

-- | Creates a value of <a>Bookshelves</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>booKind</a></li>
--   <li><a>booItems</a></li>
--   </ul>
bookshelves :: Bookshelves

-- | Resource type.
booKind :: Lens' Bookshelves Text

-- | A list of bookshelves.
booItems :: Lens' Bookshelves [Bookshelf]

-- | The type of access license to request. If not specified, the default
--   is BOTH.
data MyConfigRequestAccessLicenseTypes

-- | <tt>BOTH</tt> Both concurrent and download licenses.
Both :: MyConfigRequestAccessLicenseTypes

-- | <tt>CONCURRENT</tt> Concurrent access license.
Concurrent :: MyConfigRequestAccessLicenseTypes

-- | <tt>DOWNLOAD</tt> Offline download access license.
Download :: MyConfigRequestAccessLicenseTypes

-- | The source, url and attribution for this dictionary data.
--   
--   <i>See:</i> <a>dictlayerDataDictSource</a> smart constructor.
data DictlayerDataDictSource

-- | Creates a value of <a>DictlayerDataDictSource</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddsURL</a></li>
--   <li><a>dddsAttribution</a></li>
--   </ul>
dictlayerDataDictSource :: DictlayerDataDictSource
dddsURL :: Lens' DictlayerDataDictSource (Maybe Text)
dddsAttribution :: Lens' DictlayerDataDictSource (Maybe Text)
data DownloadAccesses

-- | Creates a value of <a>DownloadAccesses</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>daKind</a></li>
--   <li><a>daDownloadAccessList</a></li>
--   </ul>
downloadAccesses :: DownloadAccesses

-- | Resource type.
daKind :: Lens' DownloadAccesses Text

-- | A list of download access responses.
daDownloadAccessList :: Lens' DownloadAccesses [DownloadAccessRestriction]
data GeolayerDataGeoViewportHi

-- | Creates a value of <a>GeolayerDataGeoViewportHi</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdgvhLatitude</a></li>
--   <li><a>gdgvhLongitude</a></li>
--   </ul>
geolayerDataGeoViewportHi :: GeolayerDataGeoViewportHi
gdgvhLatitude :: Lens' GeolayerDataGeoViewportHi (Maybe Double)
gdgvhLongitude :: Lens' GeolayerDataGeoViewportHi (Maybe Double)

-- | Action that caused this reading position to be set.
data MyLibraryReadingPositionsSetPositionAction

-- | <tt>bookmark</tt> User chose bookmark within volume.
Bookmark :: MyLibraryReadingPositionsSetPositionAction

-- | <tt>chapter</tt> User selected chapter from list.
Chapter :: MyLibraryReadingPositionsSetPositionAction

-- | <tt>next-page</tt> Next page event.
NextPage :: MyLibraryReadingPositionsSetPositionAction

-- | <tt>prev-page</tt> Previous page event.
PrevPage :: MyLibraryReadingPositionsSetPositionAction

-- | <tt>scroll</tt> User navigated to page.
Scroll :: MyLibraryReadingPositionsSetPositionAction

-- | <tt>search</tt> User chose search results within volume.
Search :: MyLibraryReadingPositionsSetPositionAction

-- | General volume information.
--   
--   <i>See:</i> <a>volumeVolumeInfo</a> smart constructor.
data VolumeVolumeInfo

-- | Creates a value of <a>VolumeVolumeInfo</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vviImageLinks</a></li>
--   <li><a>vviPanelizationSummary</a></li>
--   <li><a>vviAverageRating</a></li>
--   <li><a>vviRatingsCount</a></li>
--   <li><a>vviCanonicalVolumeLink</a></li>
--   <li><a>vviReadingModes</a></li>
--   <li><a>vviIndustryIdentifiers</a></li>
--   <li><a>vviSeriesInfo</a></li>
--   <li><a>vviPrintedPageCount</a></li>
--   <li><a>vviMainCategory</a></li>
--   <li><a>vviContentVersion</a></li>
--   <li><a>vviSamplePageCount</a></li>
--   <li><a>vviCategories</a></li>
--   <li><a>vviAuthors</a></li>
--   <li><a>vviAllowAnonLogging</a></li>
--   <li><a>vviSubtitle</a></li>
--   <li><a>vviPublishedDate</a></li>
--   <li><a>vviMaturityRating</a></li>
--   <li><a>vviPreviewLink</a></li>
--   <li><a>vviLanguage</a></li>
--   <li><a>vviTitle</a></li>
--   <li><a>vviPageCount</a></li>
--   <li><a>vviDimensions</a></li>
--   <li><a>vviInfoLink</a></li>
--   <li><a>vviPublisher</a></li>
--   <li><a>vviDescription</a></li>
--   <li><a>vviPrintType</a></li>
--   </ul>
volumeVolumeInfo :: VolumeVolumeInfo

-- | A list of image links for all the sizes that are available. (In LITE
--   projection.)
vviImageLinks :: Lens' VolumeVolumeInfo (Maybe VolumeVolumeInfoImageLinks)

-- | A top-level summary of the panelization info in this volume.
vviPanelizationSummary :: Lens' VolumeVolumeInfo (Maybe VolumeVolumeInfoPanelizationSummary)

-- | The mean review rating for this volume. (min = 1.0, max = 5.0)
vviAverageRating :: Lens' VolumeVolumeInfo (Maybe Double)

-- | The number of review ratings for this volume.
vviRatingsCount :: Lens' VolumeVolumeInfo (Maybe Int32)

-- | Canonical URL for a volume. (In LITE projection.)
vviCanonicalVolumeLink :: Lens' VolumeVolumeInfo (Maybe Text)

-- | The reading modes available for this volume.
vviReadingModes :: Lens' VolumeVolumeInfo (Maybe JSONValue)

-- | Industry standard identifiers for this volume.
vviIndustryIdentifiers :: Lens' VolumeVolumeInfo [VolumeVolumeInfoIndustryIdentifiersItem]
vviSeriesInfo :: Lens' VolumeVolumeInfo (Maybe VolumeseriesInfo)

-- | Total number of printed pages in generated pdf representation.
vviPrintedPageCount :: Lens' VolumeVolumeInfo (Maybe Int32)

-- | The main category to which this volume belongs. It will be the
--   category from the categories list returned below that has the highest
--   weight.
vviMainCategory :: Lens' VolumeVolumeInfo (Maybe Text)

-- | An identifier for the version of the volume content (text &amp;
--   images). (In LITE projection)
vviContentVersion :: Lens' VolumeVolumeInfo (Maybe Text)

-- | Total number of sample pages as per publisher metadata.
vviSamplePageCount :: Lens' VolumeVolumeInfo (Maybe Int32)

-- | A list of subject categories, such as "Fiction", "Suspense", etc.
vviCategories :: Lens' VolumeVolumeInfo [Text]

-- | The names of the authors and/or editors for this volume. (In LITE
--   projection)
vviAuthors :: Lens' VolumeVolumeInfo [Text]

-- | Whether anonymous logging should be allowed.
vviAllowAnonLogging :: Lens' VolumeVolumeInfo (Maybe Bool)

-- | Volume subtitle. (In LITE projection.)
vviSubtitle :: Lens' VolumeVolumeInfo (Maybe Text)

-- | Date of publication. (In LITE projection.)
vviPublishedDate :: Lens' VolumeVolumeInfo (Maybe Text)
vviMaturityRating :: Lens' VolumeVolumeInfo (Maybe Text)

-- | URL to preview this volume on the Google Books site.
vviPreviewLink :: Lens' VolumeVolumeInfo (Maybe Text)

-- | Best language for this volume (based on content). It is the two-letter
--   ISO 639-1 code such as 'fr', 'en', etc.
vviLanguage :: Lens' VolumeVolumeInfo (Maybe Text)

-- | Volume title. (In LITE projection.)
vviTitle :: Lens' VolumeVolumeInfo (Maybe Text)

-- | Total number of pages as per publisher metadata.
vviPageCount :: Lens' VolumeVolumeInfo (Maybe Int32)

-- | Physical dimensions of this volume.
vviDimensions :: Lens' VolumeVolumeInfo (Maybe VolumeVolumeInfoDimensions)

-- | URL to view information about this volume on the Google Books site.
--   (In LITE projection)
vviInfoLink :: Lens' VolumeVolumeInfo (Maybe Text)

-- | Publisher of this volume. (In LITE projection.)
vviPublisher :: Lens' VolumeVolumeInfo (Maybe Text)

-- | 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.)
vviDescription :: Lens' VolumeVolumeInfo (Maybe Text)

-- | Type of publication of this volume. Possible values are BOOK or
--   MAGAZINE.
vviPrintType :: Lens' VolumeVolumeInfo (Maybe Text)
data MetadataItemsItem

-- | Creates a value of <a>MetadataItemsItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>miiSize</a></li>
--   <li><a>miiVersion</a></li>
--   <li><a>miiLanguage</a></li>
--   <li><a>miiDownloadURL</a></li>
--   <li><a>miiEncryptedKey</a></li>
--   </ul>
metadataItemsItem :: MetadataItemsItem
miiSize :: Lens' MetadataItemsItem (Maybe Int64)
miiVersion :: Lens' MetadataItemsItem (Maybe Int64)
miiLanguage :: Lens' MetadataItemsItem (Maybe Text)
miiDownloadURL :: Lens' MetadataItemsItem (Maybe Text)
miiEncryptedKey :: Lens' MetadataItemsItem (Maybe Text)
data DictlayerDataDictWordsItemSensesItemSource

-- | Creates a value of <a>DictlayerDataDictWordsItemSensesItemSource</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dddwisisURL</a></li>
--   <li><a>dddwisisAttribution</a></li>
--   </ul>
dictlayerDataDictWordsItemSensesItemSource :: DictlayerDataDictWordsItemSensesItemSource
dddwisisURL :: Lens' DictlayerDataDictWordsItemSensesItemSource (Maybe Text)
dddwisisAttribution :: Lens' DictlayerDataDictWordsItemSensesItemSource (Maybe Text)

-- | Offer retail (=discounted) price in Micros
--   
--   <i>See:</i> <a>volumeSaleInfoOffersItemRetailPrice</a> smart
--   constructor.
data VolumeSaleInfoOffersItemRetailPrice

-- | Creates a value of <a>VolumeSaleInfoOffersItemRetailPrice</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vsioirpCurrencyCode</a></li>
--   <li><a>vsioirpAmountInMicros</a></li>
--   </ul>
volumeSaleInfoOffersItemRetailPrice :: VolumeSaleInfoOffersItemRetailPrice
vsioirpCurrencyCode :: Lens' VolumeSaleInfoOffersItemRetailPrice (Maybe Text)
vsioirpAmountInMicros :: Lens' VolumeSaleInfoOffersItemRetailPrice (Maybe Double)

-- | Information on the ability to share with the family.
--   
--   <i>See:</i> <a>volumeUserInfoFamilySharing</a> smart constructor.
data VolumeUserInfoFamilySharing

-- | Creates a value of <a>VolumeUserInfoFamilySharing</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vuifsFamilyRole</a></li>
--   <li><a>vuifsIsSharingAllowed</a></li>
--   <li><a>vuifsIsSharingDisabledByFop</a></li>
--   </ul>
volumeUserInfoFamilySharing :: VolumeUserInfoFamilySharing

-- | The role of the user in the family.
vuifsFamilyRole :: Lens' VolumeUserInfoFamilySharing (Maybe Text)

-- | 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.
vuifsIsSharingAllowed :: Lens' VolumeUserInfoFamilySharing (Maybe Bool)

-- | Whether or not sharing this volume is temporarily disabled due to
--   issues with the Family Wallet.
vuifsIsSharingDisabledByFop :: Lens' VolumeUserInfoFamilySharing (Maybe Bool)
data UserSettingsNotificationMoreFromSeries

-- | Creates a value of <a>UserSettingsNotificationMoreFromSeries</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usnmfsOptedState</a></li>
--   </ul>
userSettingsNotificationMoreFromSeries :: UserSettingsNotificationMoreFromSeries
usnmfsOptedState :: Lens' UserSettingsNotificationMoreFromSeries (Maybe Text)
data VolumeVolumeInfoIndustryIdentifiersItem

-- | Creates a value of <a>VolumeVolumeInfoIndustryIdentifiersItem</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vviiiiIdentifier</a></li>
--   <li><a>vviiiiType</a></li>
--   </ul>
volumeVolumeInfoIndustryIdentifiersItem :: VolumeVolumeInfoIndustryIdentifiersItem

-- | Industry specific volume identifier.
vviiiiIdentifier :: Lens' VolumeVolumeInfoIndustryIdentifiersItem (Maybe Text)

-- | Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.
vviiiiType :: Lens' VolumeVolumeInfoIndustryIdentifiersItem (Maybe Text)
data BooksAnnotationsRange

-- | Creates a value of <a>BooksAnnotationsRange</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>barStartOffSet</a></li>
--   <li><a>barEndOffSet</a></li>
--   <li><a>barEndPosition</a></li>
--   <li><a>barStartPosition</a></li>
--   </ul>
booksAnnotationsRange :: BooksAnnotationsRange

-- | The offset from the starting position.
barStartOffSet :: Lens' BooksAnnotationsRange (Maybe Text)

-- | The offset from the ending position.
barEndOffSet :: Lens' BooksAnnotationsRange (Maybe Text)

-- | The ending position for the range.
barEndPosition :: Lens' BooksAnnotationsRange (Maybe Text)

-- | The starting position for the range.
barStartPosition :: Lens' BooksAnnotationsRange (Maybe Text)

-- | The maximum allowed maturity rating of returned recommendations. Books
--   with a higher maturity rating are filtered out.
data VolumesListMaxAllowedMaturityRating

-- | <tt>mature</tt> Show books which are rated mature or lower.
VLMAMRMature :: VolumesListMaxAllowedMaturityRating

-- | <tt>not-mature</tt> Show books which are rated not mature.
VLMAMRNotMature :: VolumesListMaxAllowedMaturityRating
data Layersummaries

-- | Creates a value of <a>Layersummaries</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>layTotalItems</a></li>
--   <li><a>layKind</a></li>
--   <li><a>layItems</a></li>
--   </ul>
layersummaries :: Layersummaries

-- | The total number of layer summaries found.
layTotalItems :: Lens' Layersummaries (Maybe Int32)

-- | Resource type.
layKind :: Lens' Layersummaries Text

-- | A list of layer summary items.
layItems :: Lens' Layersummaries [Layersummary]
