packages feed

gogol-books (empty) → 0.0.1

raw patch · 54 files changed

+16417/−0 lines, 54 filesdep +basedep +gogol-coresetup-changed

Dependencies added: base, gogol-core

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,28 @@+# gogol-books++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.0.1`+++## Description++A client library for the Google Books.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.+++## Licence++`gogol-books` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
+ Setup.hs view
@@ -0,0 +1,2 @@+import           Distribution.Simple+main = defaultMain
+ gen/Network/Google/Books.hs view
@@ -0,0 +1,1106 @@+{-# LANGUAGE DataKinds         #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators     #-}++{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module      : Network.Google.Books+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lets you search for books and manage your Google Books library.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference>+module Network.Google.Books+    (+    -- * Service Configuration+      booksService++    -- * API Declaration+    , BooksAPI++    -- * Resources++    -- ** books.bookshelves.get+    , module Network.Google.Resource.Books.Bookshelves.Get++    -- ** books.bookshelves.list+    , module Network.Google.Resource.Books.Bookshelves.List++    -- ** books.bookshelves.volumes.list+    , module Network.Google.Resource.Books.Bookshelves.Volumes.List++    -- ** books.cloudloading.addBook+    , module Network.Google.Resource.Books.CloudLoading.AddBook++    -- ** books.cloudloading.deleteBook+    , module Network.Google.Resource.Books.CloudLoading.DeleteBook++    -- ** books.cloudloading.updateBook+    , module Network.Google.Resource.Books.CloudLoading.UpdateBook++    -- ** books.dictionary.listOfflineMetadata+    , module Network.Google.Resource.Books.Dictionary.ListOfflineMetadata++    -- ** books.layers.annotationData.get+    , module Network.Google.Resource.Books.Layers.AnnotationData.Get++    -- ** books.layers.annotationData.list+    , module Network.Google.Resource.Books.Layers.AnnotationData.List++    -- ** books.layers.get+    , module Network.Google.Resource.Books.Layers.Get++    -- ** books.layers.list+    , module Network.Google.Resource.Books.Layers.List++    -- ** books.layers.volumeAnnotations.get+    , module Network.Google.Resource.Books.Layers.VolumeAnnotations.Get++    -- ** books.layers.volumeAnnotations.list+    , module Network.Google.Resource.Books.Layers.VolumeAnnotations.List++    -- ** books.myconfig.getUserSettings+    , module Network.Google.Resource.Books.MyConfig.GetUserSettings++    -- ** books.myconfig.releaseDownloadAccess+    , module Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess++    -- ** books.myconfig.requestAccess+    , module Network.Google.Resource.Books.MyConfig.RequestAccess++    -- ** books.myconfig.syncVolumeLicenses+    , module Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses++    -- ** books.myconfig.updateUserSettings+    , module Network.Google.Resource.Books.MyConfig.UpdateUserSettings++    -- ** books.mylibrary.annotations.delete+    , module Network.Google.Resource.Books.MyLibrary.Annotations.Delete++    -- ** books.mylibrary.annotations.insert+    , module Network.Google.Resource.Books.MyLibrary.Annotations.Insert++    -- ** books.mylibrary.annotations.list+    , module Network.Google.Resource.Books.MyLibrary.Annotations.List++    -- ** books.mylibrary.annotations.summary+    , module Network.Google.Resource.Books.MyLibrary.Annotations.Summary++    -- ** books.mylibrary.annotations.update+    , module Network.Google.Resource.Books.MyLibrary.Annotations.Update++    -- ** books.mylibrary.bookshelves.addVolume+    , module Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume++    -- ** books.mylibrary.bookshelves.clearVolumes+    , module Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes++    -- ** books.mylibrary.bookshelves.get+    , module Network.Google.Resource.Books.MyLibrary.Bookshelves.Get++    -- ** books.mylibrary.bookshelves.list+    , module Network.Google.Resource.Books.MyLibrary.Bookshelves.List++    -- ** books.mylibrary.bookshelves.moveVolume+    , module Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume++    -- ** books.mylibrary.bookshelves.removeVolume+    , module Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume++    -- ** books.mylibrary.bookshelves.volumes.list+    , module Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List++    -- ** books.mylibrary.readingpositions.get+    , module Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get++    -- ** books.mylibrary.readingpositions.setPosition+    , module Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition++    -- ** books.notification.get+    , module Network.Google.Resource.Books.Notification.Get++    -- ** books.onboarding.listCategories+    , module Network.Google.Resource.Books.Onboarding.ListCategories++    -- ** books.onboarding.listCategoryVolumes+    , module Network.Google.Resource.Books.Onboarding.ListCategoryVolumes++    -- ** books.personalizedstream.get+    , module Network.Google.Resource.Books.Personalizedstream.Get++    -- ** books.promooffer.accept+    , module Network.Google.Resource.Books.PromoOffer.Accept++    -- ** books.promooffer.dismiss+    , module Network.Google.Resource.Books.PromoOffer.Dismiss++    -- ** books.promooffer.get+    , module Network.Google.Resource.Books.PromoOffer.Get++    -- ** books.volumes.associated.list+    , module Network.Google.Resource.Books.Volumes.Associated.List++    -- ** books.volumes.get+    , module Network.Google.Resource.Books.Volumes.Get++    -- ** books.volumes.list+    , module Network.Google.Resource.Books.Volumes.List++    -- ** books.volumes.mybooks.list+    , module Network.Google.Resource.Books.Volumes.Mybooks.List++    -- ** books.volumes.recommended.list+    , module Network.Google.Resource.Books.Volumes.Recommended.List++    -- ** books.volumes.recommended.rate+    , module Network.Google.Resource.Books.Volumes.Recommended.Rate++    -- ** books.volumes.useruploaded.list+    , module Network.Google.Resource.Books.Volumes.UserUploaded.List++    -- * Types++    -- ** UserSettings+    , UserSettings+    , userSettings+    , usNotification+    , usKind+    , usNotesExport++    -- ** Annotations+    , Annotations+    , annotations+    , aTotalItems+    , aNextPageToken+    , aKind+    , aItems++    -- ** VolumesListProjection+    , VolumesListProjection (..)++    -- ** MyLibraryBookshelvesVolumesListProjection+    , MyLibraryBookshelvesVolumesListProjection (..)++    -- ** VolumesListOrderBy+    , VolumesListOrderBy (..)++    -- ** AnnotationsData+    , AnnotationsData+    , annotationsData+    , adTotalItems+    , adNextPageToken+    , adKind+    , adItems++    -- ** UserSettingsNotificationMoreFromAuthors+    , UserSettingsNotificationMoreFromAuthors+    , userSettingsNotificationMoreFromAuthors+    , usnmfaOptedState++    -- ** Volumeannotations+    , Volumeannotations+    , volumeannotations+    , vTotalItems+    , vNextPageToken+    , vKind+    , vItems+    , vVersion++    -- ** ReviewSource+    , ReviewSource+    , reviewSource+    , rsExtraDescription+    , rsURL+    , rsDescription++    -- ** AnnotationData+    , AnnotationData+    , annotationData+    , annEncodedData+    , annKind+    , annData+    , annSelfLink+    , annAnnotationType+    , annVolumeId+    , annId+    , annUpdated+    , annLayerId++    -- ** Volumeannotation+    , Volumeannotation+    , volumeannotation+    , volSelectedText+    , volAnnotationDataLink+    , volPageIds+    , volKind+    , volData+    , volSelfLink+    , volAnnotationType+    , volAnnotationDataId+    , volContentRanges+    , volVolumeId+    , volId+    , volDeleted+    , volUpdated+    , volLayerId++    -- ** BooksCloudLoadingResource+    , BooksCloudLoadingResource+    , booksCloudLoadingResource+    , bclrProcessingState+    , bclrVolumeId+    , bclrAuthor+    , bclrTitle++    -- ** Annotation+    , Annotation+    , annotation+    , aaSelectedText+    , aaLayerSummary+    , aaHighlightStyle+    , aaClientVersionRanges+    , aaPageIds+    , aaKind+    , aaData+    , aaCreated+    , aaAfterSelectedText+    , aaSelfLink+    , aaCurrentVersionRanges+    , aaVolumeId+    , aaBeforeSelectedText+    , aaId+    , aaDeleted+    , aaUpdated+    , aaLayerId++    -- ** ReviewAuthor+    , ReviewAuthor+    , reviewAuthor+    , raDisplayName++    -- ** GeolayerDataGeoViewport+    , GeolayerDataGeoViewport+    , geolayerDataGeoViewport+    , gdgvHi+    , gdgvLo++    -- ** VolumeUserInfo+    , VolumeUserInfo+    , volumeUserInfo+    , vuiCopy+    , vuiUserUploadedVolumeInfo+    , vuiIsPurchased+    , vuiEntitlementType+    , vuiAcquisitionType+    , vuiRentalState+    , vuiIsPreOrdered+    , vuiReview+    , vuiRentalPeriod+    , vuiUpdated+    , vuiIsUploaded+    , vuiIsInMyBooks+    , vuiReadingPosition++    -- ** Layersummary+    , Layersummary+    , layersummary+    , lAnnotationsDataLink+    , lAnnotationsLink+    , lKind+    , lDataCount+    , lContentVersion+    , lVolumeAnnotationsVersion+    , lAnnotationCount+    , lAnnotationTypes+    , lSelfLink+    , lVolumeId+    , lId+    , lUpdated+    , lLayerId++    -- ** VolumesListLibraryRestrict+    , VolumesListLibraryRestrict (..)++    -- ** VolumeannotationContentRanges+    , VolumeannotationContentRanges+    , volumeannotationContentRanges+    , vcrGbImageRange+    , vcrContentVersion+    , vcrGbTextRange+    , vcrCfiRange++    -- ** VolumeAccessInfo+    , VolumeAccessInfo+    , volumeAccessInfo+    , vaiWebReaderLink+    , vaiCountry+    , vaiDriveImportedContentLink+    , vaiExplicitOfflineLicenseManagement+    , vaiViewability+    , vaiQuoteSharingAllowed+    , vaiEpub+    , vaiPdf+    , vaiTextToSpeechPermission+    , vaiEmbeddable+    , vaiAccessViewStatus+    , vaiDownloadAccess+    , vaiViewOrderURL+    , vaiPublicDomain++    -- ** MyLibraryBookshelvesRemoveVolumeReason+    , MyLibraryBookshelvesRemoveVolumeReason (..)++    -- ** VolumeVolumeInfoImageLinks+    , VolumeVolumeInfoImageLinks+    , volumeVolumeInfoImageLinks+    , vviilThumbnail+    , vviilSmall+    , vviilExtraLarge+    , vviilLarge+    , vviilMedium+    , vviilSmallThumbnail++    -- ** OnboardingListCategoryVolumesMaxAllowedMaturityRating+    , OnboardingListCategoryVolumesMaxAllowedMaturityRating (..)++    -- ** VolumeUserInfoUserUploadedVolumeInfo+    , VolumeUserInfoUserUploadedVolumeInfo+    , volumeUserInfoUserUploadedVolumeInfo+    , vuiuuviProcessingState++    -- ** VolumeUserInfoCopy+    , VolumeUserInfoCopy+    , volumeUserInfoCopy+    , vuicLimitType+    , vuicAllowedCharacterCount+    , vuicUpdated+    , vuicRemainingCharacterCount++    -- ** BooksVolumesRecommendedRateResponse+    , BooksVolumesRecommendedRateResponse+    , booksVolumesRecommendedRateResponse+    , bvrrrConsistencyToken++    -- ** Bookshelf+    , Bookshelf+    , bookshelf+    , bAccess+    , bVolumesLastUpdated+    , bKind+    , bCreated+    , bVolumeCount+    , bSelfLink+    , bId+    , bUpdated+    , bTitle+    , bDescription++    -- ** Notification+    , Notification+    , notification+    , nKind+    , nBody+    , nLinkURL+    , nIconURL+    , nTitle++    -- ** VolumesListDownload+    , VolumesListDownload (..)++    -- ** AnnotationsSummaryLayersItem+    , AnnotationsSummaryLayersItem+    , annotationsSummaryLayersItem+    , asliLimitType+    , asliAllowedCharacterCount+    , asliUpdated+    , asliLayerId+    , asliRemainingCharacterCount++    -- ** VolumeSaleInfoOffersItemRentalDuration+    , VolumeSaleInfoOffersItemRentalDuration+    , volumeSaleInfoOffersItemRentalDuration+    , vsioirdCount+    , vsioirdUnit++    -- ** DictlayerDataDictWordsItemExamplesItem+    , DictlayerDataDictWordsItemExamplesItem+    , dictlayerDataDictWordsItemExamplesItem+    , dddwieiText+    , dddwieiSource++    -- ** OffersItemsItem+    , OffersItemsItem+    , offersItemsItem+    , oiiItems+    , oiiArtURL+    , oiiId+    , oiiGServicesKey++    -- ** AnnotationLayerSummary+    , AnnotationLayerSummary+    , annotationLayerSummary+    , alsLimitType+    , alsAllowedCharacterCount+    , alsRemainingCharacterCount++    -- ** VolumeSearchInfo+    , VolumeSearchInfo+    , volumeSearchInfo+    , vsiTextSnippet++    -- ** AnnotationsSummary+    , AnnotationsSummary+    , annotationsSummary+    , asKind+    , asLayers++    -- ** VolumesGetProjection+    , VolumesGetProjection (..)++    -- ** Category+    , Category+    , category+    , cKind+    , cItems++    -- ** VolumesAssociatedListAssociation+    , VolumesAssociatedListAssociation (..)++    -- ** DiscoveryclustersClustersItemBanner_with_content_container+    , DiscoveryclustersClustersItemBanner_with_content_container+    , discoveryclustersClustersItemBanner_with_content_container+    , dcibFillColorArgb+    , dcibMoreButtonURL+    , dcibTextColorArgb+    , dcibMoreButtonText+    , dcibImageURL+    , dcibMaskColorArgb++    -- ** Volume+    , Volume+    , volume+    , vvUserInfo+    , vvEtag+    , vvAccessInfo+    , vvKind+    , vvSearchInfo+    , vvSelfLink+    , vvLayerInfo+    , vvSaleInfo+    , vvId+    , vvRecommendedInfo+    , vvVolumeInfo++    -- ** GeolayerDataGeoBoundaryItemItem+    , GeolayerDataGeoBoundaryItemItem+    , geolayerDataGeoBoundaryItemItem+    , gdgbiiLatitude+    , gdgbiiLongitude++    -- ** OffersItemsItemItemsItem+    , OffersItemsItemItemsItem+    , offersItemsItemItemsItem+    , oiiiiCanonicalVolumeLink+    , oiiiiCoverURL+    , oiiiiVolumeId+    , oiiiiAuthor+    , oiiiiTitle+    , oiiiiDescription++    -- ** DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource+    , DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource+    , dictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource+    , dddwisidieisURL+    , dddwisidieisAttribution++    -- ** GeolayerDataCommon+    , GeolayerDataCommon+    , geolayerDataCommon+    , gdcSnippet+    , gdcSnippetURL+    , gdcLang+    , gdcTitle+    , gdcPreviewImageURL++    -- ** GeolayerDataGeo+    , GeolayerDataGeo+    , geolayerDataGeo+    , gdgMapType+    , gdgCachePolicy+    , gdgViewport+    , gdgBoundary+    , gdgLatitude+    , gdgZoom+    , gdgCountryCode+    , gdgLongitude++    -- ** DictlayerDataDictWordsItem+    , DictlayerDataDictWordsItem+    , dictlayerDataDictWordsItem+    , dddwiSenses+    , dddwiSource+    , dddwiDerivatives+    , dddwiExamples++    -- ** CategoryItemsItem+    , CategoryItemsItem+    , categoryItemsItem+    , ciiName+    , ciiCategoryId+    , ciiBadgeURL++    -- ** DictlayerDataDictWordsItemDerivativesItemSource+    , DictlayerDataDictWordsItemDerivativesItemSource+    , dictlayerDataDictWordsItemDerivativesItemSource+    , dddwidisURL+    , dddwidisAttribution++    -- ** VolumesRecommendedRateRating+    , VolumesRecommendedRateRating (..)++    -- ** GeolayerData+    , GeolayerData+    , geolayerData+    , gdKind+    , gdGeo+    , gdCommon++    -- ** DictlayerDataDictWordsItemSource+    , DictlayerDataDictWordsItemSource+    , dictlayerDataDictWordsItemSource+    , dddwisURL+    , dddwisAttribution++    -- ** DictlayerDataDictWordsItemDerivativesItem+    , DictlayerDataDictWordsItemDerivativesItem+    , dictlayerDataDictWordsItemDerivativesItem+    , dddwidiText+    , dddwidiSource++    -- ** VolumesUserUploadedListProcessingState+    , VolumesUserUploadedListProcessingState (..)++    -- ** MyConfigSyncVolumeLicensesFeatures+    , MyConfigSyncVolumeLicensesFeatures (..)++    -- ** DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem+    , DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem+    , dictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem+    , dddwisidieiText+    , dddwisidieiSource++    -- ** DictlayerData+    , DictlayerData+    , dictlayerData+    , ddKind+    , ddDict+    , ddCommon++    -- ** VolumesAssociatedListMaxAllowedMaturityRating+    , VolumesAssociatedListMaxAllowedMaturityRating (..)++    -- ** DictlayerDataDictWordsItemSensesItemSynonymsItemSource+    , DictlayerDataDictWordsItemSensesItemSynonymsItemSource+    , dictlayerDataDictWordsItemSensesItemSynonymsItemSource+    , dddwisisisURL+    , dddwisisisAttribution++    -- ** VolumesListFilter+    , VolumesListFilter (..)++    -- ** UserSettingsNotification+    , UserSettingsNotification+    , userSettingsNotification+    , usnMoreFromAuthors++    -- ** DictlayerDataDictWordsItemSensesItemSynonymsItem+    , DictlayerDataDictWordsItemSensesItemSynonymsItem+    , dictlayerDataDictWordsItemSensesItemSynonymsItem+    , dddwisisiText+    , dddwisisiSource++    -- ** GeolayerDataGeoViewportLo+    , GeolayerDataGeoViewportLo+    , geolayerDataGeoViewportLo+    , gdgvlLatitude+    , gdgvlLongitude++    -- ** VolumesRecommendedListMaxAllowedMaturityRating+    , VolumesRecommendedListMaxAllowedMaturityRating (..)++    -- ** VolumeSaleInfoOffersItemListPrice+    , VolumeSaleInfoOffersItemListPrice+    , volumeSaleInfoOffersItemListPrice+    , vsioilpCurrencyCode+    , vsioilpAmountInMicros++    -- ** DownloadAccessRestriction+    , DownloadAccessRestriction+    , downloadAccessRestriction+    , darJustAcquired+    , darSignature+    , darKind+    , darMaxDownloadDevices+    , darDownloadsAcquired+    , darReasonCode+    , darVolumeId+    , darRestricted+    , darSource+    , darDeviceAllowed+    , darMessage+    , darNonce++    -- ** DictlayerDataCommon+    , DictlayerDataCommon+    , dictlayerDataCommon+    , ddcTitle++    -- ** DiscoveryclustersClustersItem+    , DiscoveryclustersClustersItem+    , discoveryclustersClustersItem+    , dciBannerWithContentContainer+    , dciUid+    , dciTotalVolumes+    , dciSubTitle+    , dciTitle+    , dciVolumes++    -- ** VolumeSaleInfoRetailPrice+    , VolumeSaleInfoRetailPrice+    , volumeSaleInfoRetailPrice+    , vsirpAmount+    , vsirpCurrencyCode++    -- ** VolumeSaleInfoListPrice+    , VolumeSaleInfoListPrice+    , volumeSaleInfoListPrice+    , vsilpAmount+    , vsilpCurrencyCode++    -- ** DictlayerDataDictWordsItemSensesItemConjugationsItem+    , DictlayerDataDictWordsItemSensesItemConjugationsItem+    , dictlayerDataDictWordsItemSensesItemConjugationsItem+    , dddwisiciValue+    , dddwisiciType++    -- ** Volume2+    , Volume2+    , volume2+    , voloNextPageToken+    , voloKind+    , voloItems++    -- ** Review+    , Review+    , review+    , rRating+    , rKind+    , rContent+    , rDate+    , rVolumeId+    , rAuthor+    , rSource+    , rFullTextURL+    , rTitle+    , rType++    -- ** VolumeUserInfoRentalPeriod+    , VolumeUserInfoRentalPeriod+    , volumeUserInfoRentalPeriod+    , vuirpEndUtcSec+    , vuirpStartUtcSec++    -- ** VolumeSaleInfo+    , VolumeSaleInfo+    , volumeSaleInfo+    , vsiCountry+    , vsiOnSaleDate+    , vsiListPrice+    , vsiRetailPrice+    , vsiOffers+    , vsiBuyLink+    , vsiIsEbook+    , vsiSaleability++    -- ** MyLibraryBookshelvesAddVolumeReason+    , MyLibraryBookshelvesAddVolumeReason (..)++    -- ** Metadata+    , Metadata+    , metadata+    , mKind+    , mItems++    -- ** VolumeLayerInfo+    , VolumeLayerInfo+    , volumeLayerInfo+    , vliLayers++    -- ** VolumeVolumeInfoDimensions+    , VolumeVolumeInfoDimensions+    , volumeVolumeInfoDimensions+    , vvidHeight+    , vvidWidth+    , vvidThickness++    -- ** RequestAccess+    , RequestAccess+    , requestAccess+    , raConcurrentAccess+    , raKind+    , raDownloadAccess++    -- ** AnnotationClientVersionRanges+    , AnnotationClientVersionRanges+    , annotationClientVersionRanges+    , acvrGbImageRange+    , acvrContentVersion+    , acvrImageCfiRange+    , acvrGbTextRange+    , acvrCfiRange++    -- ** VolumesMybooksListAcquireMethod+    , VolumesMybooksListAcquireMethod (..)++    -- ** DictlayerDataDictWordsItemSensesItemDefinitionsItem+    , DictlayerDataDictWordsItemSensesItemDefinitionsItem+    , dictlayerDataDictWordsItemSensesItemDefinitionsItem+    , dddwisidiDefinition+    , dddwisidiExamples++    -- ** VolumeLayerInfoLayersItem+    , VolumeLayerInfoLayersItem+    , volumeLayerInfoLayersItem+    , vliliVolumeAnnotationsVersion+    , vliliLayerId++    -- ** AnnotationCurrentVersionRanges+    , AnnotationCurrentVersionRanges+    , annotationCurrentVersionRanges+    , aGbImageRange+    , aContentVersion+    , aImageCfiRange+    , aGbTextRange+    , aCfiRange++    -- ** PersonalizedstreamGetMaxAllowedMaturityRating+    , PersonalizedstreamGetMaxAllowedMaturityRating (..)++    -- ** VolumesListPrintType+    , VolumesListPrintType (..)++    -- ** VolumeAccessInfoPdf+    , VolumeAccessInfoPdf+    , volumeAccessInfoPdf+    , vaipAcsTokenLink+    , vaipIsAvailable+    , vaipDownloadLink++    -- ** DictlayerDataDictWordsItemExamplesItemSource+    , DictlayerDataDictWordsItemExamplesItemSource+    , dictlayerDataDictWordsItemExamplesItemSource+    , dddwieisURL+    , dddwieisAttribution++    -- ** VolumeAccessInfoEpub+    , VolumeAccessInfoEpub+    , volumeAccessInfoEpub+    , vaieAcsTokenLink+    , vaieIsAvailable+    , vaieDownloadLink++    -- ** ReadingPosition+    , ReadingPosition+    , readingPosition+    , rpEpubCfiPosition+    , rpKind+    , rpGbImagePosition+    , rpPdfPosition+    , rpVolumeId+    , rpUpdated+    , rpGbTextPosition++    -- ** VolumeSaleInfoOffersItem+    , VolumeSaleInfoOffersItem+    , volumeSaleInfoOffersItem+    , vsioiFinskyOfferType+    , vsioiRentalDuration+    , vsioiListPrice+    , vsioiRetailPrice++    -- ** DictlayerDataDict+    , DictlayerDataDict+    , dictlayerDataDict+    , dddSource+    , dddWords++    -- ** DictlayerDataDictWordsItemSensesItem+    , DictlayerDataDictWordsItemSensesItem+    , dictlayerDataDictWordsItemSensesItem+    , dddwisiPronunciationURL+    , dddwisiConjugations+    , dddwisiPronunciation+    , dddwisiSynonyms+    , dddwisiSource+    , dddwisiPartOfSpeech+    , dddwisiDefinitions+    , dddwisiSyllabification++    -- ** VolumeRecommendedInfo+    , VolumeRecommendedInfo+    , volumeRecommendedInfo+    , vriExplanation++    -- ** Offers+    , Offers+    , offers+    , oKind+    , oItems++    -- ** VolumesMybooksListProcessingState+    , VolumesMybooksListProcessingState (..)++    -- ** Discoveryclusters+    , Discoveryclusters+    , discoveryclusters+    , dKind+    , dTotalClusters+    , dClusters++    -- ** UserSettingsNotesExport+    , UserSettingsNotesExport+    , userSettingsNotesExport+    , usneFolderName+    , usneIsEnabled++    -- ** ConcurrentAccessRestriction+    , ConcurrentAccessRestriction+    , concurrentAccessRestriction+    , carMaxConcurrentDevices+    , carSignature+    , carTimeWindowSeconds+    , carKind+    , carReasonCode+    , carVolumeId+    , carRestricted+    , carSource+    , carDeviceAllowed+    , carMessage+    , carNonce++    -- ** Volumes+    , Volumes+    , volumes+    , v1TotalItems+    , v1Kind+    , v1Items++    -- ** Bookshelves+    , Bookshelves+    , bookshelves+    , booKind+    , booItems++    -- ** MyConfigRequestAccessLicenseTypes+    , MyConfigRequestAccessLicenseTypes (..)++    -- ** DictlayerDataDictSource+    , DictlayerDataDictSource+    , dictlayerDataDictSource+    , dddsURL+    , dddsAttribution++    -- ** DownloadAccesses+    , DownloadAccesses+    , downloadAccesses+    , daKind+    , daDownloadAccessList++    -- ** GeolayerDataGeoViewportHi+    , GeolayerDataGeoViewportHi+    , geolayerDataGeoViewportHi+    , gdgvhLatitude+    , gdgvhLongitude++    -- ** MyLibraryReadingPositionsSetPositionAction+    , MyLibraryReadingPositionsSetPositionAction (..)++    -- ** VolumeVolumeInfo+    , VolumeVolumeInfo+    , volumeVolumeInfo+    , vviImageLinks+    , vviAverageRating+    , vviRatingsCount+    , vviCanonicalVolumeLink+    , vviReadingModes+    , vviIndustryIdentifiers+    , vviPrintedPageCount+    , vviMainCategory+    , vviContentVersion+    , vviSamplePageCount+    , vviCategories+    , vviAuthors+    , vviAllowAnonLogging+    , vviSubtitle+    , vviPublishedDate+    , vviMaturityRating+    , vviPreviewLink+    , vviLanguage+    , vviTitle+    , vviPageCount+    , vviDimensions+    , vviInfoLink+    , vviPublisher+    , vviDescription+    , vviPrintType++    -- ** MetadataItemsItem+    , MetadataItemsItem+    , metadataItemsItem+    , miiSize+    , miiVersion+    , miiLanguage+    , miiDownloadURL+    , miiEncryptedKey++    -- ** DictlayerDataDictWordsItemSensesItemSource+    , DictlayerDataDictWordsItemSensesItemSource+    , dictlayerDataDictWordsItemSensesItemSource+    , dddwisisURL+    , dddwisisAttribution++    -- ** VolumeSaleInfoOffersItemRetailPrice+    , VolumeSaleInfoOffersItemRetailPrice+    , volumeSaleInfoOffersItemRetailPrice+    , vsioirpCurrencyCode+    , vsioirpAmountInMicros++    -- ** VolumeVolumeInfoIndustryIdentifiersItem+    , VolumeVolumeInfoIndustryIdentifiersItem+    , volumeVolumeInfoIndustryIdentifiersItem+    , vviiiiIdentifier+    , vviiiiType++    -- ** BooksAnnotationsRange+    , BooksAnnotationsRange+    , booksAnnotationsRange+    , barStartOffSet+    , barEndOffSet+    , barEndPosition+    , barStartPosition++    -- ** Layersummaries+    , Layersummaries+    , layersummaries+    , layTotalItems+    , layKind+    , layItems+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude+import           Network.Google.Resource.Books.Bookshelves.Get+import           Network.Google.Resource.Books.Bookshelves.List+import           Network.Google.Resource.Books.Bookshelves.Volumes.List+import           Network.Google.Resource.Books.CloudLoading.AddBook+import           Network.Google.Resource.Books.CloudLoading.DeleteBook+import           Network.Google.Resource.Books.CloudLoading.UpdateBook+import           Network.Google.Resource.Books.Dictionary.ListOfflineMetadata+import           Network.Google.Resource.Books.Layers.AnnotationData.Get+import           Network.Google.Resource.Books.Layers.AnnotationData.List+import           Network.Google.Resource.Books.Layers.Get+import           Network.Google.Resource.Books.Layers.List+import           Network.Google.Resource.Books.Layers.VolumeAnnotations.Get+import           Network.Google.Resource.Books.Layers.VolumeAnnotations.List+import           Network.Google.Resource.Books.MyConfig.GetUserSettings+import           Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess+import           Network.Google.Resource.Books.MyConfig.RequestAccess+import           Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses+import           Network.Google.Resource.Books.MyConfig.UpdateUserSettings+import           Network.Google.Resource.Books.MyLibrary.Annotations.Delete+import           Network.Google.Resource.Books.MyLibrary.Annotations.Insert+import           Network.Google.Resource.Books.MyLibrary.Annotations.List+import           Network.Google.Resource.Books.MyLibrary.Annotations.Summary+import           Network.Google.Resource.Books.MyLibrary.Annotations.Update+import           Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume+import           Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes+import           Network.Google.Resource.Books.MyLibrary.Bookshelves.Get+import           Network.Google.Resource.Books.MyLibrary.Bookshelves.List+import           Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume+import           Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume+import           Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List+import           Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get+import           Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition+import           Network.Google.Resource.Books.Notification.Get+import           Network.Google.Resource.Books.Onboarding.ListCategories+import           Network.Google.Resource.Books.Onboarding.ListCategoryVolumes+import           Network.Google.Resource.Books.Personalizedstream.Get+import           Network.Google.Resource.Books.PromoOffer.Accept+import           Network.Google.Resource.Books.PromoOffer.Dismiss+import           Network.Google.Resource.Books.PromoOffer.Get+import           Network.Google.Resource.Books.Volumes.Associated.List+import           Network.Google.Resource.Books.Volumes.Get+import           Network.Google.Resource.Books.Volumes.List+import           Network.Google.Resource.Books.Volumes.Mybooks.List+import           Network.Google.Resource.Books.Volumes.Recommended.List+import           Network.Google.Resource.Books.Volumes.Recommended.Rate+import           Network.Google.Resource.Books.Volumes.UserUploaded.List++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Books API service.+type BooksAPI =+     NotificationGetResource :<|>+       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
+ gen/Network/Google/Books/Types.hs view
@@ -0,0 +1,873 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Books.Types+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Books.Types+    (+    -- * Service Configuration+      booksService++    -- * OAuth Scopes+    , booksScope++    -- * UserSettings+    , UserSettings+    , userSettings+    , usNotification+    , usKind+    , usNotesExport++    -- * Annotations+    , Annotations+    , annotations+    , aTotalItems+    , aNextPageToken+    , aKind+    , aItems++    -- * VolumesListProjection+    , VolumesListProjection (..)++    -- * MyLibraryBookshelvesVolumesListProjection+    , MyLibraryBookshelvesVolumesListProjection (..)++    -- * VolumesListOrderBy+    , VolumesListOrderBy (..)++    -- * AnnotationsData+    , AnnotationsData+    , annotationsData+    , adTotalItems+    , adNextPageToken+    , adKind+    , adItems++    -- * UserSettingsNotificationMoreFromAuthors+    , UserSettingsNotificationMoreFromAuthors+    , userSettingsNotificationMoreFromAuthors+    , usnmfaOptedState++    -- * Volumeannotations+    , Volumeannotations+    , volumeannotations+    , vTotalItems+    , vNextPageToken+    , vKind+    , vItems+    , vVersion++    -- * ReviewSource+    , ReviewSource+    , reviewSource+    , rsExtraDescription+    , rsURL+    , rsDescription++    -- * AnnotationData+    , AnnotationData+    , annotationData+    , annEncodedData+    , annKind+    , annData+    , annSelfLink+    , annAnnotationType+    , annVolumeId+    , annId+    , annUpdated+    , annLayerId++    -- * Volumeannotation+    , Volumeannotation+    , volumeannotation+    , volSelectedText+    , volAnnotationDataLink+    , volPageIds+    , volKind+    , volData+    , volSelfLink+    , volAnnotationType+    , volAnnotationDataId+    , volContentRanges+    , volVolumeId+    , volId+    , volDeleted+    , volUpdated+    , volLayerId++    -- * BooksCloudLoadingResource+    , BooksCloudLoadingResource+    , booksCloudLoadingResource+    , bclrProcessingState+    , bclrVolumeId+    , bclrAuthor+    , bclrTitle++    -- * Annotation+    , Annotation+    , annotation+    , aaSelectedText+    , aaLayerSummary+    , aaHighlightStyle+    , aaClientVersionRanges+    , aaPageIds+    , aaKind+    , aaData+    , aaCreated+    , aaAfterSelectedText+    , aaSelfLink+    , aaCurrentVersionRanges+    , aaVolumeId+    , aaBeforeSelectedText+    , aaId+    , aaDeleted+    , aaUpdated+    , aaLayerId++    -- * ReviewAuthor+    , ReviewAuthor+    , reviewAuthor+    , raDisplayName++    -- * GeolayerDataGeoViewport+    , GeolayerDataGeoViewport+    , geolayerDataGeoViewport+    , gdgvHi+    , gdgvLo++    -- * VolumeUserInfo+    , VolumeUserInfo+    , volumeUserInfo+    , vuiCopy+    , vuiUserUploadedVolumeInfo+    , vuiIsPurchased+    , vuiEntitlementType+    , vuiAcquisitionType+    , vuiRentalState+    , vuiIsPreOrdered+    , vuiReview+    , vuiRentalPeriod+    , vuiUpdated+    , vuiIsUploaded+    , vuiIsInMyBooks+    , vuiReadingPosition++    -- * Layersummary+    , Layersummary+    , layersummary+    , lAnnotationsDataLink+    , lAnnotationsLink+    , lKind+    , lDataCount+    , lContentVersion+    , lVolumeAnnotationsVersion+    , lAnnotationCount+    , lAnnotationTypes+    , lSelfLink+    , lVolumeId+    , lId+    , lUpdated+    , lLayerId++    -- * VolumesListLibraryRestrict+    , VolumesListLibraryRestrict (..)++    -- * VolumeannotationContentRanges+    , VolumeannotationContentRanges+    , volumeannotationContentRanges+    , vcrGbImageRange+    , vcrContentVersion+    , vcrGbTextRange+    , vcrCfiRange++    -- * VolumeAccessInfo+    , VolumeAccessInfo+    , volumeAccessInfo+    , vaiWebReaderLink+    , vaiCountry+    , vaiDriveImportedContentLink+    , vaiExplicitOfflineLicenseManagement+    , vaiViewability+    , vaiQuoteSharingAllowed+    , vaiEpub+    , vaiPdf+    , vaiTextToSpeechPermission+    , vaiEmbeddable+    , vaiAccessViewStatus+    , vaiDownloadAccess+    , vaiViewOrderURL+    , vaiPublicDomain++    -- * MyLibraryBookshelvesRemoveVolumeReason+    , MyLibraryBookshelvesRemoveVolumeReason (..)++    -- * VolumeVolumeInfoImageLinks+    , VolumeVolumeInfoImageLinks+    , volumeVolumeInfoImageLinks+    , vviilThumbnail+    , vviilSmall+    , vviilExtraLarge+    , vviilLarge+    , vviilMedium+    , vviilSmallThumbnail++    -- * OnboardingListCategoryVolumesMaxAllowedMaturityRating+    , OnboardingListCategoryVolumesMaxAllowedMaturityRating (..)++    -- * VolumeUserInfoUserUploadedVolumeInfo+    , VolumeUserInfoUserUploadedVolumeInfo+    , volumeUserInfoUserUploadedVolumeInfo+    , vuiuuviProcessingState++    -- * VolumeUserInfoCopy+    , VolumeUserInfoCopy+    , volumeUserInfoCopy+    , vuicLimitType+    , vuicAllowedCharacterCount+    , vuicUpdated+    , vuicRemainingCharacterCount++    -- * BooksVolumesRecommendedRateResponse+    , BooksVolumesRecommendedRateResponse+    , booksVolumesRecommendedRateResponse+    , bvrrrConsistencyToken++    -- * Bookshelf+    , Bookshelf+    , bookshelf+    , bAccess+    , bVolumesLastUpdated+    , bKind+    , bCreated+    , bVolumeCount+    , bSelfLink+    , bId+    , bUpdated+    , bTitle+    , bDescription++    -- * Notification+    , Notification+    , notification+    , nKind+    , nBody+    , nLinkURL+    , nIconURL+    , nTitle++    -- * VolumesListDownload+    , VolumesListDownload (..)++    -- * AnnotationsSummaryLayersItem+    , AnnotationsSummaryLayersItem+    , annotationsSummaryLayersItem+    , asliLimitType+    , asliAllowedCharacterCount+    , asliUpdated+    , asliLayerId+    , asliRemainingCharacterCount++    -- * VolumeSaleInfoOffersItemRentalDuration+    , VolumeSaleInfoOffersItemRentalDuration+    , volumeSaleInfoOffersItemRentalDuration+    , vsioirdCount+    , vsioirdUnit++    -- * DictlayerDataDictWordsItemExamplesItem+    , DictlayerDataDictWordsItemExamplesItem+    , dictlayerDataDictWordsItemExamplesItem+    , dddwieiText+    , dddwieiSource++    -- * OffersItemsItem+    , OffersItemsItem+    , offersItemsItem+    , oiiItems+    , oiiArtURL+    , oiiId+    , oiiGServicesKey++    -- * AnnotationLayerSummary+    , AnnotationLayerSummary+    , annotationLayerSummary+    , alsLimitType+    , alsAllowedCharacterCount+    , alsRemainingCharacterCount++    -- * VolumeSearchInfo+    , VolumeSearchInfo+    , volumeSearchInfo+    , vsiTextSnippet++    -- * AnnotationsSummary+    , AnnotationsSummary+    , annotationsSummary+    , asKind+    , asLayers++    -- * VolumesGetProjection+    , VolumesGetProjection (..)++    -- * Category+    , Category+    , category+    , cKind+    , cItems++    -- * VolumesAssociatedListAssociation+    , VolumesAssociatedListAssociation (..)++    -- * DiscoveryclustersClustersItemBanner_with_content_container+    , DiscoveryclustersClustersItemBanner_with_content_container+    , discoveryclustersClustersItemBanner_with_content_container+    , dcibFillColorArgb+    , dcibMoreButtonURL+    , dcibTextColorArgb+    , dcibMoreButtonText+    , dcibImageURL+    , dcibMaskColorArgb++    -- * Volume+    , Volume+    , volume+    , vvUserInfo+    , vvEtag+    , vvAccessInfo+    , vvKind+    , vvSearchInfo+    , vvSelfLink+    , vvLayerInfo+    , vvSaleInfo+    , vvId+    , vvRecommendedInfo+    , vvVolumeInfo++    -- * GeolayerDataGeoBoundaryItemItem+    , GeolayerDataGeoBoundaryItemItem+    , geolayerDataGeoBoundaryItemItem+    , gdgbiiLatitude+    , gdgbiiLongitude++    -- * OffersItemsItemItemsItem+    , OffersItemsItemItemsItem+    , offersItemsItemItemsItem+    , oiiiiCanonicalVolumeLink+    , oiiiiCoverURL+    , oiiiiVolumeId+    , oiiiiAuthor+    , oiiiiTitle+    , oiiiiDescription++    -- * DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource+    , DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource+    , dictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource+    , dddwisidieisURL+    , dddwisidieisAttribution++    -- * GeolayerDataCommon+    , GeolayerDataCommon+    , geolayerDataCommon+    , gdcSnippet+    , gdcSnippetURL+    , gdcLang+    , gdcTitle+    , gdcPreviewImageURL++    -- * GeolayerDataGeo+    , GeolayerDataGeo+    , geolayerDataGeo+    , gdgMapType+    , gdgCachePolicy+    , gdgViewport+    , gdgBoundary+    , gdgLatitude+    , gdgZoom+    , gdgCountryCode+    , gdgLongitude++    -- * DictlayerDataDictWordsItem+    , DictlayerDataDictWordsItem+    , dictlayerDataDictWordsItem+    , dddwiSenses+    , dddwiSource+    , dddwiDerivatives+    , dddwiExamples++    -- * CategoryItemsItem+    , CategoryItemsItem+    , categoryItemsItem+    , ciiName+    , ciiCategoryId+    , ciiBadgeURL++    -- * DictlayerDataDictWordsItemDerivativesItemSource+    , DictlayerDataDictWordsItemDerivativesItemSource+    , dictlayerDataDictWordsItemDerivativesItemSource+    , dddwidisURL+    , dddwidisAttribution++    -- * VolumesRecommendedRateRating+    , VolumesRecommendedRateRating (..)++    -- * GeolayerData+    , GeolayerData+    , geolayerData+    , gdKind+    , gdGeo+    , gdCommon++    -- * DictlayerDataDictWordsItemSource+    , DictlayerDataDictWordsItemSource+    , dictlayerDataDictWordsItemSource+    , dddwisURL+    , dddwisAttribution++    -- * DictlayerDataDictWordsItemDerivativesItem+    , DictlayerDataDictWordsItemDerivativesItem+    , dictlayerDataDictWordsItemDerivativesItem+    , dddwidiText+    , dddwidiSource++    -- * VolumesUserUploadedListProcessingState+    , VolumesUserUploadedListProcessingState (..)++    -- * MyConfigSyncVolumeLicensesFeatures+    , MyConfigSyncVolumeLicensesFeatures (..)++    -- * DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem+    , DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem+    , dictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem+    , dddwisidieiText+    , dddwisidieiSource++    -- * DictlayerData+    , DictlayerData+    , dictlayerData+    , ddKind+    , ddDict+    , ddCommon++    -- * VolumesAssociatedListMaxAllowedMaturityRating+    , VolumesAssociatedListMaxAllowedMaturityRating (..)++    -- * DictlayerDataDictWordsItemSensesItemSynonymsItemSource+    , DictlayerDataDictWordsItemSensesItemSynonymsItemSource+    , dictlayerDataDictWordsItemSensesItemSynonymsItemSource+    , dddwisisisURL+    , dddwisisisAttribution++    -- * VolumesListFilter+    , VolumesListFilter (..)++    -- * UserSettingsNotification+    , UserSettingsNotification+    , userSettingsNotification+    , usnMoreFromAuthors++    -- * DictlayerDataDictWordsItemSensesItemSynonymsItem+    , DictlayerDataDictWordsItemSensesItemSynonymsItem+    , dictlayerDataDictWordsItemSensesItemSynonymsItem+    , dddwisisiText+    , dddwisisiSource++    -- * GeolayerDataGeoViewportLo+    , GeolayerDataGeoViewportLo+    , geolayerDataGeoViewportLo+    , gdgvlLatitude+    , gdgvlLongitude++    -- * VolumesRecommendedListMaxAllowedMaturityRating+    , VolumesRecommendedListMaxAllowedMaturityRating (..)++    -- * VolumeSaleInfoOffersItemListPrice+    , VolumeSaleInfoOffersItemListPrice+    , volumeSaleInfoOffersItemListPrice+    , vsioilpCurrencyCode+    , vsioilpAmountInMicros++    -- * DownloadAccessRestriction+    , DownloadAccessRestriction+    , downloadAccessRestriction+    , darJustAcquired+    , darSignature+    , darKind+    , darMaxDownloadDevices+    , darDownloadsAcquired+    , darReasonCode+    , darVolumeId+    , darRestricted+    , darSource+    , darDeviceAllowed+    , darMessage+    , darNonce++    -- * DictlayerDataCommon+    , DictlayerDataCommon+    , dictlayerDataCommon+    , ddcTitle++    -- * DiscoveryclustersClustersItem+    , DiscoveryclustersClustersItem+    , discoveryclustersClustersItem+    , dciBannerWithContentContainer+    , dciUid+    , dciTotalVolumes+    , dciSubTitle+    , dciTitle+    , dciVolumes++    -- * VolumeSaleInfoRetailPrice+    , VolumeSaleInfoRetailPrice+    , volumeSaleInfoRetailPrice+    , vsirpAmount+    , vsirpCurrencyCode++    -- * VolumeSaleInfoListPrice+    , VolumeSaleInfoListPrice+    , volumeSaleInfoListPrice+    , vsilpAmount+    , vsilpCurrencyCode++    -- * DictlayerDataDictWordsItemSensesItemConjugationsItem+    , DictlayerDataDictWordsItemSensesItemConjugationsItem+    , dictlayerDataDictWordsItemSensesItemConjugationsItem+    , dddwisiciValue+    , dddwisiciType++    -- * Volume2+    , Volume2+    , volume2+    , voloNextPageToken+    , voloKind+    , voloItems++    -- * Review+    , Review+    , review+    , rRating+    , rKind+    , rContent+    , rDate+    , rVolumeId+    , rAuthor+    , rSource+    , rFullTextURL+    , rTitle+    , rType++    -- * VolumeUserInfoRentalPeriod+    , VolumeUserInfoRentalPeriod+    , volumeUserInfoRentalPeriod+    , vuirpEndUtcSec+    , vuirpStartUtcSec++    -- * VolumeSaleInfo+    , VolumeSaleInfo+    , volumeSaleInfo+    , vsiCountry+    , vsiOnSaleDate+    , vsiListPrice+    , vsiRetailPrice+    , vsiOffers+    , vsiBuyLink+    , vsiIsEbook+    , vsiSaleability++    -- * MyLibraryBookshelvesAddVolumeReason+    , MyLibraryBookshelvesAddVolumeReason (..)++    -- * Metadata+    , Metadata+    , metadata+    , mKind+    , mItems++    -- * VolumeLayerInfo+    , VolumeLayerInfo+    , volumeLayerInfo+    , vliLayers++    -- * VolumeVolumeInfoDimensions+    , VolumeVolumeInfoDimensions+    , volumeVolumeInfoDimensions+    , vvidHeight+    , vvidWidth+    , vvidThickness++    -- * RequestAccess+    , RequestAccess+    , requestAccess+    , raConcurrentAccess+    , raKind+    , raDownloadAccess++    -- * AnnotationClientVersionRanges+    , AnnotationClientVersionRanges+    , annotationClientVersionRanges+    , acvrGbImageRange+    , acvrContentVersion+    , acvrImageCfiRange+    , acvrGbTextRange+    , acvrCfiRange++    -- * VolumesMybooksListAcquireMethod+    , VolumesMybooksListAcquireMethod (..)++    -- * DictlayerDataDictWordsItemSensesItemDefinitionsItem+    , DictlayerDataDictWordsItemSensesItemDefinitionsItem+    , dictlayerDataDictWordsItemSensesItemDefinitionsItem+    , dddwisidiDefinition+    , dddwisidiExamples++    -- * VolumeLayerInfoLayersItem+    , VolumeLayerInfoLayersItem+    , volumeLayerInfoLayersItem+    , vliliVolumeAnnotationsVersion+    , vliliLayerId++    -- * AnnotationCurrentVersionRanges+    , AnnotationCurrentVersionRanges+    , annotationCurrentVersionRanges+    , aGbImageRange+    , aContentVersion+    , aImageCfiRange+    , aGbTextRange+    , aCfiRange++    -- * PersonalizedstreamGetMaxAllowedMaturityRating+    , PersonalizedstreamGetMaxAllowedMaturityRating (..)++    -- * VolumesListPrintType+    , VolumesListPrintType (..)++    -- * VolumeAccessInfoPdf+    , VolumeAccessInfoPdf+    , volumeAccessInfoPdf+    , vaipAcsTokenLink+    , vaipIsAvailable+    , vaipDownloadLink++    -- * DictlayerDataDictWordsItemExamplesItemSource+    , DictlayerDataDictWordsItemExamplesItemSource+    , dictlayerDataDictWordsItemExamplesItemSource+    , dddwieisURL+    , dddwieisAttribution++    -- * VolumeAccessInfoEpub+    , VolumeAccessInfoEpub+    , volumeAccessInfoEpub+    , vaieAcsTokenLink+    , vaieIsAvailable+    , vaieDownloadLink++    -- * ReadingPosition+    , ReadingPosition+    , readingPosition+    , rpEpubCfiPosition+    , rpKind+    , rpGbImagePosition+    , rpPdfPosition+    , rpVolumeId+    , rpUpdated+    , rpGbTextPosition++    -- * VolumeSaleInfoOffersItem+    , VolumeSaleInfoOffersItem+    , volumeSaleInfoOffersItem+    , vsioiFinskyOfferType+    , vsioiRentalDuration+    , vsioiListPrice+    , vsioiRetailPrice++    -- * DictlayerDataDict+    , DictlayerDataDict+    , dictlayerDataDict+    , dddSource+    , dddWords++    -- * DictlayerDataDictWordsItemSensesItem+    , DictlayerDataDictWordsItemSensesItem+    , dictlayerDataDictWordsItemSensesItem+    , dddwisiPronunciationURL+    , dddwisiConjugations+    , dddwisiPronunciation+    , dddwisiSynonyms+    , dddwisiSource+    , dddwisiPartOfSpeech+    , dddwisiDefinitions+    , dddwisiSyllabification++    -- * VolumeRecommendedInfo+    , VolumeRecommendedInfo+    , volumeRecommendedInfo+    , vriExplanation++    -- * Offers+    , Offers+    , offers+    , oKind+    , oItems++    -- * VolumesMybooksListProcessingState+    , VolumesMybooksListProcessingState (..)++    -- * Discoveryclusters+    , Discoveryclusters+    , discoveryclusters+    , dKind+    , dTotalClusters+    , dClusters++    -- * UserSettingsNotesExport+    , UserSettingsNotesExport+    , userSettingsNotesExport+    , usneFolderName+    , usneIsEnabled++    -- * ConcurrentAccessRestriction+    , ConcurrentAccessRestriction+    , concurrentAccessRestriction+    , carMaxConcurrentDevices+    , carSignature+    , carTimeWindowSeconds+    , carKind+    , carReasonCode+    , carVolumeId+    , carRestricted+    , carSource+    , carDeviceAllowed+    , carMessage+    , carNonce++    -- * Volumes+    , Volumes+    , volumes+    , v1TotalItems+    , v1Kind+    , v1Items++    -- * Bookshelves+    , Bookshelves+    , bookshelves+    , booKind+    , booItems++    -- * MyConfigRequestAccessLicenseTypes+    , MyConfigRequestAccessLicenseTypes (..)++    -- * DictlayerDataDictSource+    , DictlayerDataDictSource+    , dictlayerDataDictSource+    , dddsURL+    , dddsAttribution++    -- * DownloadAccesses+    , DownloadAccesses+    , downloadAccesses+    , daKind+    , daDownloadAccessList++    -- * GeolayerDataGeoViewportHi+    , GeolayerDataGeoViewportHi+    , geolayerDataGeoViewportHi+    , gdgvhLatitude+    , gdgvhLongitude++    -- * MyLibraryReadingPositionsSetPositionAction+    , MyLibraryReadingPositionsSetPositionAction (..)++    -- * VolumeVolumeInfo+    , VolumeVolumeInfo+    , volumeVolumeInfo+    , vviImageLinks+    , vviAverageRating+    , vviRatingsCount+    , vviCanonicalVolumeLink+    , vviReadingModes+    , vviIndustryIdentifiers+    , vviPrintedPageCount+    , vviMainCategory+    , vviContentVersion+    , vviSamplePageCount+    , vviCategories+    , vviAuthors+    , vviAllowAnonLogging+    , vviSubtitle+    , vviPublishedDate+    , vviMaturityRating+    , vviPreviewLink+    , vviLanguage+    , vviTitle+    , vviPageCount+    , vviDimensions+    , vviInfoLink+    , vviPublisher+    , vviDescription+    , vviPrintType++    -- * MetadataItemsItem+    , MetadataItemsItem+    , metadataItemsItem+    , miiSize+    , miiVersion+    , miiLanguage+    , miiDownloadURL+    , miiEncryptedKey++    -- * DictlayerDataDictWordsItemSensesItemSource+    , DictlayerDataDictWordsItemSensesItemSource+    , dictlayerDataDictWordsItemSensesItemSource+    , dddwisisURL+    , dddwisisAttribution++    -- * VolumeSaleInfoOffersItemRetailPrice+    , VolumeSaleInfoOffersItemRetailPrice+    , volumeSaleInfoOffersItemRetailPrice+    , vsioirpCurrencyCode+    , vsioirpAmountInMicros++    -- * VolumeVolumeInfoIndustryIdentifiersItem+    , VolumeVolumeInfoIndustryIdentifiersItem+    , volumeVolumeInfoIndustryIdentifiersItem+    , vviiiiIdentifier+    , vviiiiType++    -- * BooksAnnotationsRange+    , BooksAnnotationsRange+    , booksAnnotationsRange+    , barStartOffSet+    , barEndOffSet+    , barEndPosition+    , barStartPosition++    -- * Layersummaries+    , Layersummaries+    , layersummaries+    , layTotalItems+    , layKind+    , layItems+    ) where++import           Network.Google.Books.Types.Product+import           Network.Google.Books.Types.Sum+import           Network.Google.Prelude++-- | Default request referring to version 'v1' of the Books API. This contains the host and root path used as a starting point for constructing service requests.+booksService :: Service+booksService+  = defaultService (ServiceId "books:v1")+      "www.googleapis.com"++-- | Manage your books+booksScope :: OAuthScope+booksScope = "https://www.googleapis.com/auth/books";
+ gen/Network/Google/Books/Types/Product.hs view
@@ -0,0 +1,7012 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}++{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Books.Types.Product+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Books.Types.Product where++import           Network.Google.Books.Types.Sum+import           Network.Google.Prelude++--+-- /See:/ 'userSettings' smart constructor.+data UserSettings = UserSettings+    { _usNotification :: !(Maybe UserSettingsNotification)+    , _usKind         :: !Text+    , _usNotesExport  :: !(Maybe UserSettingsNotesExport)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usNotification'+--+-- * 'usKind'+--+-- * 'usNotesExport'+userSettings+    :: UserSettings+userSettings =+    UserSettings+    { _usNotification = Nothing+    , _usKind = "books#usersettings"+    , _usNotesExport = Nothing+    }++usNotification :: Lens' UserSettings (Maybe UserSettingsNotification)+usNotification+  = lens _usNotification+      (\ s a -> s{_usNotification = a})++-- | Resource type.+usKind :: Lens' UserSettings Text+usKind = lens _usKind (\ s a -> s{_usKind = a})++-- | User settings in sub-objects, each for different purposes.+usNotesExport :: Lens' UserSettings (Maybe UserSettingsNotesExport)+usNotesExport+  = lens _usNotesExport+      (\ s a -> s{_usNotesExport = a})++instance FromJSON UserSettings where+        parseJSON+          = withObject "UserSettings"+              (\ o ->+                 UserSettings <$>+                   (o .:? "notification") <*>+                     (o .:? "kind" .!= "books#usersettings")+                     <*> (o .:? "notesExport"))++instance ToJSON UserSettings where+        toJSON UserSettings{..}+          = object+              (catMaybes+                 [("notification" .=) <$> _usNotification,+                  Just ("kind" .= _usKind),+                  ("notesExport" .=) <$> _usNotesExport])++--+-- /See:/ 'annotations' smart constructor.+data Annotations = Annotations+    { _aTotalItems    :: !(Maybe (Textual Int32))+    , _aNextPageToken :: !(Maybe Text)+    , _aKind          :: !Text+    , _aItems         :: !(Maybe [Annotation])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Annotations' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aTotalItems'+--+-- * 'aNextPageToken'+--+-- * 'aKind'+--+-- * 'aItems'+annotations+    :: Annotations+annotations =+    Annotations+    { _aTotalItems = Nothing+    , _aNextPageToken = Nothing+    , _aKind = "books#annotations"+    , _aItems = Nothing+    }++-- | 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)+aTotalItems+  = lens _aTotalItems (\ s a -> s{_aTotalItems = a}) .+      mapping _Coerce++-- | 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)+aNextPageToken+  = lens _aNextPageToken+      (\ s a -> s{_aNextPageToken = a})++-- | Resource type.+aKind :: Lens' Annotations Text+aKind = lens _aKind (\ s a -> s{_aKind = a})++-- | A list of annotations.+aItems :: Lens' Annotations [Annotation]+aItems+  = lens _aItems (\ s a -> s{_aItems = a}) . _Default .+      _Coerce++instance FromJSON Annotations where+        parseJSON+          = withObject "Annotations"+              (\ o ->+                 Annotations <$>+                   (o .:? "totalItems") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "books#annotations")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON Annotations where+        toJSON Annotations{..}+          = object+              (catMaybes+                 [("totalItems" .=) <$> _aTotalItems,+                  ("nextPageToken" .=) <$> _aNextPageToken,+                  Just ("kind" .= _aKind), ("items" .=) <$> _aItems])++--+-- /See:/ 'annotationsData' smart constructor.+data AnnotationsData = AnnotationsData+    { _adTotalItems    :: !(Maybe (Textual Int32))+    , _adNextPageToken :: !(Maybe Text)+    , _adKind          :: !Text+    , _adItems         :: !(Maybe [AnnotationData])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AnnotationsData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'adTotalItems'+--+-- * 'adNextPageToken'+--+-- * 'adKind'+--+-- * 'adItems'+annotationsData+    :: AnnotationsData+annotationsData =+    AnnotationsData+    { _adTotalItems = Nothing+    , _adNextPageToken = Nothing+    , _adKind = "books#annotationsdata"+    , _adItems = Nothing+    }++-- | The total number of volume annotations found.+adTotalItems :: Lens' AnnotationsData (Maybe Int32)+adTotalItems+  = lens _adTotalItems (\ s a -> s{_adTotalItems = a})+      . mapping _Coerce++-- | 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)+adNextPageToken+  = lens _adNextPageToken+      (\ s a -> s{_adNextPageToken = a})++-- | Resource type+adKind :: Lens' AnnotationsData Text+adKind = lens _adKind (\ s a -> s{_adKind = a})++-- | A list of Annotation Data.+adItems :: Lens' AnnotationsData [AnnotationData]+adItems+  = lens _adItems (\ s a -> s{_adItems = a}) . _Default+      . _Coerce++instance FromJSON AnnotationsData where+        parseJSON+          = withObject "AnnotationsData"+              (\ o ->+                 AnnotationsData <$>+                   (o .:? "totalItems") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "books#annotationsdata")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON AnnotationsData where+        toJSON AnnotationsData{..}+          = object+              (catMaybes+                 [("totalItems" .=) <$> _adTotalItems,+                  ("nextPageToken" .=) <$> _adNextPageToken,+                  Just ("kind" .= _adKind), ("items" .=) <$> _adItems])++--+-- /See:/ 'userSettingsNotificationMoreFromAuthors' smart constructor.+newtype UserSettingsNotificationMoreFromAuthors = UserSettingsNotificationMoreFromAuthors+    { _usnmfaOptedState :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserSettingsNotificationMoreFromAuthors' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usnmfaOptedState'+userSettingsNotificationMoreFromAuthors+    :: UserSettingsNotificationMoreFromAuthors+userSettingsNotificationMoreFromAuthors =+    UserSettingsNotificationMoreFromAuthors+    { _usnmfaOptedState = Nothing+    }++usnmfaOptedState :: Lens' UserSettingsNotificationMoreFromAuthors (Maybe Text)+usnmfaOptedState+  = lens _usnmfaOptedState+      (\ s a -> s{_usnmfaOptedState = a})++instance FromJSON+         UserSettingsNotificationMoreFromAuthors where+        parseJSON+          = withObject+              "UserSettingsNotificationMoreFromAuthors"+              (\ o ->+                 UserSettingsNotificationMoreFromAuthors <$>+                   (o .:? "opted_state"))++instance ToJSON+         UserSettingsNotificationMoreFromAuthors where+        toJSON UserSettingsNotificationMoreFromAuthors{..}+          = object+              (catMaybes+                 [("opted_state" .=) <$> _usnmfaOptedState])++--+-- /See:/ 'volumeannotations' smart constructor.+data Volumeannotations = Volumeannotations+    { _vTotalItems    :: !(Maybe (Textual Int32))+    , _vNextPageToken :: !(Maybe Text)+    , _vKind          :: !Text+    , _vItems         :: !(Maybe [Volumeannotation])+    , _vVersion       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Volumeannotations' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vTotalItems'+--+-- * 'vNextPageToken'+--+-- * 'vKind'+--+-- * 'vItems'+--+-- * 'vVersion'+volumeannotations+    :: Volumeannotations+volumeannotations =+    Volumeannotations+    { _vTotalItems = Nothing+    , _vNextPageToken = Nothing+    , _vKind = "books#volumeannotations"+    , _vItems = Nothing+    , _vVersion = Nothing+    }++-- | The total number of volume annotations found.+vTotalItems :: Lens' Volumeannotations (Maybe Int32)+vTotalItems+  = lens _vTotalItems (\ s a -> s{_vTotalItems = a}) .+      mapping _Coerce++-- | 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)+vNextPageToken+  = lens _vNextPageToken+      (\ s a -> s{_vNextPageToken = a})++-- | Resource type+vKind :: Lens' Volumeannotations Text+vKind = lens _vKind (\ s a -> s{_vKind = a})++-- | A list of volume annotations.+vItems :: Lens' Volumeannotations [Volumeannotation]+vItems+  = lens _vItems (\ s a -> s{_vItems = a}) . _Default .+      _Coerce++-- | 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)+vVersion = lens _vVersion (\ s a -> s{_vVersion = a})++instance FromJSON Volumeannotations where+        parseJSON+          = withObject "Volumeannotations"+              (\ o ->+                 Volumeannotations <$>+                   (o .:? "totalItems") <*> (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "books#volumeannotations")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "version"))++instance ToJSON Volumeannotations where+        toJSON Volumeannotations{..}+          = object+              (catMaybes+                 [("totalItems" .=) <$> _vTotalItems,+                  ("nextPageToken" .=) <$> _vNextPageToken,+                  Just ("kind" .= _vKind), ("items" .=) <$> _vItems,+                  ("version" .=) <$> _vVersion])++-- | Information regarding the source of this review, when the review is not+-- from a Google Books user.+--+-- /See:/ 'reviewSource' smart constructor.+data ReviewSource = ReviewSource+    { _rsExtraDescription :: !(Maybe Text)+    , _rsURL              :: !(Maybe Text)+    , _rsDescription      :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ReviewSource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rsExtraDescription'+--+-- * 'rsURL'+--+-- * 'rsDescription'+reviewSource+    :: ReviewSource+reviewSource =+    ReviewSource+    { _rsExtraDescription = Nothing+    , _rsURL = Nothing+    , _rsDescription = Nothing+    }++-- | Extra text about the source of the review.+rsExtraDescription :: Lens' ReviewSource (Maybe Text)+rsExtraDescription+  = lens _rsExtraDescription+      (\ s a -> s{_rsExtraDescription = a})++-- | URL of the source of the review.+rsURL :: Lens' ReviewSource (Maybe Text)+rsURL = lens _rsURL (\ s a -> s{_rsURL = a})++-- | Name of the source.+rsDescription :: Lens' ReviewSource (Maybe Text)+rsDescription+  = lens _rsDescription+      (\ s a -> s{_rsDescription = a})++instance FromJSON ReviewSource where+        parseJSON+          = withObject "ReviewSource"+              (\ o ->+                 ReviewSource <$>+                   (o .:? "extraDescription") <*> (o .:? "url") <*>+                     (o .:? "description"))++instance ToJSON ReviewSource where+        toJSON ReviewSource{..}+          = object+              (catMaybes+                 [("extraDescription" .=) <$> _rsExtraDescription,+                  ("url" .=) <$> _rsURL,+                  ("description" .=) <$> _rsDescription])++--+-- /See:/ 'annotationData' smart constructor.+data AnnotationData = AnnotationData+    { _annEncodedData    :: !(Maybe (Textual Word8))+    , _annKind           :: !Text+    , _annData           :: !(Maybe JSONValue)+    , _annSelfLink       :: !(Maybe Text)+    , _annAnnotationType :: !(Maybe Text)+    , _annVolumeId       :: !(Maybe Text)+    , _annId             :: !(Maybe Text)+    , _annUpdated        :: !(Maybe DateTime')+    , _annLayerId        :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AnnotationData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'annEncodedData'+--+-- * 'annKind'+--+-- * 'annData'+--+-- * 'annSelfLink'+--+-- * 'annAnnotationType'+--+-- * 'annVolumeId'+--+-- * 'annId'+--+-- * 'annUpdated'+--+-- * 'annLayerId'+annotationData+    :: AnnotationData+annotationData =+    AnnotationData+    { _annEncodedData = Nothing+    , _annKind = "books#annotationdata"+    , _annData = Nothing+    , _annSelfLink = Nothing+    , _annAnnotationType = Nothing+    , _annVolumeId = Nothing+    , _annId = Nothing+    , _annUpdated = Nothing+    , _annLayerId = Nothing+    }++-- | Base64 encoded data for this annotation data.+annEncodedData :: Lens' AnnotationData (Maybe Word8)+annEncodedData+  = lens _annEncodedData+      (\ s a -> s{_annEncodedData = a})+      . mapping _Coerce++-- | Resource Type+annKind :: Lens' AnnotationData Text+annKind = lens _annKind (\ s a -> s{_annKind = a})++annData :: Lens' AnnotationData (Maybe JSONValue)+annData = lens _annData (\ s a -> s{_annData = a})++-- | URL for this resource. *+annSelfLink :: Lens' AnnotationData (Maybe Text)+annSelfLink+  = lens _annSelfLink (\ s a -> s{_annSelfLink = a})++-- | The type of annotation this data is for.+annAnnotationType :: Lens' AnnotationData (Maybe Text)+annAnnotationType+  = lens _annAnnotationType+      (\ s a -> s{_annAnnotationType = a})++-- | The volume id for this data. *+annVolumeId :: Lens' AnnotationData (Maybe Text)+annVolumeId+  = lens _annVolumeId (\ s a -> s{_annVolumeId = a})++-- | Unique id for this annotation data.+annId :: Lens' AnnotationData (Maybe Text)+annId = lens _annId (\ s a -> s{_annId = a})++-- | Timestamp for the last time this data was updated. (RFC 3339 UTC+-- date-time format).+annUpdated :: Lens' AnnotationData (Maybe UTCTime)+annUpdated+  = lens _annUpdated (\ s a -> s{_annUpdated = a}) .+      mapping _DateTime++-- | The Layer id for this data. *+annLayerId :: Lens' AnnotationData (Maybe Text)+annLayerId+  = lens _annLayerId (\ s a -> s{_annLayerId = a})++instance FromJSON AnnotationData where+        parseJSON+          = withObject "AnnotationData"+              (\ o ->+                 AnnotationData <$>+                   (o .:? "encoded_data") <*>+                     (o .:? "kind" .!= "books#annotationdata")+                     <*> (o .:? "data")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "annotationType")+                     <*> (o .:? "volumeId")+                     <*> (o .:? "id")+                     <*> (o .:? "updated")+                     <*> (o .:? "layerId"))++instance ToJSON AnnotationData where+        toJSON AnnotationData{..}+          = object+              (catMaybes+                 [("encoded_data" .=) <$> _annEncodedData,+                  Just ("kind" .= _annKind), ("data" .=) <$> _annData,+                  ("selfLink" .=) <$> _annSelfLink,+                  ("annotationType" .=) <$> _annAnnotationType,+                  ("volumeId" .=) <$> _annVolumeId,+                  ("id" .=) <$> _annId, ("updated" .=) <$> _annUpdated,+                  ("layerId" .=) <$> _annLayerId])++--+-- /See:/ 'volumeannotation' smart constructor.+data Volumeannotation = Volumeannotation+    { _volSelectedText       :: !(Maybe Text)+    , _volAnnotationDataLink :: !(Maybe Text)+    , _volPageIds            :: !(Maybe [Text])+    , _volKind               :: !Text+    , _volData               :: !(Maybe Text)+    , _volSelfLink           :: !(Maybe Text)+    , _volAnnotationType     :: !(Maybe Text)+    , _volAnnotationDataId   :: !(Maybe Text)+    , _volContentRanges      :: !(Maybe VolumeannotationContentRanges)+    , _volVolumeId           :: !(Maybe Text)+    , _volId                 :: !(Maybe Text)+    , _volDeleted            :: !(Maybe Bool)+    , _volUpdated            :: !(Maybe DateTime')+    , _volLayerId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Volumeannotation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'volSelectedText'+--+-- * 'volAnnotationDataLink'+--+-- * 'volPageIds'+--+-- * 'volKind'+--+-- * 'volData'+--+-- * 'volSelfLink'+--+-- * 'volAnnotationType'+--+-- * 'volAnnotationDataId'+--+-- * 'volContentRanges'+--+-- * 'volVolumeId'+--+-- * 'volId'+--+-- * 'volDeleted'+--+-- * 'volUpdated'+--+-- * 'volLayerId'+volumeannotation+    :: Volumeannotation+volumeannotation =+    Volumeannotation+    { _volSelectedText = Nothing+    , _volAnnotationDataLink = Nothing+    , _volPageIds = Nothing+    , _volKind = "books#volumeannotation"+    , _volData = Nothing+    , _volSelfLink = Nothing+    , _volAnnotationType = Nothing+    , _volAnnotationDataId = Nothing+    , _volContentRanges = Nothing+    , _volVolumeId = Nothing+    , _volId = Nothing+    , _volDeleted = Nothing+    , _volUpdated = Nothing+    , _volLayerId = Nothing+    }++-- | Excerpt from the volume.+volSelectedText :: Lens' Volumeannotation (Maybe Text)+volSelectedText+  = lens _volSelectedText+      (\ s a -> s{_volSelectedText = a})++-- | Link to get data for this annotation.+volAnnotationDataLink :: Lens' Volumeannotation (Maybe Text)+volAnnotationDataLink+  = lens _volAnnotationDataLink+      (\ s a -> s{_volAnnotationDataLink = a})++-- | Pages the annotation spans.+volPageIds :: Lens' Volumeannotation [Text]+volPageIds+  = lens _volPageIds (\ s a -> s{_volPageIds = a}) .+      _Default+      . _Coerce++-- | Resource Type+volKind :: Lens' Volumeannotation Text+volKind = lens _volKind (\ s a -> s{_volKind = a})++-- | Data for this annotation.+volData :: Lens' Volumeannotation (Maybe Text)+volData = lens _volData (\ s a -> s{_volData = a})++-- | URL to this resource.+volSelfLink :: Lens' Volumeannotation (Maybe Text)+volSelfLink+  = lens _volSelfLink (\ s a -> s{_volSelfLink = a})++-- | The type of annotation this is.+volAnnotationType :: Lens' Volumeannotation (Maybe Text)+volAnnotationType+  = lens _volAnnotationType+      (\ s a -> s{_volAnnotationType = a})++-- | The annotation data id for this volume annotation.+volAnnotationDataId :: Lens' Volumeannotation (Maybe Text)+volAnnotationDataId+  = lens _volAnnotationDataId+      (\ s a -> s{_volAnnotationDataId = a})++-- | The content ranges to identify the selected text.+volContentRanges :: Lens' Volumeannotation (Maybe VolumeannotationContentRanges)+volContentRanges+  = lens _volContentRanges+      (\ s a -> s{_volContentRanges = a})++-- | The Volume this annotation is for.+volVolumeId :: Lens' Volumeannotation (Maybe Text)+volVolumeId+  = lens _volVolumeId (\ s a -> s{_volVolumeId = a})++-- | Unique id of this volume annotation.+volId :: Lens' Volumeannotation (Maybe Text)+volId = lens _volId (\ s a -> s{_volId = a})++-- | Indicates that this annotation is deleted.+volDeleted :: Lens' Volumeannotation (Maybe Bool)+volDeleted+  = lens _volDeleted (\ s a -> s{_volDeleted = a})++-- | Timestamp for the last time this anntoation was updated. (RFC 3339 UTC+-- date-time format).+volUpdated :: Lens' Volumeannotation (Maybe UTCTime)+volUpdated+  = lens _volUpdated (\ s a -> s{_volUpdated = a}) .+      mapping _DateTime++-- | The Layer this annotation is for.+volLayerId :: Lens' Volumeannotation (Maybe Text)+volLayerId+  = lens _volLayerId (\ s a -> s{_volLayerId = a})++instance FromJSON Volumeannotation where+        parseJSON+          = withObject "Volumeannotation"+              (\ o ->+                 Volumeannotation <$>+                   (o .:? "selectedText") <*>+                     (o .:? "annotationDataLink")+                     <*> (o .:? "pageIds" .!= mempty)+                     <*> (o .:? "kind" .!= "books#volumeannotation")+                     <*> (o .:? "data")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "annotationType")+                     <*> (o .:? "annotationDataId")+                     <*> (o .:? "contentRanges")+                     <*> (o .:? "volumeId")+                     <*> (o .:? "id")+                     <*> (o .:? "deleted")+                     <*> (o .:? "updated")+                     <*> (o .:? "layerId"))++instance ToJSON Volumeannotation where+        toJSON Volumeannotation{..}+          = object+              (catMaybes+                 [("selectedText" .=) <$> _volSelectedText,+                  ("annotationDataLink" .=) <$> _volAnnotationDataLink,+                  ("pageIds" .=) <$> _volPageIds,+                  Just ("kind" .= _volKind), ("data" .=) <$> _volData,+                  ("selfLink" .=) <$> _volSelfLink,+                  ("annotationType" .=) <$> _volAnnotationType,+                  ("annotationDataId" .=) <$> _volAnnotationDataId,+                  ("contentRanges" .=) <$> _volContentRanges,+                  ("volumeId" .=) <$> _volVolumeId,+                  ("id" .=) <$> _volId, ("deleted" .=) <$> _volDeleted,+                  ("updated" .=) <$> _volUpdated,+                  ("layerId" .=) <$> _volLayerId])++--+-- /See:/ 'booksCloudLoadingResource' smart constructor.+data BooksCloudLoadingResource = BooksCloudLoadingResource+    { _bclrProcessingState :: !(Maybe Text)+    , _bclrVolumeId        :: !(Maybe Text)+    , _bclrAuthor          :: !(Maybe Text)+    , _bclrTitle           :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BooksCloudLoadingResource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bclrProcessingState'+--+-- * 'bclrVolumeId'+--+-- * 'bclrAuthor'+--+-- * 'bclrTitle'+booksCloudLoadingResource+    :: BooksCloudLoadingResource+booksCloudLoadingResource =+    BooksCloudLoadingResource+    { _bclrProcessingState = Nothing+    , _bclrVolumeId = Nothing+    , _bclrAuthor = Nothing+    , _bclrTitle = Nothing+    }++bclrProcessingState :: Lens' BooksCloudLoadingResource (Maybe Text)+bclrProcessingState+  = lens _bclrProcessingState+      (\ s a -> s{_bclrProcessingState = a})++bclrVolumeId :: Lens' BooksCloudLoadingResource (Maybe Text)+bclrVolumeId+  = lens _bclrVolumeId (\ s a -> s{_bclrVolumeId = a})++bclrAuthor :: Lens' BooksCloudLoadingResource (Maybe Text)+bclrAuthor+  = lens _bclrAuthor (\ s a -> s{_bclrAuthor = a})++bclrTitle :: Lens' BooksCloudLoadingResource (Maybe Text)+bclrTitle+  = lens _bclrTitle (\ s a -> s{_bclrTitle = a})++instance FromJSON BooksCloudLoadingResource where+        parseJSON+          = withObject "BooksCloudLoadingResource"+              (\ o ->+                 BooksCloudLoadingResource <$>+                   (o .:? "processingState") <*> (o .:? "volumeId") <*>+                     (o .:? "author")+                     <*> (o .:? "title"))++instance ToJSON BooksCloudLoadingResource where+        toJSON BooksCloudLoadingResource{..}+          = object+              (catMaybes+                 [("processingState" .=) <$> _bclrProcessingState,+                  ("volumeId" .=) <$> _bclrVolumeId,+                  ("author" .=) <$> _bclrAuthor,+                  ("title" .=) <$> _bclrTitle])++--+-- /See:/ 'annotation' smart constructor.+data Annotation = Annotation+    { _aaSelectedText         :: !(Maybe Text)+    , _aaLayerSummary         :: !(Maybe AnnotationLayerSummary)+    , _aaHighlightStyle       :: !(Maybe Text)+    , _aaClientVersionRanges  :: !(Maybe AnnotationClientVersionRanges)+    , _aaPageIds              :: !(Maybe [Text])+    , _aaKind                 :: !Text+    , _aaData                 :: !(Maybe Text)+    , _aaCreated              :: !(Maybe DateTime')+    , _aaAfterSelectedText    :: !(Maybe Text)+    , _aaSelfLink             :: !(Maybe Text)+    , _aaCurrentVersionRanges :: !(Maybe AnnotationCurrentVersionRanges)+    , _aaVolumeId             :: !(Maybe Text)+    , _aaBeforeSelectedText   :: !(Maybe Text)+    , _aaId                   :: !(Maybe Text)+    , _aaDeleted              :: !(Maybe Bool)+    , _aaUpdated              :: !(Maybe DateTime')+    , _aaLayerId              :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Annotation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aaSelectedText'+--+-- * 'aaLayerSummary'+--+-- * 'aaHighlightStyle'+--+-- * 'aaClientVersionRanges'+--+-- * 'aaPageIds'+--+-- * 'aaKind'+--+-- * 'aaData'+--+-- * 'aaCreated'+--+-- * 'aaAfterSelectedText'+--+-- * 'aaSelfLink'+--+-- * 'aaCurrentVersionRanges'+--+-- * 'aaVolumeId'+--+-- * 'aaBeforeSelectedText'+--+-- * 'aaId'+--+-- * 'aaDeleted'+--+-- * 'aaUpdated'+--+-- * 'aaLayerId'+annotation+    :: Annotation+annotation =+    Annotation+    { _aaSelectedText = Nothing+    , _aaLayerSummary = Nothing+    , _aaHighlightStyle = Nothing+    , _aaClientVersionRanges = Nothing+    , _aaPageIds = Nothing+    , _aaKind = "books#annotation"+    , _aaData = Nothing+    , _aaCreated = Nothing+    , _aaAfterSelectedText = Nothing+    , _aaSelfLink = Nothing+    , _aaCurrentVersionRanges = Nothing+    , _aaVolumeId = Nothing+    , _aaBeforeSelectedText = Nothing+    , _aaId = Nothing+    , _aaDeleted = Nothing+    , _aaUpdated = Nothing+    , _aaLayerId = Nothing+    }++-- | Excerpt from the volume.+aaSelectedText :: Lens' Annotation (Maybe Text)+aaSelectedText+  = lens _aaSelectedText+      (\ s a -> s{_aaSelectedText = a})++aaLayerSummary :: Lens' Annotation (Maybe AnnotationLayerSummary)+aaLayerSummary+  = lens _aaLayerSummary+      (\ s a -> s{_aaLayerSummary = a})++-- | The highlight style for this annotation.+aaHighlightStyle :: Lens' Annotation (Maybe Text)+aaHighlightStyle+  = lens _aaHighlightStyle+      (\ s a -> s{_aaHighlightStyle = a})++-- | Selection ranges sent from the client.+aaClientVersionRanges :: Lens' Annotation (Maybe AnnotationClientVersionRanges)+aaClientVersionRanges+  = lens _aaClientVersionRanges+      (\ s a -> s{_aaClientVersionRanges = a})++-- | Pages that this annotation spans.+aaPageIds :: Lens' Annotation [Text]+aaPageIds+  = lens _aaPageIds (\ s a -> s{_aaPageIds = a}) .+      _Default+      . _Coerce++-- | Resource type.+aaKind :: Lens' Annotation Text+aaKind = lens _aaKind (\ s a -> s{_aaKind = a})++-- | User-created data for this annotation.+aaData :: Lens' Annotation (Maybe Text)+aaData = lens _aaData (\ s a -> s{_aaData = a})++-- | Timestamp for the created time of this annotation.+aaCreated :: Lens' Annotation (Maybe UTCTime)+aaCreated+  = lens _aaCreated (\ s a -> s{_aaCreated = a}) .+      mapping _DateTime++-- | 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)+aaAfterSelectedText+  = lens _aaAfterSelectedText+      (\ s a -> s{_aaAfterSelectedText = a})++-- | URL to this resource.+aaSelfLink :: Lens' Annotation (Maybe Text)+aaSelfLink+  = lens _aaSelfLink (\ s a -> s{_aaSelfLink = a})++-- | Selection ranges for the most recent content version.+aaCurrentVersionRanges :: Lens' Annotation (Maybe AnnotationCurrentVersionRanges)+aaCurrentVersionRanges+  = lens _aaCurrentVersionRanges+      (\ s a -> s{_aaCurrentVersionRanges = a})++-- | The volume that this annotation belongs to.+aaVolumeId :: Lens' Annotation (Maybe Text)+aaVolumeId+  = lens _aaVolumeId (\ s a -> s{_aaVolumeId = a})++-- | 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)+aaBeforeSelectedText+  = lens _aaBeforeSelectedText+      (\ s a -> s{_aaBeforeSelectedText = a})++-- | Id of this annotation, in the form of a GUID.+aaId :: Lens' Annotation (Maybe Text)+aaId = lens _aaId (\ s a -> s{_aaId = a})++-- | Indicates that this annotation is deleted.+aaDeleted :: Lens' Annotation (Maybe Bool)+aaDeleted+  = lens _aaDeleted (\ s a -> s{_aaDeleted = a})++-- | Timestamp for the last time this annotation was modified.+aaUpdated :: Lens' Annotation (Maybe UTCTime)+aaUpdated+  = lens _aaUpdated (\ s a -> s{_aaUpdated = a}) .+      mapping _DateTime++-- | The layer this annotation is for.+aaLayerId :: Lens' Annotation (Maybe Text)+aaLayerId+  = lens _aaLayerId (\ s a -> s{_aaLayerId = a})++instance FromJSON Annotation where+        parseJSON+          = withObject "Annotation"+              (\ o ->+                 Annotation <$>+                   (o .:? "selectedText") <*> (o .:? "layerSummary") <*>+                     (o .:? "highlightStyle")+                     <*> (o .:? "clientVersionRanges")+                     <*> (o .:? "pageIds" .!= mempty)+                     <*> (o .:? "kind" .!= "books#annotation")+                     <*> (o .:? "data")+                     <*> (o .:? "created")+                     <*> (o .:? "afterSelectedText")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "currentVersionRanges")+                     <*> (o .:? "volumeId")+                     <*> (o .:? "beforeSelectedText")+                     <*> (o .:? "id")+                     <*> (o .:? "deleted")+                     <*> (o .:? "updated")+                     <*> (o .:? "layerId"))++instance ToJSON Annotation where+        toJSON Annotation{..}+          = object+              (catMaybes+                 [("selectedText" .=) <$> _aaSelectedText,+                  ("layerSummary" .=) <$> _aaLayerSummary,+                  ("highlightStyle" .=) <$> _aaHighlightStyle,+                  ("clientVersionRanges" .=) <$>+                    _aaClientVersionRanges,+                  ("pageIds" .=) <$> _aaPageIds,+                  Just ("kind" .= _aaKind), ("data" .=) <$> _aaData,+                  ("created" .=) <$> _aaCreated,+                  ("afterSelectedText" .=) <$> _aaAfterSelectedText,+                  ("selfLink" .=) <$> _aaSelfLink,+                  ("currentVersionRanges" .=) <$>+                    _aaCurrentVersionRanges,+                  ("volumeId" .=) <$> _aaVolumeId,+                  ("beforeSelectedText" .=) <$> _aaBeforeSelectedText,+                  ("id" .=) <$> _aaId, ("deleted" .=) <$> _aaDeleted,+                  ("updated" .=) <$> _aaUpdated,+                  ("layerId" .=) <$> _aaLayerId])++-- | Author of this review.+--+-- /See:/ 'reviewAuthor' smart constructor.+newtype ReviewAuthor = ReviewAuthor+    { _raDisplayName :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ReviewAuthor' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'raDisplayName'+reviewAuthor+    :: ReviewAuthor+reviewAuthor =+    ReviewAuthor+    { _raDisplayName = Nothing+    }++-- | Name of this person.+raDisplayName :: Lens' ReviewAuthor (Maybe Text)+raDisplayName+  = lens _raDisplayName+      (\ s a -> s{_raDisplayName = a})++instance FromJSON ReviewAuthor where+        parseJSON+          = withObject "ReviewAuthor"+              (\ o -> ReviewAuthor <$> (o .:? "displayName"))++instance ToJSON ReviewAuthor where+        toJSON ReviewAuthor{..}+          = object+              (catMaybes [("displayName" .=) <$> _raDisplayName])++-- | The viewport for showing this location. This is a latitude, longitude+-- rectangle.+--+-- /See:/ 'geolayerDataGeoViewport' smart constructor.+data GeolayerDataGeoViewport = GeolayerDataGeoViewport+    { _gdgvHi :: !(Maybe GeolayerDataGeoViewportHi)+    , _gdgvLo :: !(Maybe GeolayerDataGeoViewportLo)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GeolayerDataGeoViewport' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdgvHi'+--+-- * 'gdgvLo'+geolayerDataGeoViewport+    :: GeolayerDataGeoViewport+geolayerDataGeoViewport =+    GeolayerDataGeoViewport+    { _gdgvHi = Nothing+    , _gdgvLo = Nothing+    }++gdgvHi :: Lens' GeolayerDataGeoViewport (Maybe GeolayerDataGeoViewportHi)+gdgvHi = lens _gdgvHi (\ s a -> s{_gdgvHi = a})++gdgvLo :: Lens' GeolayerDataGeoViewport (Maybe GeolayerDataGeoViewportLo)+gdgvLo = lens _gdgvLo (\ s a -> s{_gdgvLo = a})++instance FromJSON GeolayerDataGeoViewport where+        parseJSON+          = withObject "GeolayerDataGeoViewport"+              (\ o ->+                 GeolayerDataGeoViewport <$>+                   (o .:? "hi") <*> (o .:? "lo"))++instance ToJSON GeolayerDataGeoViewport where+        toJSON GeolayerDataGeoViewport{..}+          = object+              (catMaybes+                 [("hi" .=) <$> _gdgvHi, ("lo" .=) <$> _gdgvLo])++-- | User specific information related to this volume. (e.g. page this user+-- last read or whether they purchased this book)+--+-- /See:/ 'volumeUserInfo' smart constructor.+data VolumeUserInfo = VolumeUserInfo+    { _vuiCopy                   :: !(Maybe VolumeUserInfoCopy)+    , _vuiUserUploadedVolumeInfo :: !(Maybe VolumeUserInfoUserUploadedVolumeInfo)+    , _vuiIsPurchased            :: !(Maybe Bool)+    , _vuiEntitlementType        :: !(Maybe (Textual Int32))+    , _vuiAcquisitionType        :: !(Maybe (Textual Int32))+    , _vuiRentalState            :: !(Maybe Text)+    , _vuiIsPreOrdered           :: !(Maybe Bool)+    , _vuiReview                 :: !(Maybe Review)+    , _vuiRentalPeriod           :: !(Maybe VolumeUserInfoRentalPeriod)+    , _vuiUpdated                :: !(Maybe DateTime')+    , _vuiIsUploaded             :: !(Maybe Bool)+    , _vuiIsInMyBooks            :: !(Maybe Bool)+    , _vuiReadingPosition        :: !(Maybe ReadingPosition)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeUserInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vuiCopy'+--+-- * 'vuiUserUploadedVolumeInfo'+--+-- * 'vuiIsPurchased'+--+-- * 'vuiEntitlementType'+--+-- * 'vuiAcquisitionType'+--+-- * 'vuiRentalState'+--+-- * 'vuiIsPreOrdered'+--+-- * 'vuiReview'+--+-- * 'vuiRentalPeriod'+--+-- * 'vuiUpdated'+--+-- * 'vuiIsUploaded'+--+-- * 'vuiIsInMyBooks'+--+-- * 'vuiReadingPosition'+volumeUserInfo+    :: VolumeUserInfo+volumeUserInfo =+    VolumeUserInfo+    { _vuiCopy = Nothing+    , _vuiUserUploadedVolumeInfo = Nothing+    , _vuiIsPurchased = Nothing+    , _vuiEntitlementType = Nothing+    , _vuiAcquisitionType = Nothing+    , _vuiRentalState = Nothing+    , _vuiIsPreOrdered = Nothing+    , _vuiReview = Nothing+    , _vuiRentalPeriod = Nothing+    , _vuiUpdated = Nothing+    , _vuiIsUploaded = Nothing+    , _vuiIsInMyBooks = Nothing+    , _vuiReadingPosition = Nothing+    }++-- | Copy\/Paste accounting information.+vuiCopy :: Lens' VolumeUserInfo (Maybe VolumeUserInfoCopy)+vuiCopy = lens _vuiCopy (\ s a -> s{_vuiCopy = a})++vuiUserUploadedVolumeInfo :: Lens' VolumeUserInfo (Maybe VolumeUserInfoUserUploadedVolumeInfo)+vuiUserUploadedVolumeInfo+  = lens _vuiUserUploadedVolumeInfo+      (\ s a -> s{_vuiUserUploadedVolumeInfo = a})++-- | Whether or not this volume was purchased by the authenticated user+-- making the request. (In LITE projection.)+vuiIsPurchased :: Lens' VolumeUserInfo (Maybe Bool)+vuiIsPurchased+  = lens _vuiIsPurchased+      (\ s a -> s{_vuiIsPurchased = a})++-- | Whether this volume is purchased, sample, pd download etc.+vuiEntitlementType :: Lens' VolumeUserInfo (Maybe Int32)+vuiEntitlementType+  = lens _vuiEntitlementType+      (\ s a -> s{_vuiEntitlementType = a})+      . mapping _Coerce++-- | How this volume was acquired.+vuiAcquisitionType :: Lens' VolumeUserInfo (Maybe Int32)+vuiAcquisitionType+  = lens _vuiAcquisitionType+      (\ s a -> s{_vuiAcquisitionType = a})+      . mapping _Coerce++-- | Whether this book is an active or an expired rental.+vuiRentalState :: Lens' VolumeUserInfo (Maybe Text)+vuiRentalState+  = lens _vuiRentalState+      (\ s a -> s{_vuiRentalState = a})++-- | Whether or not this volume was pre-ordered by the authenticated user+-- making the request. (In LITE projection.)+vuiIsPreOrdered :: Lens' VolumeUserInfo (Maybe Bool)+vuiIsPreOrdered+  = lens _vuiIsPreOrdered+      (\ s a -> s{_vuiIsPreOrdered = a})++-- | This user\'s review of this volume, if one exists.+vuiReview :: Lens' VolumeUserInfo (Maybe Review)+vuiReview+  = lens _vuiReview (\ s a -> s{_vuiReview = a})++-- | Period during this book is\/was a valid rental.+vuiRentalPeriod :: Lens' VolumeUserInfo (Maybe VolumeUserInfoRentalPeriod)+vuiRentalPeriod+  = lens _vuiRentalPeriod+      (\ s a -> s{_vuiRentalPeriod = a})++-- | 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)+vuiUpdated+  = lens _vuiUpdated (\ s a -> s{_vuiUpdated = a}) .+      mapping _DateTime++-- | Whether or not this volume was user uploaded.+vuiIsUploaded :: Lens' VolumeUserInfo (Maybe Bool)+vuiIsUploaded+  = lens _vuiIsUploaded+      (\ s a -> s{_vuiIsUploaded = a})++-- | Whether or not this volume is currently in \"my books.\"+vuiIsInMyBooks :: Lens' VolumeUserInfo (Maybe Bool)+vuiIsInMyBooks+  = lens _vuiIsInMyBooks+      (\ s a -> s{_vuiIsInMyBooks = a})++-- | The user\'s current reading position in the volume, if one is available.+-- (In LITE projection.)+vuiReadingPosition :: Lens' VolumeUserInfo (Maybe ReadingPosition)+vuiReadingPosition+  = lens _vuiReadingPosition+      (\ s a -> s{_vuiReadingPosition = a})++instance FromJSON VolumeUserInfo where+        parseJSON+          = withObject "VolumeUserInfo"+              (\ o ->+                 VolumeUserInfo <$>+                   (o .:? "copy") <*> (o .:? "userUploadedVolumeInfo")+                     <*> (o .:? "isPurchased")+                     <*> (o .:? "entitlementType")+                     <*> (o .:? "acquisitionType")+                     <*> (o .:? "rentalState")+                     <*> (o .:? "isPreordered")+                     <*> (o .:? "review")+                     <*> (o .:? "rentalPeriod")+                     <*> (o .:? "updated")+                     <*> (o .:? "isUploaded")+                     <*> (o .:? "isInMyBooks")+                     <*> (o .:? "readingPosition"))++instance ToJSON VolumeUserInfo where+        toJSON VolumeUserInfo{..}+          = object+              (catMaybes+                 [("copy" .=) <$> _vuiCopy,+                  ("userUploadedVolumeInfo" .=) <$>+                    _vuiUserUploadedVolumeInfo,+                  ("isPurchased" .=) <$> _vuiIsPurchased,+                  ("entitlementType" .=) <$> _vuiEntitlementType,+                  ("acquisitionType" .=) <$> _vuiAcquisitionType,+                  ("rentalState" .=) <$> _vuiRentalState,+                  ("isPreordered" .=) <$> _vuiIsPreOrdered,+                  ("review" .=) <$> _vuiReview,+                  ("rentalPeriod" .=) <$> _vuiRentalPeriod,+                  ("updated" .=) <$> _vuiUpdated,+                  ("isUploaded" .=) <$> _vuiIsUploaded,+                  ("isInMyBooks" .=) <$> _vuiIsInMyBooks,+                  ("readingPosition" .=) <$> _vuiReadingPosition])++--+-- /See:/ 'layersummary' smart constructor.+data Layersummary = Layersummary+    { _lAnnotationsDataLink      :: !(Maybe Text)+    , _lAnnotationsLink          :: !(Maybe Text)+    , _lKind                     :: !Text+    , _lDataCount                :: !(Maybe (Textual Int32))+    , _lContentVersion           :: !(Maybe Text)+    , _lVolumeAnnotationsVersion :: !(Maybe Text)+    , _lAnnotationCount          :: !(Maybe (Textual Int32))+    , _lAnnotationTypes          :: !(Maybe [Text])+    , _lSelfLink                 :: !(Maybe Text)+    , _lVolumeId                 :: !(Maybe Text)+    , _lId                       :: !(Maybe Text)+    , _lUpdated                  :: !(Maybe DateTime')+    , _lLayerId                  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Layersummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lAnnotationsDataLink'+--+-- * 'lAnnotationsLink'+--+-- * 'lKind'+--+-- * 'lDataCount'+--+-- * 'lContentVersion'+--+-- * 'lVolumeAnnotationsVersion'+--+-- * 'lAnnotationCount'+--+-- * 'lAnnotationTypes'+--+-- * 'lSelfLink'+--+-- * 'lVolumeId'+--+-- * 'lId'+--+-- * 'lUpdated'+--+-- * 'lLayerId'+layersummary+    :: Layersummary+layersummary =+    Layersummary+    { _lAnnotationsDataLink = Nothing+    , _lAnnotationsLink = Nothing+    , _lKind = "books#layersummary"+    , _lDataCount = Nothing+    , _lContentVersion = Nothing+    , _lVolumeAnnotationsVersion = Nothing+    , _lAnnotationCount = Nothing+    , _lAnnotationTypes = Nothing+    , _lSelfLink = Nothing+    , _lVolumeId = Nothing+    , _lId = Nothing+    , _lUpdated = Nothing+    , _lLayerId = Nothing+    }++-- | Link to get data for this annotation.+lAnnotationsDataLink :: Lens' Layersummary (Maybe Text)+lAnnotationsDataLink+  = lens _lAnnotationsDataLink+      (\ s a -> s{_lAnnotationsDataLink = a})++-- | The link to get the annotations for this layer.+lAnnotationsLink :: Lens' Layersummary (Maybe Text)+lAnnotationsLink+  = lens _lAnnotationsLink+      (\ s a -> s{_lAnnotationsLink = a})++-- | Resource Type+lKind :: Lens' Layersummary Text+lKind = lens _lKind (\ s a -> s{_lKind = a})++-- | The number of data items for this layer.+lDataCount :: Lens' Layersummary (Maybe Int32)+lDataCount+  = lens _lDataCount (\ s a -> s{_lDataCount = a}) .+      mapping _Coerce++-- | The content version this resource is for.+lContentVersion :: Lens' Layersummary (Maybe Text)+lContentVersion+  = lens _lContentVersion+      (\ s a -> s{_lContentVersion = a})++-- | 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)+lVolumeAnnotationsVersion+  = lens _lVolumeAnnotationsVersion+      (\ s a -> s{_lVolumeAnnotationsVersion = a})++-- | The number of annotations for this layer.+lAnnotationCount :: Lens' Layersummary (Maybe Int32)+lAnnotationCount+  = lens _lAnnotationCount+      (\ s a -> s{_lAnnotationCount = a})+      . mapping _Coerce++-- | The list of annotation types contained for this layer.+lAnnotationTypes :: Lens' Layersummary [Text]+lAnnotationTypes+  = lens _lAnnotationTypes+      (\ s a -> s{_lAnnotationTypes = a})+      . _Default+      . _Coerce++-- | URL to this resource.+lSelfLink :: Lens' Layersummary (Maybe Text)+lSelfLink+  = lens _lSelfLink (\ s a -> s{_lSelfLink = a})++-- | The volume id this resource is for.+lVolumeId :: Lens' Layersummary (Maybe Text)+lVolumeId+  = lens _lVolumeId (\ s a -> s{_lVolumeId = a})++-- | Unique id of this layer summary.+lId :: Lens' Layersummary (Maybe Text)+lId = lens _lId (\ s a -> s{_lId = a})++-- | Timestamp for the last time an item in this layer was updated. (RFC 3339+-- UTC date-time format).+lUpdated :: Lens' Layersummary (Maybe UTCTime)+lUpdated+  = lens _lUpdated (\ s a -> s{_lUpdated = a}) .+      mapping _DateTime++-- | The layer id for this summary.+lLayerId :: Lens' Layersummary (Maybe Text)+lLayerId = lens _lLayerId (\ s a -> s{_lLayerId = a})++instance FromJSON Layersummary where+        parseJSON+          = withObject "Layersummary"+              (\ o ->+                 Layersummary <$>+                   (o .:? "annotationsDataLink") <*>+                     (o .:? "annotationsLink")+                     <*> (o .:? "kind" .!= "books#layersummary")+                     <*> (o .:? "dataCount")+                     <*> (o .:? "contentVersion")+                     <*> (o .:? "volumeAnnotationsVersion")+                     <*> (o .:? "annotationCount")+                     <*> (o .:? "annotationTypes" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "volumeId")+                     <*> (o .:? "id")+                     <*> (o .:? "updated")+                     <*> (o .:? "layerId"))++instance ToJSON Layersummary where+        toJSON Layersummary{..}+          = object+              (catMaybes+                 [("annotationsDataLink" .=) <$>+                    _lAnnotationsDataLink,+                  ("annotationsLink" .=) <$> _lAnnotationsLink,+                  Just ("kind" .= _lKind),+                  ("dataCount" .=) <$> _lDataCount,+                  ("contentVersion" .=) <$> _lContentVersion,+                  ("volumeAnnotationsVersion" .=) <$>+                    _lVolumeAnnotationsVersion,+                  ("annotationCount" .=) <$> _lAnnotationCount,+                  ("annotationTypes" .=) <$> _lAnnotationTypes,+                  ("selfLink" .=) <$> _lSelfLink,+                  ("volumeId" .=) <$> _lVolumeId, ("id" .=) <$> _lId,+                  ("updated" .=) <$> _lUpdated,+                  ("layerId" .=) <$> _lLayerId])++-- | The content ranges to identify the selected text.+--+-- /See:/ 'volumeannotationContentRanges' smart constructor.+data VolumeannotationContentRanges = VolumeannotationContentRanges+    { _vcrGbImageRange   :: !(Maybe BooksAnnotationsRange)+    , _vcrContentVersion :: !(Maybe Text)+    , _vcrGbTextRange    :: !(Maybe BooksAnnotationsRange)+    , _vcrCfiRange       :: !(Maybe BooksAnnotationsRange)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeannotationContentRanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vcrGbImageRange'+--+-- * 'vcrContentVersion'+--+-- * 'vcrGbTextRange'+--+-- * 'vcrCfiRange'+volumeannotationContentRanges+    :: VolumeannotationContentRanges+volumeannotationContentRanges =+    VolumeannotationContentRanges+    { _vcrGbImageRange = Nothing+    , _vcrContentVersion = Nothing+    , _vcrGbTextRange = Nothing+    , _vcrCfiRange = Nothing+    }++-- | Range in GB image format for this annotation for version above.+vcrGbImageRange :: Lens' VolumeannotationContentRanges (Maybe BooksAnnotationsRange)+vcrGbImageRange+  = lens _vcrGbImageRange+      (\ s a -> s{_vcrGbImageRange = a})++-- | Content version applicable to ranges below.+vcrContentVersion :: Lens' VolumeannotationContentRanges (Maybe Text)+vcrContentVersion+  = lens _vcrContentVersion+      (\ s a -> s{_vcrContentVersion = a})++-- | Range in GB text format for this annotation for version above.+vcrGbTextRange :: Lens' VolumeannotationContentRanges (Maybe BooksAnnotationsRange)+vcrGbTextRange+  = lens _vcrGbTextRange+      (\ s a -> s{_vcrGbTextRange = a})++-- | Range in CFI format for this annotation for version above.+vcrCfiRange :: Lens' VolumeannotationContentRanges (Maybe BooksAnnotationsRange)+vcrCfiRange+  = lens _vcrCfiRange (\ s a -> s{_vcrCfiRange = a})++instance FromJSON VolumeannotationContentRanges where+        parseJSON+          = withObject "VolumeannotationContentRanges"+              (\ o ->+                 VolumeannotationContentRanges <$>+                   (o .:? "gbImageRange") <*> (o .:? "contentVersion")+                     <*> (o .:? "gbTextRange")+                     <*> (o .:? "cfiRange"))++instance ToJSON VolumeannotationContentRanges where+        toJSON VolumeannotationContentRanges{..}+          = object+              (catMaybes+                 [("gbImageRange" .=) <$> _vcrGbImageRange,+                  ("contentVersion" .=) <$> _vcrContentVersion,+                  ("gbTextRange" .=) <$> _vcrGbTextRange,+                  ("cfiRange" .=) <$> _vcrCfiRange])++-- | 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.).+--+-- /See:/ 'volumeAccessInfo' smart constructor.+data VolumeAccessInfo = VolumeAccessInfo+    { _vaiWebReaderLink                    :: !(Maybe Text)+    , _vaiCountry                          :: !(Maybe Text)+    , _vaiDriveImportedContentLink         :: !(Maybe Text)+    , _vaiExplicitOfflineLicenseManagement :: !(Maybe Bool)+    , _vaiViewability                      :: !(Maybe Text)+    , _vaiQuoteSharingAllowed              :: !(Maybe Bool)+    , _vaiEpub                             :: !(Maybe VolumeAccessInfoEpub)+    , _vaiPdf                              :: !(Maybe VolumeAccessInfoPdf)+    , _vaiTextToSpeechPermission           :: !(Maybe Text)+    , _vaiEmbeddable                       :: !(Maybe Bool)+    , _vaiAccessViewStatus                 :: !(Maybe Text)+    , _vaiDownloadAccess                   :: !(Maybe DownloadAccessRestriction)+    , _vaiViewOrderURL                     :: !(Maybe Text)+    , _vaiPublicDomain                     :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeAccessInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vaiWebReaderLink'+--+-- * 'vaiCountry'+--+-- * 'vaiDriveImportedContentLink'+--+-- * 'vaiExplicitOfflineLicenseManagement'+--+-- * 'vaiViewability'+--+-- * 'vaiQuoteSharingAllowed'+--+-- * 'vaiEpub'+--+-- * 'vaiPdf'+--+-- * 'vaiTextToSpeechPermission'+--+-- * 'vaiEmbeddable'+--+-- * 'vaiAccessViewStatus'+--+-- * 'vaiDownloadAccess'+--+-- * 'vaiViewOrderURL'+--+-- * 'vaiPublicDomain'+volumeAccessInfo+    :: VolumeAccessInfo+volumeAccessInfo =+    VolumeAccessInfo+    { _vaiWebReaderLink = Nothing+    , _vaiCountry = Nothing+    , _vaiDriveImportedContentLink = Nothing+    , _vaiExplicitOfflineLicenseManagement = Nothing+    , _vaiViewability = Nothing+    , _vaiQuoteSharingAllowed = Nothing+    , _vaiEpub = Nothing+    , _vaiPdf = Nothing+    , _vaiTextToSpeechPermission = Nothing+    , _vaiEmbeddable = Nothing+    , _vaiAccessViewStatus = Nothing+    , _vaiDownloadAccess = Nothing+    , _vaiViewOrderURL = Nothing+    , _vaiPublicDomain = Nothing+    }++-- | 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)+vaiWebReaderLink+  = lens _vaiWebReaderLink+      (\ s a -> s{_vaiWebReaderLink = a})++-- | The two-letter ISO_3166-1 country code for which this access information+-- is valid. (In LITE projection.)+vaiCountry :: Lens' VolumeAccessInfo (Maybe Text)+vaiCountry+  = lens _vaiCountry (\ s a -> s{_vaiCountry = a})++-- | 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)+vaiDriveImportedContentLink+  = lens _vaiDriveImportedContentLink+      (\ s a -> s{_vaiDriveImportedContentLink = a})++-- | 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)+vaiExplicitOfflineLicenseManagement+  = lens _vaiExplicitOfflineLicenseManagement+      (\ s a ->+         s{_vaiExplicitOfflineLicenseManagement = a})++-- | 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)+vaiViewability+  = lens _vaiViewability+      (\ s a -> s{_vaiViewability = a})++-- | Whether quote sharing is allowed for this volume.+vaiQuoteSharingAllowed :: Lens' VolumeAccessInfo (Maybe Bool)+vaiQuoteSharingAllowed+  = lens _vaiQuoteSharingAllowed+      (\ s a -> s{_vaiQuoteSharingAllowed = a})++-- | Information about epub content. (In LITE projection.)+vaiEpub :: Lens' VolumeAccessInfo (Maybe VolumeAccessInfoEpub)+vaiEpub = lens _vaiEpub (\ s a -> s{_vaiEpub = a})++-- | Information about pdf content. (In LITE projection.)+vaiPdf :: Lens' VolumeAccessInfo (Maybe VolumeAccessInfoPdf)+vaiPdf = lens _vaiPdf (\ s a -> s{_vaiPdf = a})++-- | Whether text-to-speech is permitted for this volume. Values can be+-- ALLOWED, ALLOWED_FOR_ACCESSIBILITY, or NOT_ALLOWED.+vaiTextToSpeechPermission :: Lens' VolumeAccessInfo (Maybe Text)+vaiTextToSpeechPermission+  = lens _vaiTextToSpeechPermission+      (\ s a -> s{_vaiTextToSpeechPermission = a})++-- | Whether this volume can be embedded in a viewport using the Embedded+-- Viewer API.+vaiEmbeddable :: Lens' VolumeAccessInfo (Maybe Bool)+vaiEmbeddable+  = lens _vaiEmbeddable+      (\ s a -> s{_vaiEmbeddable = a})++-- | 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)+vaiAccessViewStatus+  = lens _vaiAccessViewStatus+      (\ s a -> s{_vaiAccessViewStatus = a})++-- | Information about a volume\'s download license access restrictions.+vaiDownloadAccess :: Lens' VolumeAccessInfo (Maybe DownloadAccessRestriction)+vaiDownloadAccess+  = lens _vaiDownloadAccess+      (\ s a -> s{_vaiDownloadAccess = a})++-- | 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)+vaiViewOrderURL+  = lens _vaiViewOrderURL+      (\ s a -> s{_vaiViewOrderURL = a})++-- | Whether or not this book is public domain in the country listed above.+vaiPublicDomain :: Lens' VolumeAccessInfo (Maybe Bool)+vaiPublicDomain+  = lens _vaiPublicDomain+      (\ s a -> s{_vaiPublicDomain = a})++instance FromJSON VolumeAccessInfo where+        parseJSON+          = withObject "VolumeAccessInfo"+              (\ o ->+                 VolumeAccessInfo <$>+                   (o .:? "webReaderLink") <*> (o .:? "country") <*>+                     (o .:? "driveImportedContentLink")+                     <*> (o .:? "explicitOfflineLicenseManagement")+                     <*> (o .:? "viewability")+                     <*> (o .:? "quoteSharingAllowed")+                     <*> (o .:? "epub")+                     <*> (o .:? "pdf")+                     <*> (o .:? "textToSpeechPermission")+                     <*> (o .:? "embeddable")+                     <*> (o .:? "accessViewStatus")+                     <*> (o .:? "downloadAccess")+                     <*> (o .:? "viewOrderUrl")+                     <*> (o .:? "publicDomain"))++instance ToJSON VolumeAccessInfo where+        toJSON VolumeAccessInfo{..}+          = object+              (catMaybes+                 [("webReaderLink" .=) <$> _vaiWebReaderLink,+                  ("country" .=) <$> _vaiCountry,+                  ("driveImportedContentLink" .=) <$>+                    _vaiDriveImportedContentLink,+                  ("explicitOfflineLicenseManagement" .=) <$>+                    _vaiExplicitOfflineLicenseManagement,+                  ("viewability" .=) <$> _vaiViewability,+                  ("quoteSharingAllowed" .=) <$>+                    _vaiQuoteSharingAllowed,+                  ("epub" .=) <$> _vaiEpub, ("pdf" .=) <$> _vaiPdf,+                  ("textToSpeechPermission" .=) <$>+                    _vaiTextToSpeechPermission,+                  ("embeddable" .=) <$> _vaiEmbeddable,+                  ("accessViewStatus" .=) <$> _vaiAccessViewStatus,+                  ("downloadAccess" .=) <$> _vaiDownloadAccess,+                  ("viewOrderUrl" .=) <$> _vaiViewOrderURL,+                  ("publicDomain" .=) <$> _vaiPublicDomain])++-- | A list of image links for all the sizes that are available. (In LITE+-- projection.)+--+-- /See:/ 'volumeVolumeInfoImageLinks' smart constructor.+data VolumeVolumeInfoImageLinks = VolumeVolumeInfoImageLinks+    { _vviilThumbnail      :: !(Maybe Text)+    , _vviilSmall          :: !(Maybe Text)+    , _vviilExtraLarge     :: !(Maybe Text)+    , _vviilLarge          :: !(Maybe Text)+    , _vviilMedium         :: !(Maybe Text)+    , _vviilSmallThumbnail :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeVolumeInfoImageLinks' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vviilThumbnail'+--+-- * 'vviilSmall'+--+-- * 'vviilExtraLarge'+--+-- * 'vviilLarge'+--+-- * 'vviilMedium'+--+-- * 'vviilSmallThumbnail'+volumeVolumeInfoImageLinks+    :: VolumeVolumeInfoImageLinks+volumeVolumeInfoImageLinks =+    VolumeVolumeInfoImageLinks+    { _vviilThumbnail = Nothing+    , _vviilSmall = Nothing+    , _vviilExtraLarge = Nothing+    , _vviilLarge = Nothing+    , _vviilMedium = Nothing+    , _vviilSmallThumbnail = Nothing+    }++-- | Image link for thumbnail size (width of ~128 pixels). (In LITE+-- projection)+vviilThumbnail :: Lens' VolumeVolumeInfoImageLinks (Maybe Text)+vviilThumbnail+  = lens _vviilThumbnail+      (\ s a -> s{_vviilThumbnail = a})++-- | Image link for small size (width of ~300 pixels). (In LITE projection)+vviilSmall :: Lens' VolumeVolumeInfoImageLinks (Maybe Text)+vviilSmall+  = lens _vviilSmall (\ s a -> s{_vviilSmall = a})++-- | Image link for extra large size (width of ~1280 pixels). (In LITE+-- projection)+vviilExtraLarge :: Lens' VolumeVolumeInfoImageLinks (Maybe Text)+vviilExtraLarge+  = lens _vviilExtraLarge+      (\ s a -> s{_vviilExtraLarge = a})++-- | Image link for large size (width of ~800 pixels). (In LITE projection)+vviilLarge :: Lens' VolumeVolumeInfoImageLinks (Maybe Text)+vviilLarge+  = lens _vviilLarge (\ s a -> s{_vviilLarge = a})++-- | Image link for medium size (width of ~575 pixels). (In LITE projection)+vviilMedium :: Lens' VolumeVolumeInfoImageLinks (Maybe Text)+vviilMedium+  = lens _vviilMedium (\ s a -> s{_vviilMedium = a})++-- | Image link for small thumbnail size (width of ~80 pixels). (In LITE+-- projection)+vviilSmallThumbnail :: Lens' VolumeVolumeInfoImageLinks (Maybe Text)+vviilSmallThumbnail+  = lens _vviilSmallThumbnail+      (\ s a -> s{_vviilSmallThumbnail = a})++instance FromJSON VolumeVolumeInfoImageLinks where+        parseJSON+          = withObject "VolumeVolumeInfoImageLinks"+              (\ o ->+                 VolumeVolumeInfoImageLinks <$>+                   (o .:? "thumbnail") <*> (o .:? "small") <*>+                     (o .:? "extraLarge")+                     <*> (o .:? "large")+                     <*> (o .:? "medium")+                     <*> (o .:? "smallThumbnail"))++instance ToJSON VolumeVolumeInfoImageLinks where+        toJSON VolumeVolumeInfoImageLinks{..}+          = object+              (catMaybes+                 [("thumbnail" .=) <$> _vviilThumbnail,+                  ("small" .=) <$> _vviilSmall,+                  ("extraLarge" .=) <$> _vviilExtraLarge,+                  ("large" .=) <$> _vviilLarge,+                  ("medium" .=) <$> _vviilMedium,+                  ("smallThumbnail" .=) <$> _vviilSmallThumbnail])++--+-- /See:/ 'volumeUserInfoUserUploadedVolumeInfo' smart constructor.+newtype VolumeUserInfoUserUploadedVolumeInfo = VolumeUserInfoUserUploadedVolumeInfo+    { _vuiuuviProcessingState :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeUserInfoUserUploadedVolumeInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vuiuuviProcessingState'+volumeUserInfoUserUploadedVolumeInfo+    :: VolumeUserInfoUserUploadedVolumeInfo+volumeUserInfoUserUploadedVolumeInfo =+    VolumeUserInfoUserUploadedVolumeInfo+    { _vuiuuviProcessingState = Nothing+    }++vuiuuviProcessingState :: Lens' VolumeUserInfoUserUploadedVolumeInfo (Maybe Text)+vuiuuviProcessingState+  = lens _vuiuuviProcessingState+      (\ s a -> s{_vuiuuviProcessingState = a})++instance FromJSON+         VolumeUserInfoUserUploadedVolumeInfo where+        parseJSON+          = withObject "VolumeUserInfoUserUploadedVolumeInfo"+              (\ o ->+                 VolumeUserInfoUserUploadedVolumeInfo <$>+                   (o .:? "processingState"))++instance ToJSON VolumeUserInfoUserUploadedVolumeInfo+         where+        toJSON VolumeUserInfoUserUploadedVolumeInfo{..}+          = object+              (catMaybes+                 [("processingState" .=) <$> _vuiuuviProcessingState])++-- | Copy\/Paste accounting information.+--+-- /See:/ 'volumeUserInfoCopy' smart constructor.+data VolumeUserInfoCopy = VolumeUserInfoCopy+    { _vuicLimitType               :: !(Maybe Text)+    , _vuicAllowedCharacterCount   :: !(Maybe (Textual Int32))+    , _vuicUpdated                 :: !(Maybe DateTime')+    , _vuicRemainingCharacterCount :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeUserInfoCopy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vuicLimitType'+--+-- * 'vuicAllowedCharacterCount'+--+-- * 'vuicUpdated'+--+-- * 'vuicRemainingCharacterCount'+volumeUserInfoCopy+    :: VolumeUserInfoCopy+volumeUserInfoCopy =+    VolumeUserInfoCopy+    { _vuicLimitType = Nothing+    , _vuicAllowedCharacterCount = Nothing+    , _vuicUpdated = Nothing+    , _vuicRemainingCharacterCount = Nothing+    }++vuicLimitType :: Lens' VolumeUserInfoCopy (Maybe Text)+vuicLimitType+  = lens _vuicLimitType+      (\ s a -> s{_vuicLimitType = a})++vuicAllowedCharacterCount :: Lens' VolumeUserInfoCopy (Maybe Int32)+vuicAllowedCharacterCount+  = lens _vuicAllowedCharacterCount+      (\ s a -> s{_vuicAllowedCharacterCount = a})+      . mapping _Coerce++vuicUpdated :: Lens' VolumeUserInfoCopy (Maybe UTCTime)+vuicUpdated+  = lens _vuicUpdated (\ s a -> s{_vuicUpdated = a}) .+      mapping _DateTime++vuicRemainingCharacterCount :: Lens' VolumeUserInfoCopy (Maybe Int32)+vuicRemainingCharacterCount+  = lens _vuicRemainingCharacterCount+      (\ s a -> s{_vuicRemainingCharacterCount = a})+      . mapping _Coerce++instance FromJSON VolumeUserInfoCopy where+        parseJSON+          = withObject "VolumeUserInfoCopy"+              (\ o ->+                 VolumeUserInfoCopy <$>+                   (o .:? "limitType") <*>+                     (o .:? "allowedCharacterCount")+                     <*> (o .:? "updated")+                     <*> (o .:? "remainingCharacterCount"))++instance ToJSON VolumeUserInfoCopy where+        toJSON VolumeUserInfoCopy{..}+          = object+              (catMaybes+                 [("limitType" .=) <$> _vuicLimitType,+                  ("allowedCharacterCount" .=) <$>+                    _vuicAllowedCharacterCount,+                  ("updated" .=) <$> _vuicUpdated,+                  ("remainingCharacterCount" .=) <$>+                    _vuicRemainingCharacterCount])++--+-- /See:/ 'booksVolumesRecommendedRateResponse' smart constructor.+newtype BooksVolumesRecommendedRateResponse = BooksVolumesRecommendedRateResponse+    { _bvrrrConsistencyToken :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BooksVolumesRecommendedRateResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bvrrrConsistencyToken'+booksVolumesRecommendedRateResponse+    :: BooksVolumesRecommendedRateResponse+booksVolumesRecommendedRateResponse =+    BooksVolumesRecommendedRateResponse+    { _bvrrrConsistencyToken = Nothing+    }++bvrrrConsistencyToken :: Lens' BooksVolumesRecommendedRateResponse (Maybe Text)+bvrrrConsistencyToken+  = lens _bvrrrConsistencyToken+      (\ s a -> s{_bvrrrConsistencyToken = a})++instance FromJSON BooksVolumesRecommendedRateResponse+         where+        parseJSON+          = withObject "BooksVolumesRecommendedRateResponse"+              (\ o ->+                 BooksVolumesRecommendedRateResponse <$>+                   (o .:? "consistency_token"))++instance ToJSON BooksVolumesRecommendedRateResponse+         where+        toJSON BooksVolumesRecommendedRateResponse{..}+          = object+              (catMaybes+                 [("consistency_token" .=) <$>+                    _bvrrrConsistencyToken])++--+-- /See:/ 'bookshelf' smart constructor.+data Bookshelf = Bookshelf+    { _bAccess             :: !(Maybe Text)+    , _bVolumesLastUpdated :: !(Maybe DateTime')+    , _bKind               :: !Text+    , _bCreated            :: !(Maybe DateTime')+    , _bVolumeCount        :: !(Maybe (Textual Int32))+    , _bSelfLink           :: !(Maybe Text)+    , _bId                 :: !(Maybe (Textual Int32))+    , _bUpdated            :: !(Maybe DateTime')+    , _bTitle              :: !(Maybe Text)+    , _bDescription        :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Bookshelf' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bAccess'+--+-- * 'bVolumesLastUpdated'+--+-- * 'bKind'+--+-- * 'bCreated'+--+-- * 'bVolumeCount'+--+-- * 'bSelfLink'+--+-- * 'bId'+--+-- * 'bUpdated'+--+-- * 'bTitle'+--+-- * 'bDescription'+bookshelf+    :: Bookshelf+bookshelf =+    Bookshelf+    { _bAccess = Nothing+    , _bVolumesLastUpdated = Nothing+    , _bKind = "books#bookshelf"+    , _bCreated = Nothing+    , _bVolumeCount = Nothing+    , _bSelfLink = Nothing+    , _bId = Nothing+    , _bUpdated = Nothing+    , _bTitle = Nothing+    , _bDescription = Nothing+    }++-- | Whether this bookshelf is PUBLIC or PRIVATE.+bAccess :: Lens' Bookshelf (Maybe Text)+bAccess = lens _bAccess (\ s a -> s{_bAccess = a})++-- | Last time a volume was added or removed from this bookshelf (formatted+-- UTC timestamp with millisecond resolution).+bVolumesLastUpdated :: Lens' Bookshelf (Maybe UTCTime)+bVolumesLastUpdated+  = lens _bVolumesLastUpdated+      (\ s a -> s{_bVolumesLastUpdated = a})+      . mapping _DateTime++-- | Resource type for bookshelf metadata.+bKind :: Lens' Bookshelf Text+bKind = lens _bKind (\ s a -> s{_bKind = a})++-- | Created time for this bookshelf (formatted UTC timestamp with+-- millisecond resolution).+bCreated :: Lens' Bookshelf (Maybe UTCTime)+bCreated+  = lens _bCreated (\ s a -> s{_bCreated = a}) .+      mapping _DateTime++-- | Number of volumes in this bookshelf.+bVolumeCount :: Lens' Bookshelf (Maybe Int32)+bVolumeCount+  = lens _bVolumeCount (\ s a -> s{_bVolumeCount = a})+      . mapping _Coerce++-- | URL to this resource.+bSelfLink :: Lens' Bookshelf (Maybe Text)+bSelfLink+  = lens _bSelfLink (\ s a -> s{_bSelfLink = a})++-- | Id of this bookshelf, only unique by user.+bId :: Lens' Bookshelf (Maybe Int32)+bId+  = lens _bId (\ s a -> s{_bId = a}) . mapping _Coerce++-- | Last modified time of this bookshelf (formatted UTC timestamp with+-- millisecond resolution).+bUpdated :: Lens' Bookshelf (Maybe UTCTime)+bUpdated+  = lens _bUpdated (\ s a -> s{_bUpdated = a}) .+      mapping _DateTime++-- | Title of this bookshelf.+bTitle :: Lens' Bookshelf (Maybe Text)+bTitle = lens _bTitle (\ s a -> s{_bTitle = a})++-- | Description of this bookshelf.+bDescription :: Lens' Bookshelf (Maybe Text)+bDescription+  = lens _bDescription (\ s a -> s{_bDescription = a})++instance FromJSON Bookshelf where+        parseJSON+          = withObject "Bookshelf"+              (\ o ->+                 Bookshelf <$>+                   (o .:? "access") <*> (o .:? "volumesLastUpdated") <*>+                     (o .:? "kind" .!= "books#bookshelf")+                     <*> (o .:? "created")+                     <*> (o .:? "volumeCount")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id")+                     <*> (o .:? "updated")+                     <*> (o .:? "title")+                     <*> (o .:? "description"))++instance ToJSON Bookshelf where+        toJSON Bookshelf{..}+          = object+              (catMaybes+                 [("access" .=) <$> _bAccess,+                  ("volumesLastUpdated" .=) <$> _bVolumesLastUpdated,+                  Just ("kind" .= _bKind),+                  ("created" .=) <$> _bCreated,+                  ("volumeCount" .=) <$> _bVolumeCount,+                  ("selfLink" .=) <$> _bSelfLink, ("id" .=) <$> _bId,+                  ("updated" .=) <$> _bUpdated,+                  ("title" .=) <$> _bTitle,+                  ("description" .=) <$> _bDescription])++--+-- /See:/ 'notification' smart constructor.+data Notification = Notification+    { _nKind    :: !Text+    , _nBody    :: !(Maybe Text)+    , _nLinkURL :: !(Maybe Text)+    , _nIconURL :: !(Maybe Text)+    , _nTitle   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Notification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nKind'+--+-- * 'nBody'+--+-- * 'nLinkURL'+--+-- * 'nIconURL'+--+-- * 'nTitle'+notification+    :: Notification+notification =+    Notification+    { _nKind = "books#notification"+    , _nBody = Nothing+    , _nLinkURL = Nothing+    , _nIconURL = Nothing+    , _nTitle = Nothing+    }++-- | Resource type.+nKind :: Lens' Notification Text+nKind = lens _nKind (\ s a -> s{_nKind = a})++nBody :: Lens' Notification (Maybe Text)+nBody = lens _nBody (\ s a -> s{_nBody = a})++nLinkURL :: Lens' Notification (Maybe Text)+nLinkURL = lens _nLinkURL (\ s a -> s{_nLinkURL = a})++nIconURL :: Lens' Notification (Maybe Text)+nIconURL = lens _nIconURL (\ s a -> s{_nIconURL = a})++nTitle :: Lens' Notification (Maybe Text)+nTitle = lens _nTitle (\ s a -> s{_nTitle = a})++instance FromJSON Notification where+        parseJSON+          = withObject "Notification"+              (\ o ->+                 Notification <$>+                   (o .:? "kind" .!= "books#notification") <*>+                     (o .:? "body")+                     <*> (o .:? "linkUrl")+                     <*> (o .:? "iconUrl")+                     <*> (o .:? "title"))++instance ToJSON Notification where+        toJSON Notification{..}+          = object+              (catMaybes+                 [Just ("kind" .= _nKind), ("body" .=) <$> _nBody,+                  ("linkUrl" .=) <$> _nLinkURL,+                  ("iconUrl" .=) <$> _nIconURL,+                  ("title" .=) <$> _nTitle])++--+-- /See:/ 'annotationsSummaryLayersItem' smart constructor.+data AnnotationsSummaryLayersItem = AnnotationsSummaryLayersItem+    { _asliLimitType               :: !(Maybe Text)+    , _asliAllowedCharacterCount   :: !(Maybe (Textual Int32))+    , _asliUpdated                 :: !(Maybe DateTime')+    , _asliLayerId                 :: !(Maybe Text)+    , _asliRemainingCharacterCount :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AnnotationsSummaryLayersItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'asliLimitType'+--+-- * 'asliAllowedCharacterCount'+--+-- * 'asliUpdated'+--+-- * 'asliLayerId'+--+-- * 'asliRemainingCharacterCount'+annotationsSummaryLayersItem+    :: AnnotationsSummaryLayersItem+annotationsSummaryLayersItem =+    AnnotationsSummaryLayersItem+    { _asliLimitType = Nothing+    , _asliAllowedCharacterCount = Nothing+    , _asliUpdated = Nothing+    , _asliLayerId = Nothing+    , _asliRemainingCharacterCount = Nothing+    }++asliLimitType :: Lens' AnnotationsSummaryLayersItem (Maybe Text)+asliLimitType+  = lens _asliLimitType+      (\ s a -> s{_asliLimitType = a})++asliAllowedCharacterCount :: Lens' AnnotationsSummaryLayersItem (Maybe Int32)+asliAllowedCharacterCount+  = lens _asliAllowedCharacterCount+      (\ s a -> s{_asliAllowedCharacterCount = a})+      . mapping _Coerce++asliUpdated :: Lens' AnnotationsSummaryLayersItem (Maybe UTCTime)+asliUpdated+  = lens _asliUpdated (\ s a -> s{_asliUpdated = a}) .+      mapping _DateTime++asliLayerId :: Lens' AnnotationsSummaryLayersItem (Maybe Text)+asliLayerId+  = lens _asliLayerId (\ s a -> s{_asliLayerId = a})++asliRemainingCharacterCount :: Lens' AnnotationsSummaryLayersItem (Maybe Int32)+asliRemainingCharacterCount+  = lens _asliRemainingCharacterCount+      (\ s a -> s{_asliRemainingCharacterCount = a})+      . mapping _Coerce++instance FromJSON AnnotationsSummaryLayersItem where+        parseJSON+          = withObject "AnnotationsSummaryLayersItem"+              (\ o ->+                 AnnotationsSummaryLayersItem <$>+                   (o .:? "limitType") <*>+                     (o .:? "allowedCharacterCount")+                     <*> (o .:? "updated")+                     <*> (o .:? "layerId")+                     <*> (o .:? "remainingCharacterCount"))++instance ToJSON AnnotationsSummaryLayersItem where+        toJSON AnnotationsSummaryLayersItem{..}+          = object+              (catMaybes+                 [("limitType" .=) <$> _asliLimitType,+                  ("allowedCharacterCount" .=) <$>+                    _asliAllowedCharacterCount,+                  ("updated" .=) <$> _asliUpdated,+                  ("layerId" .=) <$> _asliLayerId,+                  ("remainingCharacterCount" .=) <$>+                    _asliRemainingCharacterCount])++-- | The rental duration (for rental offers only).+--+-- /See:/ 'volumeSaleInfoOffersItemRentalDuration' smart constructor.+data VolumeSaleInfoOffersItemRentalDuration = VolumeSaleInfoOffersItemRentalDuration+    { _vsioirdCount :: !(Maybe (Textual Double))+    , _vsioirdUnit  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeSaleInfoOffersItemRentalDuration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsioirdCount'+--+-- * 'vsioirdUnit'+volumeSaleInfoOffersItemRentalDuration+    :: VolumeSaleInfoOffersItemRentalDuration+volumeSaleInfoOffersItemRentalDuration =+    VolumeSaleInfoOffersItemRentalDuration+    { _vsioirdCount = Nothing+    , _vsioirdUnit = Nothing+    }++vsioirdCount :: Lens' VolumeSaleInfoOffersItemRentalDuration (Maybe Double)+vsioirdCount+  = lens _vsioirdCount (\ s a -> s{_vsioirdCount = a})+      . mapping _Coerce++vsioirdUnit :: Lens' VolumeSaleInfoOffersItemRentalDuration (Maybe Text)+vsioirdUnit+  = lens _vsioirdUnit (\ s a -> s{_vsioirdUnit = a})++instance FromJSON+         VolumeSaleInfoOffersItemRentalDuration where+        parseJSON+          = withObject "VolumeSaleInfoOffersItemRentalDuration"+              (\ o ->+                 VolumeSaleInfoOffersItemRentalDuration <$>+                   (o .:? "count") <*> (o .:? "unit"))++instance ToJSON+         VolumeSaleInfoOffersItemRentalDuration where+        toJSON VolumeSaleInfoOffersItemRentalDuration{..}+          = object+              (catMaybes+                 [("count" .=) <$> _vsioirdCount,+                  ("unit" .=) <$> _vsioirdUnit])++--+-- /See:/ 'dictlayerDataDictWordsItemExamplesItem' smart constructor.+data DictlayerDataDictWordsItemExamplesItem = DictlayerDataDictWordsItemExamplesItem+    { _dddwieiText   :: !(Maybe Text)+    , _dddwieiSource :: !(Maybe DictlayerDataDictWordsItemExamplesItemSource)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictlayerDataDictWordsItemExamplesItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dddwieiText'+--+-- * 'dddwieiSource'+dictlayerDataDictWordsItemExamplesItem+    :: DictlayerDataDictWordsItemExamplesItem+dictlayerDataDictWordsItemExamplesItem =+    DictlayerDataDictWordsItemExamplesItem+    { _dddwieiText = Nothing+    , _dddwieiSource = Nothing+    }++dddwieiText :: Lens' DictlayerDataDictWordsItemExamplesItem (Maybe Text)+dddwieiText+  = lens _dddwieiText (\ s a -> s{_dddwieiText = a})++dddwieiSource :: Lens' DictlayerDataDictWordsItemExamplesItem (Maybe DictlayerDataDictWordsItemExamplesItemSource)+dddwieiSource+  = lens _dddwieiSource+      (\ s a -> s{_dddwieiSource = a})++instance FromJSON+         DictlayerDataDictWordsItemExamplesItem where+        parseJSON+          = withObject "DictlayerDataDictWordsItemExamplesItem"+              (\ o ->+                 DictlayerDataDictWordsItemExamplesItem <$>+                   (o .:? "text") <*> (o .:? "source"))++instance ToJSON+         DictlayerDataDictWordsItemExamplesItem where+        toJSON DictlayerDataDictWordsItemExamplesItem{..}+          = object+              (catMaybes+                 [("text" .=) <$> _dddwieiText,+                  ("source" .=) <$> _dddwieiSource])++--+-- /See:/ 'offersItemsItem' smart constructor.+data OffersItemsItem = OffersItemsItem+    { _oiiItems        :: !(Maybe [OffersItemsItemItemsItem])+    , _oiiArtURL       :: !(Maybe Text)+    , _oiiId           :: !(Maybe Text)+    , _oiiGServicesKey :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OffersItemsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oiiItems'+--+-- * 'oiiArtURL'+--+-- * 'oiiId'+--+-- * 'oiiGServicesKey'+offersItemsItem+    :: OffersItemsItem+offersItemsItem =+    OffersItemsItem+    { _oiiItems = Nothing+    , _oiiArtURL = Nothing+    , _oiiId = Nothing+    , _oiiGServicesKey = Nothing+    }++oiiItems :: Lens' OffersItemsItem [OffersItemsItemItemsItem]+oiiItems+  = lens _oiiItems (\ s a -> s{_oiiItems = a}) .+      _Default+      . _Coerce++oiiArtURL :: Lens' OffersItemsItem (Maybe Text)+oiiArtURL+  = lens _oiiArtURL (\ s a -> s{_oiiArtURL = a})++oiiId :: Lens' OffersItemsItem (Maybe Text)+oiiId = lens _oiiId (\ s a -> s{_oiiId = a})++oiiGServicesKey :: Lens' OffersItemsItem (Maybe Text)+oiiGServicesKey+  = lens _oiiGServicesKey+      (\ s a -> s{_oiiGServicesKey = a})++instance FromJSON OffersItemsItem where+        parseJSON+          = withObject "OffersItemsItem"+              (\ o ->+                 OffersItemsItem <$>+                   (o .:? "items" .!= mempty) <*> (o .:? "artUrl") <*>+                     (o .:? "id")+                     <*> (o .:? "gservicesKey"))++instance ToJSON OffersItemsItem where+        toJSON OffersItemsItem{..}+          = object+              (catMaybes+                 [("items" .=) <$> _oiiItems,+                  ("artUrl" .=) <$> _oiiArtURL, ("id" .=) <$> _oiiId,+                  ("gservicesKey" .=) <$> _oiiGServicesKey])++--+-- /See:/ 'annotationLayerSummary' smart constructor.+data AnnotationLayerSummary = AnnotationLayerSummary+    { _alsLimitType               :: !(Maybe Text)+    , _alsAllowedCharacterCount   :: !(Maybe (Textual Int32))+    , _alsRemainingCharacterCount :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AnnotationLayerSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'alsLimitType'+--+-- * 'alsAllowedCharacterCount'+--+-- * 'alsRemainingCharacterCount'+annotationLayerSummary+    :: AnnotationLayerSummary+annotationLayerSummary =+    AnnotationLayerSummary+    { _alsLimitType = Nothing+    , _alsAllowedCharacterCount = Nothing+    , _alsRemainingCharacterCount = Nothing+    }++-- | Type of limitation on this layer. \"limited\" or \"unlimited\" for the+-- \"copy\" layer.+alsLimitType :: Lens' AnnotationLayerSummary (Maybe Text)+alsLimitType+  = lens _alsLimitType (\ s a -> s{_alsLimitType = a})++-- | Maximum allowed characters on this layer, especially for the \"copy\"+-- layer.+alsAllowedCharacterCount :: Lens' AnnotationLayerSummary (Maybe Int32)+alsAllowedCharacterCount+  = lens _alsAllowedCharacterCount+      (\ s a -> s{_alsAllowedCharacterCount = a})+      . mapping _Coerce++-- | Remaining allowed characters on this layer, especially for the \"copy\"+-- layer.+alsRemainingCharacterCount :: Lens' AnnotationLayerSummary (Maybe Int32)+alsRemainingCharacterCount+  = lens _alsRemainingCharacterCount+      (\ s a -> s{_alsRemainingCharacterCount = a})+      . mapping _Coerce++instance FromJSON AnnotationLayerSummary where+        parseJSON+          = withObject "AnnotationLayerSummary"+              (\ o ->+                 AnnotationLayerSummary <$>+                   (o .:? "limitType") <*>+                     (o .:? "allowedCharacterCount")+                     <*> (o .:? "remainingCharacterCount"))++instance ToJSON AnnotationLayerSummary where+        toJSON AnnotationLayerSummary{..}+          = object+              (catMaybes+                 [("limitType" .=) <$> _alsLimitType,+                  ("allowedCharacterCount" .=) <$>+                    _alsAllowedCharacterCount,+                  ("remainingCharacterCount" .=) <$>+                    _alsRemainingCharacterCount])++-- | Search result information related to this volume.+--+-- /See:/ 'volumeSearchInfo' smart constructor.+newtype VolumeSearchInfo = VolumeSearchInfo+    { _vsiTextSnippet :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeSearchInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsiTextSnippet'+volumeSearchInfo+    :: VolumeSearchInfo+volumeSearchInfo =+    VolumeSearchInfo+    { _vsiTextSnippet = Nothing+    }++-- | A text snippet containing the search query.+vsiTextSnippet :: Lens' VolumeSearchInfo (Maybe Text)+vsiTextSnippet+  = lens _vsiTextSnippet+      (\ s a -> s{_vsiTextSnippet = a})++instance FromJSON VolumeSearchInfo where+        parseJSON+          = withObject "VolumeSearchInfo"+              (\ o -> VolumeSearchInfo <$> (o .:? "textSnippet"))++instance ToJSON VolumeSearchInfo where+        toJSON VolumeSearchInfo{..}+          = object+              (catMaybes [("textSnippet" .=) <$> _vsiTextSnippet])++--+-- /See:/ 'annotationsSummary' smart constructor.+data AnnotationsSummary = AnnotationsSummary+    { _asKind   :: !Text+    , _asLayers :: !(Maybe [AnnotationsSummaryLayersItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AnnotationsSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'asKind'+--+-- * 'asLayers'+annotationsSummary+    :: AnnotationsSummary+annotationsSummary =+    AnnotationsSummary+    { _asKind = "books#annotationsSummary"+    , _asLayers = Nothing+    }++asKind :: Lens' AnnotationsSummary Text+asKind = lens _asKind (\ s a -> s{_asKind = a})++asLayers :: Lens' AnnotationsSummary [AnnotationsSummaryLayersItem]+asLayers+  = lens _asLayers (\ s a -> s{_asLayers = a}) .+      _Default+      . _Coerce++instance FromJSON AnnotationsSummary where+        parseJSON+          = withObject "AnnotationsSummary"+              (\ o ->+                 AnnotationsSummary <$>+                   (o .:? "kind" .!= "books#annotationsSummary") <*>+                     (o .:? "layers" .!= mempty))++instance ToJSON AnnotationsSummary where+        toJSON AnnotationsSummary{..}+          = object+              (catMaybes+                 [Just ("kind" .= _asKind),+                  ("layers" .=) <$> _asLayers])++--+-- /See:/ 'category' smart constructor.+data Category = Category+    { _cKind  :: !Text+    , _cItems :: !(Maybe [CategoryItemsItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Category' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cKind'+--+-- * 'cItems'+category+    :: Category+category =+    Category+    { _cKind = "onboarding#category"+    , _cItems = Nothing+    }++-- | Resource type.+cKind :: Lens' Category Text+cKind = lens _cKind (\ s a -> s{_cKind = a})++-- | A list of onboarding categories.+cItems :: Lens' Category [CategoryItemsItem]+cItems+  = lens _cItems (\ s a -> s{_cItems = a}) . _Default .+      _Coerce++instance FromJSON Category where+        parseJSON+          = withObject "Category"+              (\ o ->+                 Category <$>+                   (o .:? "kind" .!= "onboarding#category") <*>+                     (o .:? "items" .!= mempty))++instance ToJSON Category where+        toJSON Category{..}+          = object+              (catMaybes+                 [Just ("kind" .= _cKind), ("items" .=) <$> _cItems])++--+-- /See:/ 'discoveryclustersClustersItemBanner_with_content_container' smart constructor.+data DiscoveryclustersClustersItemBanner_with_content_container = DiscoveryclustersClustersItemBanner_with_content_container+    { _dcibFillColorArgb  :: !(Maybe Text)+    , _dcibMoreButtonURL  :: !(Maybe Text)+    , _dcibTextColorArgb  :: !(Maybe Text)+    , _dcibMoreButtonText :: !(Maybe Text)+    , _dcibImageURL       :: !(Maybe Text)+    , _dcibMaskColorArgb  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiscoveryclustersClustersItemBanner_with_content_container' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcibFillColorArgb'+--+-- * 'dcibMoreButtonURL'+--+-- * 'dcibTextColorArgb'+--+-- * 'dcibMoreButtonText'+--+-- * 'dcibImageURL'+--+-- * 'dcibMaskColorArgb'+discoveryclustersClustersItemBanner_with_content_container+    :: DiscoveryclustersClustersItemBanner_with_content_container+discoveryclustersClustersItemBanner_with_content_container =+    DiscoveryclustersClustersItemBanner_with_content_container+    { _dcibFillColorArgb = Nothing+    , _dcibMoreButtonURL = Nothing+    , _dcibTextColorArgb = Nothing+    , _dcibMoreButtonText = Nothing+    , _dcibImageURL = Nothing+    , _dcibMaskColorArgb = Nothing+    }++dcibFillColorArgb :: Lens' DiscoveryclustersClustersItemBanner_with_content_container (Maybe Text)+dcibFillColorArgb+  = lens _dcibFillColorArgb+      (\ s a -> s{_dcibFillColorArgb = a})++dcibMoreButtonURL :: Lens' DiscoveryclustersClustersItemBanner_with_content_container (Maybe Text)+dcibMoreButtonURL+  = lens _dcibMoreButtonURL+      (\ s a -> s{_dcibMoreButtonURL = a})++dcibTextColorArgb :: Lens' DiscoveryclustersClustersItemBanner_with_content_container (Maybe Text)+dcibTextColorArgb+  = lens _dcibTextColorArgb+      (\ s a -> s{_dcibTextColorArgb = a})++dcibMoreButtonText :: Lens' DiscoveryclustersClustersItemBanner_with_content_container (Maybe Text)+dcibMoreButtonText+  = lens _dcibMoreButtonText+      (\ s a -> s{_dcibMoreButtonText = a})++dcibImageURL :: Lens' DiscoveryclustersClustersItemBanner_with_content_container (Maybe Text)+dcibImageURL+  = lens _dcibImageURL (\ s a -> s{_dcibImageURL = a})++dcibMaskColorArgb :: Lens' DiscoveryclustersClustersItemBanner_with_content_container (Maybe Text)+dcibMaskColorArgb+  = lens _dcibMaskColorArgb+      (\ s a -> s{_dcibMaskColorArgb = a})++instance FromJSON+         DiscoveryclustersClustersItemBanner_with_content_container+         where+        parseJSON+          = withObject+              "DiscoveryclustersClustersItemBannerWithContentContainer"+              (\ o ->+                 DiscoveryclustersClustersItemBanner_with_content_container+                   <$>+                   (o .:? "fillColorArgb") <*> (o .:? "moreButtonUrl")+                     <*> (o .:? "textColorArgb")+                     <*> (o .:? "moreButtonText")+                     <*> (o .:? "imageUrl")+                     <*> (o .:? "maskColorArgb"))++instance ToJSON+         DiscoveryclustersClustersItemBanner_with_content_container+         where+        toJSON+          DiscoveryclustersClustersItemBanner_with_content_container{..}+          = object+              (catMaybes+                 [("fillColorArgb" .=) <$> _dcibFillColorArgb,+                  ("moreButtonUrl" .=) <$> _dcibMoreButtonURL,+                  ("textColorArgb" .=) <$> _dcibTextColorArgb,+                  ("moreButtonText" .=) <$> _dcibMoreButtonText,+                  ("imageUrl" .=) <$> _dcibImageURL,+                  ("maskColorArgb" .=) <$> _dcibMaskColorArgb])++--+-- /See:/ 'volume' smart constructor.+data Volume = Volume+    { _vvUserInfo        :: !(Maybe VolumeUserInfo)+    , _vvEtag            :: !(Maybe Text)+    , _vvAccessInfo      :: !(Maybe VolumeAccessInfo)+    , _vvKind            :: !Text+    , _vvSearchInfo      :: !(Maybe VolumeSearchInfo)+    , _vvSelfLink        :: !(Maybe Text)+    , _vvLayerInfo       :: !(Maybe VolumeLayerInfo)+    , _vvSaleInfo        :: !(Maybe VolumeSaleInfo)+    , _vvId              :: !(Maybe Text)+    , _vvRecommendedInfo :: !(Maybe VolumeRecommendedInfo)+    , _vvVolumeInfo      :: !(Maybe VolumeVolumeInfo)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Volume' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vvUserInfo'+--+-- * 'vvEtag'+--+-- * 'vvAccessInfo'+--+-- * 'vvKind'+--+-- * 'vvSearchInfo'+--+-- * 'vvSelfLink'+--+-- * 'vvLayerInfo'+--+-- * 'vvSaleInfo'+--+-- * 'vvId'+--+-- * 'vvRecommendedInfo'+--+-- * 'vvVolumeInfo'+volume+    :: Volume+volume =+    Volume+    { _vvUserInfo = Nothing+    , _vvEtag = Nothing+    , _vvAccessInfo = Nothing+    , _vvKind = "books#volume"+    , _vvSearchInfo = Nothing+    , _vvSelfLink = Nothing+    , _vvLayerInfo = Nothing+    , _vvSaleInfo = Nothing+    , _vvId = Nothing+    , _vvRecommendedInfo = Nothing+    , _vvVolumeInfo = Nothing+    }++-- | 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)+vvUserInfo+  = lens _vvUserInfo (\ s a -> s{_vvUserInfo = a})++-- | Opaque identifier for a specific version of a volume resource. (In LITE+-- projection)+vvEtag :: Lens' Volume (Maybe Text)+vvEtag = lens _vvEtag (\ s a -> s{_vvEtag = a})++-- | 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)+vvAccessInfo+  = lens _vvAccessInfo (\ s a -> s{_vvAccessInfo = a})++-- | Resource type for a volume. (In LITE projection.)+vvKind :: Lens' Volume Text+vvKind = lens _vvKind (\ s a -> s{_vvKind = a})++-- | Search result information related to this volume.+vvSearchInfo :: Lens' Volume (Maybe VolumeSearchInfo)+vvSearchInfo+  = lens _vvSearchInfo (\ s a -> s{_vvSearchInfo = a})++-- | URL to this resource. (In LITE projection.)+vvSelfLink :: Lens' Volume (Maybe Text)+vvSelfLink+  = lens _vvSelfLink (\ s a -> s{_vvSelfLink = a})++-- | What layers exist in this volume and high level information about them.+vvLayerInfo :: Lens' Volume (Maybe VolumeLayerInfo)+vvLayerInfo+  = lens _vvLayerInfo (\ s a -> s{_vvLayerInfo = a})++-- | 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)+vvSaleInfo+  = lens _vvSaleInfo (\ s a -> s{_vvSaleInfo = a})++-- | Unique identifier for a volume. (In LITE projection.)+vvId :: Lens' Volume (Maybe Text)+vvId = lens _vvId (\ s a -> s{_vvId = a})++-- | Recommendation related information for this volume.+vvRecommendedInfo :: Lens' Volume (Maybe VolumeRecommendedInfo)+vvRecommendedInfo+  = lens _vvRecommendedInfo+      (\ s a -> s{_vvRecommendedInfo = a})++-- | General volume information.+vvVolumeInfo :: Lens' Volume (Maybe VolumeVolumeInfo)+vvVolumeInfo+  = lens _vvVolumeInfo (\ s a -> s{_vvVolumeInfo = a})++instance FromJSON Volume where+        parseJSON+          = withObject "Volume"+              (\ o ->+                 Volume <$>+                   (o .:? "userInfo") <*> (o .:? "etag") <*>+                     (o .:? "accessInfo")+                     <*> (o .:? "kind" .!= "books#volume")+                     <*> (o .:? "searchInfo")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "layerInfo")+                     <*> (o .:? "saleInfo")+                     <*> (o .:? "id")+                     <*> (o .:? "recommendedInfo")+                     <*> (o .:? "volumeInfo"))++instance ToJSON Volume where+        toJSON Volume{..}+          = object+              (catMaybes+                 [("userInfo" .=) <$> _vvUserInfo,+                  ("etag" .=) <$> _vvEtag,+                  ("accessInfo" .=) <$> _vvAccessInfo,+                  Just ("kind" .= _vvKind),+                  ("searchInfo" .=) <$> _vvSearchInfo,+                  ("selfLink" .=) <$> _vvSelfLink,+                  ("layerInfo" .=) <$> _vvLayerInfo,+                  ("saleInfo" .=) <$> _vvSaleInfo, ("id" .=) <$> _vvId,+                  ("recommendedInfo" .=) <$> _vvRecommendedInfo,+                  ("volumeInfo" .=) <$> _vvVolumeInfo])++--+-- /See:/ 'geolayerDataGeoBoundaryItemItem' smart constructor.+data GeolayerDataGeoBoundaryItemItem = GeolayerDataGeoBoundaryItemItem+    { _gdgbiiLatitude  :: !(Maybe (Textual Word32))+    , _gdgbiiLongitude :: !(Maybe (Textual Word32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GeolayerDataGeoBoundaryItemItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdgbiiLatitude'+--+-- * 'gdgbiiLongitude'+geolayerDataGeoBoundaryItemItem+    :: GeolayerDataGeoBoundaryItemItem+geolayerDataGeoBoundaryItemItem =+    GeolayerDataGeoBoundaryItemItem+    { _gdgbiiLatitude = Nothing+    , _gdgbiiLongitude = Nothing+    }++gdgbiiLatitude :: Lens' GeolayerDataGeoBoundaryItemItem (Maybe Word32)+gdgbiiLatitude+  = lens _gdgbiiLatitude+      (\ s a -> s{_gdgbiiLatitude = a})+      . mapping _Coerce++gdgbiiLongitude :: Lens' GeolayerDataGeoBoundaryItemItem (Maybe Word32)+gdgbiiLongitude+  = lens _gdgbiiLongitude+      (\ s a -> s{_gdgbiiLongitude = a})+      . mapping _Coerce++instance FromJSON GeolayerDataGeoBoundaryItemItem+         where+        parseJSON+          = withObject "GeolayerDataGeoBoundaryItemItem"+              (\ o ->+                 GeolayerDataGeoBoundaryItemItem <$>+                   (o .:? "latitude") <*> (o .:? "longitude"))++instance ToJSON GeolayerDataGeoBoundaryItemItem where+        toJSON GeolayerDataGeoBoundaryItemItem{..}+          = object+              (catMaybes+                 [("latitude" .=) <$> _gdgbiiLatitude,+                  ("longitude" .=) <$> _gdgbiiLongitude])++--+-- /See:/ 'offersItemsItemItemsItem' smart constructor.+data OffersItemsItemItemsItem = OffersItemsItemItemsItem+    { _oiiiiCanonicalVolumeLink :: !(Maybe Text)+    , _oiiiiCoverURL            :: !(Maybe Text)+    , _oiiiiVolumeId            :: !(Maybe Text)+    , _oiiiiAuthor              :: !(Maybe Text)+    , _oiiiiTitle               :: !(Maybe Text)+    , _oiiiiDescription         :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OffersItemsItemItemsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oiiiiCanonicalVolumeLink'+--+-- * 'oiiiiCoverURL'+--+-- * 'oiiiiVolumeId'+--+-- * 'oiiiiAuthor'+--+-- * 'oiiiiTitle'+--+-- * 'oiiiiDescription'+offersItemsItemItemsItem+    :: OffersItemsItemItemsItem+offersItemsItemItemsItem =+    OffersItemsItemItemsItem+    { _oiiiiCanonicalVolumeLink = Nothing+    , _oiiiiCoverURL = Nothing+    , _oiiiiVolumeId = Nothing+    , _oiiiiAuthor = Nothing+    , _oiiiiTitle = Nothing+    , _oiiiiDescription = Nothing+    }++oiiiiCanonicalVolumeLink :: Lens' OffersItemsItemItemsItem (Maybe Text)+oiiiiCanonicalVolumeLink+  = lens _oiiiiCanonicalVolumeLink+      (\ s a -> s{_oiiiiCanonicalVolumeLink = a})++oiiiiCoverURL :: Lens' OffersItemsItemItemsItem (Maybe Text)+oiiiiCoverURL+  = lens _oiiiiCoverURL+      (\ s a -> s{_oiiiiCoverURL = a})++oiiiiVolumeId :: Lens' OffersItemsItemItemsItem (Maybe Text)+oiiiiVolumeId+  = lens _oiiiiVolumeId+      (\ s a -> s{_oiiiiVolumeId = a})++oiiiiAuthor :: Lens' OffersItemsItemItemsItem (Maybe Text)+oiiiiAuthor+  = lens _oiiiiAuthor (\ s a -> s{_oiiiiAuthor = a})++oiiiiTitle :: Lens' OffersItemsItemItemsItem (Maybe Text)+oiiiiTitle+  = lens _oiiiiTitle (\ s a -> s{_oiiiiTitle = a})++oiiiiDescription :: Lens' OffersItemsItemItemsItem (Maybe Text)+oiiiiDescription+  = lens _oiiiiDescription+      (\ s a -> s{_oiiiiDescription = a})++instance FromJSON OffersItemsItemItemsItem where+        parseJSON+          = withObject "OffersItemsItemItemsItem"+              (\ o ->+                 OffersItemsItemItemsItem <$>+                   (o .:? "canonicalVolumeLink") <*> (o .:? "coverUrl")+                     <*> (o .:? "volumeId")+                     <*> (o .:? "author")+                     <*> (o .:? "title")+                     <*> (o .:? "description"))++instance ToJSON OffersItemsItemItemsItem where+        toJSON OffersItemsItemItemsItem{..}+          = object+              (catMaybes+                 [("canonicalVolumeLink" .=) <$>+                    _oiiiiCanonicalVolumeLink,+                  ("coverUrl" .=) <$> _oiiiiCoverURL,+                  ("volumeId" .=) <$> _oiiiiVolumeId,+                  ("author" .=) <$> _oiiiiAuthor,+                  ("title" .=) <$> _oiiiiTitle,+                  ("description" .=) <$> _oiiiiDescription])++--+-- /See:/ 'dictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource' smart constructor.+data DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource = DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource+    { _dddwisidieisURL         :: !(Maybe Text)+    , _dddwisidieisAttribution :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dddwisidieisURL'+--+-- * 'dddwisidieisAttribution'+dictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource+    :: DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource+dictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource =+    DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource+    { _dddwisidieisURL = Nothing+    , _dddwisidieisAttribution = Nothing+    }++dddwisidieisURL :: Lens' DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource (Maybe Text)+dddwisidieisURL+  = lens _dddwisidieisURL+      (\ s a -> s{_dddwisidieisURL = a})++dddwisidieisAttribution :: Lens' DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource (Maybe Text)+dddwisidieisAttribution+  = lens _dddwisidieisAttribution+      (\ s a -> s{_dddwisidieisAttribution = a})++instance FromJSON+         DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource+         where+        parseJSON+          = withObject+              "DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource"+              (\ o ->+                 DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource+                   <$> (o .:? "url") <*> (o .:? "attribution"))++instance ToJSON+         DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource+         where+        toJSON+          DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource{..}+          = object+              (catMaybes+                 [("url" .=) <$> _dddwisidieisURL,+                  ("attribution" .=) <$> _dddwisidieisAttribution])++--+-- /See:/ 'geolayerDataCommon' smart constructor.+data GeolayerDataCommon = GeolayerDataCommon+    { _gdcSnippet         :: !(Maybe Text)+    , _gdcSnippetURL      :: !(Maybe Text)+    , _gdcLang            :: !(Maybe Text)+    , _gdcTitle           :: !(Maybe Text)+    , _gdcPreviewImageURL :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GeolayerDataCommon' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdcSnippet'+--+-- * 'gdcSnippetURL'+--+-- * 'gdcLang'+--+-- * 'gdcTitle'+--+-- * 'gdcPreviewImageURL'+geolayerDataCommon+    :: GeolayerDataCommon+geolayerDataCommon =+    GeolayerDataCommon+    { _gdcSnippet = Nothing+    , _gdcSnippetURL = Nothing+    , _gdcLang = Nothing+    , _gdcTitle = Nothing+    , _gdcPreviewImageURL = Nothing+    }++-- | The description for this location.+gdcSnippet :: Lens' GeolayerDataCommon (Maybe Text)+gdcSnippet+  = lens _gdcSnippet (\ s a -> s{_gdcSnippet = a})++-- | The URL for information for this location. Ex: wikipedia link.+gdcSnippetURL :: Lens' GeolayerDataCommon (Maybe Text)+gdcSnippetURL+  = lens _gdcSnippetURL+      (\ s a -> s{_gdcSnippetURL = a})++-- | The language of the information url and description.+gdcLang :: Lens' GeolayerDataCommon (Maybe Text)+gdcLang = lens _gdcLang (\ s a -> s{_gdcLang = a})++-- | The display title and localized canonical name to use when searching for+-- this entity on Google search.+gdcTitle :: Lens' GeolayerDataCommon (Maybe Text)+gdcTitle = lens _gdcTitle (\ s a -> s{_gdcTitle = a})++-- | The URL for the preview image information.+gdcPreviewImageURL :: Lens' GeolayerDataCommon (Maybe Text)+gdcPreviewImageURL+  = lens _gdcPreviewImageURL+      (\ s a -> s{_gdcPreviewImageURL = a})++instance FromJSON GeolayerDataCommon where+        parseJSON+          = withObject "GeolayerDataCommon"+              (\ o ->+                 GeolayerDataCommon <$>+                   (o .:? "snippet") <*> (o .:? "snippetUrl") <*>+                     (o .:? "lang")+                     <*> (o .:? "title")+                     <*> (o .:? "previewImageUrl"))++instance ToJSON GeolayerDataCommon where+        toJSON GeolayerDataCommon{..}+          = object+              (catMaybes+                 [("snippet" .=) <$> _gdcSnippet,+                  ("snippetUrl" .=) <$> _gdcSnippetURL,+                  ("lang" .=) <$> _gdcLang, ("title" .=) <$> _gdcTitle,+                  ("previewImageUrl" .=) <$> _gdcPreviewImageURL])++--+-- /See:/ 'geolayerDataGeo' smart constructor.+data GeolayerDataGeo = GeolayerDataGeo+    { _gdgMapType     :: !(Maybe Text)+    , _gdgCachePolicy :: !(Maybe Text)+    , _gdgViewport    :: !(Maybe GeolayerDataGeoViewport)+    , _gdgBoundary    :: !(Maybe [[GeolayerDataGeoBoundaryItemItem]])+    , _gdgLatitude    :: !(Maybe (Textual Double))+    , _gdgZoom        :: !(Maybe (Textual Int32))+    , _gdgCountryCode :: !(Maybe Text)+    , _gdgLongitude   :: !(Maybe (Textual Double))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GeolayerDataGeo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdgMapType'+--+-- * 'gdgCachePolicy'+--+-- * 'gdgViewport'+--+-- * 'gdgBoundary'+--+-- * 'gdgLatitude'+--+-- * 'gdgZoom'+--+-- * 'gdgCountryCode'+--+-- * 'gdgLongitude'+geolayerDataGeo+    :: GeolayerDataGeo+geolayerDataGeo =+    GeolayerDataGeo+    { _gdgMapType = Nothing+    , _gdgCachePolicy = Nothing+    , _gdgViewport = Nothing+    , _gdgBoundary = Nothing+    , _gdgLatitude = Nothing+    , _gdgZoom = Nothing+    , _gdgCountryCode = Nothing+    , _gdgLongitude = Nothing+    }++-- | The type of map that should be used for this location. EX: HYBRID,+-- ROADMAP, SATELLITE, TERRAIN+gdgMapType :: Lens' GeolayerDataGeo (Maybe Text)+gdgMapType+  = lens _gdgMapType (\ s a -> s{_gdgMapType = a})++-- | The cache policy active for this data. EX: UNRESTRICTED, RESTRICTED,+-- NEVER+gdgCachePolicy :: Lens' GeolayerDataGeo (Maybe Text)+gdgCachePolicy+  = lens _gdgCachePolicy+      (\ s a -> s{_gdgCachePolicy = a})++-- | The viewport for showing this location. This is a latitude, longitude+-- rectangle.+gdgViewport :: Lens' GeolayerDataGeo (Maybe GeolayerDataGeoViewport)+gdgViewport+  = lens _gdgViewport (\ s a -> s{_gdgViewport = a})++-- | The boundary of the location as a set of loops containing pairs of+-- latitude, longitude coordinates.+gdgBoundary :: Lens' GeolayerDataGeo [[GeolayerDataGeoBoundaryItemItem]]+gdgBoundary+  = lens _gdgBoundary (\ s a -> s{_gdgBoundary = a}) .+      _Default+      . _Coerce++-- | The latitude of the location.+gdgLatitude :: Lens' GeolayerDataGeo (Maybe Double)+gdgLatitude+  = lens _gdgLatitude (\ s a -> s{_gdgLatitude = a}) .+      mapping _Coerce++-- | 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)+gdgZoom+  = lens _gdgZoom (\ s a -> s{_gdgZoom = a}) .+      mapping _Coerce++-- | The country code of the location.+gdgCountryCode :: Lens' GeolayerDataGeo (Maybe Text)+gdgCountryCode+  = lens _gdgCountryCode+      (\ s a -> s{_gdgCountryCode = a})++-- | The longitude of the location.+gdgLongitude :: Lens' GeolayerDataGeo (Maybe Double)+gdgLongitude+  = lens _gdgLongitude (\ s a -> s{_gdgLongitude = a})+      . mapping _Coerce++instance FromJSON GeolayerDataGeo where+        parseJSON+          = withObject "GeolayerDataGeo"+              (\ o ->+                 GeolayerDataGeo <$>+                   (o .:? "mapType") <*> (o .:? "cachePolicy") <*>+                     (o .:? "viewport")+                     <*> (o .:? "boundary" .!= mempty)+                     <*> (o .:? "latitude")+                     <*> (o .:? "zoom")+                     <*> (o .:? "countryCode")+                     <*> (o .:? "longitude"))++instance ToJSON GeolayerDataGeo where+        toJSON GeolayerDataGeo{..}+          = object+              (catMaybes+                 [("mapType" .=) <$> _gdgMapType,+                  ("cachePolicy" .=) <$> _gdgCachePolicy,+                  ("viewport" .=) <$> _gdgViewport,+                  ("boundary" .=) <$> _gdgBoundary,+                  ("latitude" .=) <$> _gdgLatitude,+                  ("zoom" .=) <$> _gdgZoom,+                  ("countryCode" .=) <$> _gdgCountryCode,+                  ("longitude" .=) <$> _gdgLongitude])++--+-- /See:/ 'dictlayerDataDictWordsItem' smart constructor.+data DictlayerDataDictWordsItem = DictlayerDataDictWordsItem+    { _dddwiSenses      :: !(Maybe [DictlayerDataDictWordsItemSensesItem])+    , _dddwiSource      :: !(Maybe DictlayerDataDictWordsItemSource)+    , _dddwiDerivatives :: !(Maybe [DictlayerDataDictWordsItemDerivativesItem])+    , _dddwiExamples    :: !(Maybe [DictlayerDataDictWordsItemExamplesItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictlayerDataDictWordsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dddwiSenses'+--+-- * 'dddwiSource'+--+-- * 'dddwiDerivatives'+--+-- * 'dddwiExamples'+dictlayerDataDictWordsItem+    :: DictlayerDataDictWordsItem+dictlayerDataDictWordsItem =+    DictlayerDataDictWordsItem+    { _dddwiSenses = Nothing+    , _dddwiSource = Nothing+    , _dddwiDerivatives = Nothing+    , _dddwiExamples = Nothing+    }++dddwiSenses :: Lens' DictlayerDataDictWordsItem [DictlayerDataDictWordsItemSensesItem]+dddwiSenses+  = lens _dddwiSenses (\ s a -> s{_dddwiSenses = a}) .+      _Default+      . _Coerce++-- | The words with different meanings but not related words, e.g. \"go\"+-- (game) and \"go\" (verb).+dddwiSource :: Lens' DictlayerDataDictWordsItem (Maybe DictlayerDataDictWordsItemSource)+dddwiSource+  = lens _dddwiSource (\ s a -> s{_dddwiSource = a})++dddwiDerivatives :: Lens' DictlayerDataDictWordsItem [DictlayerDataDictWordsItemDerivativesItem]+dddwiDerivatives+  = lens _dddwiDerivatives+      (\ s a -> s{_dddwiDerivatives = a})+      . _Default+      . _Coerce++dddwiExamples :: Lens' DictlayerDataDictWordsItem [DictlayerDataDictWordsItemExamplesItem]+dddwiExamples+  = lens _dddwiExamples+      (\ s a -> s{_dddwiExamples = a})+      . _Default+      . _Coerce++instance FromJSON DictlayerDataDictWordsItem where+        parseJSON+          = withObject "DictlayerDataDictWordsItem"+              (\ o ->+                 DictlayerDataDictWordsItem <$>+                   (o .:? "senses" .!= mempty) <*> (o .:? "source") <*>+                     (o .:? "derivatives" .!= mempty)+                     <*> (o .:? "examples" .!= mempty))++instance ToJSON DictlayerDataDictWordsItem where+        toJSON DictlayerDataDictWordsItem{..}+          = object+              (catMaybes+                 [("senses" .=) <$> _dddwiSenses,+                  ("source" .=) <$> _dddwiSource,+                  ("derivatives" .=) <$> _dddwiDerivatives,+                  ("examples" .=) <$> _dddwiExamples])++--+-- /See:/ 'categoryItemsItem' smart constructor.+data CategoryItemsItem = CategoryItemsItem+    { _ciiName       :: !(Maybe Text)+    , _ciiCategoryId :: !(Maybe Text)+    , _ciiBadgeURL   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CategoryItemsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ciiName'+--+-- * 'ciiCategoryId'+--+-- * 'ciiBadgeURL'+categoryItemsItem+    :: CategoryItemsItem+categoryItemsItem =+    CategoryItemsItem+    { _ciiName = Nothing+    , _ciiCategoryId = Nothing+    , _ciiBadgeURL = Nothing+    }++ciiName :: Lens' CategoryItemsItem (Maybe Text)+ciiName = lens _ciiName (\ s a -> s{_ciiName = a})++ciiCategoryId :: Lens' CategoryItemsItem (Maybe Text)+ciiCategoryId+  = lens _ciiCategoryId+      (\ s a -> s{_ciiCategoryId = a})++ciiBadgeURL :: Lens' CategoryItemsItem (Maybe Text)+ciiBadgeURL+  = lens _ciiBadgeURL (\ s a -> s{_ciiBadgeURL = a})++instance FromJSON CategoryItemsItem where+        parseJSON+          = withObject "CategoryItemsItem"+              (\ o ->+                 CategoryItemsItem <$>+                   (o .:? "name") <*> (o .:? "categoryId") <*>+                     (o .:? "badgeUrl"))++instance ToJSON CategoryItemsItem where+        toJSON CategoryItemsItem{..}+          = object+              (catMaybes+                 [("name" .=) <$> _ciiName,+                  ("categoryId" .=) <$> _ciiCategoryId,+                  ("badgeUrl" .=) <$> _ciiBadgeURL])++--+-- /See:/ 'dictlayerDataDictWordsItemDerivativesItemSource' smart constructor.+data DictlayerDataDictWordsItemDerivativesItemSource = DictlayerDataDictWordsItemDerivativesItemSource+    { _dddwidisURL         :: !(Maybe Text)+    , _dddwidisAttribution :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictlayerDataDictWordsItemDerivativesItemSource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dddwidisURL'+--+-- * 'dddwidisAttribution'+dictlayerDataDictWordsItemDerivativesItemSource+    :: DictlayerDataDictWordsItemDerivativesItemSource+dictlayerDataDictWordsItemDerivativesItemSource =+    DictlayerDataDictWordsItemDerivativesItemSource+    { _dddwidisURL = Nothing+    , _dddwidisAttribution = Nothing+    }++dddwidisURL :: Lens' DictlayerDataDictWordsItemDerivativesItemSource (Maybe Text)+dddwidisURL+  = lens _dddwidisURL (\ s a -> s{_dddwidisURL = a})++dddwidisAttribution :: Lens' DictlayerDataDictWordsItemDerivativesItemSource (Maybe Text)+dddwidisAttribution+  = lens _dddwidisAttribution+      (\ s a -> s{_dddwidisAttribution = a})++instance FromJSON+         DictlayerDataDictWordsItemDerivativesItemSource where+        parseJSON+          = withObject+              "DictlayerDataDictWordsItemDerivativesItemSource"+              (\ o ->+                 DictlayerDataDictWordsItemDerivativesItemSource <$>+                   (o .:? "url") <*> (o .:? "attribution"))++instance ToJSON+         DictlayerDataDictWordsItemDerivativesItemSource where+        toJSON+          DictlayerDataDictWordsItemDerivativesItemSource{..}+          = object+              (catMaybes+                 [("url" .=) <$> _dddwidisURL,+                  ("attribution" .=) <$> _dddwidisAttribution])++--+-- /See:/ 'geolayerData' smart constructor.+data GeolayerData = GeolayerData+    { _gdKind   :: !Text+    , _gdGeo    :: !(Maybe GeolayerDataGeo)+    , _gdCommon :: !(Maybe GeolayerDataCommon)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GeolayerData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdKind'+--+-- * 'gdGeo'+--+-- * 'gdCommon'+geolayerData+    :: GeolayerData+geolayerData =+    GeolayerData+    { _gdKind = "books#geolayerdata"+    , _gdGeo = Nothing+    , _gdCommon = Nothing+    }++gdKind :: Lens' GeolayerData Text+gdKind = lens _gdKind (\ s a -> s{_gdKind = a})++gdGeo :: Lens' GeolayerData (Maybe GeolayerDataGeo)+gdGeo = lens _gdGeo (\ s a -> s{_gdGeo = a})++gdCommon :: Lens' GeolayerData (Maybe GeolayerDataCommon)+gdCommon = lens _gdCommon (\ s a -> s{_gdCommon = a})++instance FromJSON GeolayerData where+        parseJSON+          = withObject "GeolayerData"+              (\ o ->+                 GeolayerData <$>+                   (o .:? "kind" .!= "books#geolayerdata") <*>+                     (o .:? "geo")+                     <*> (o .:? "common"))++instance ToJSON GeolayerData where+        toJSON GeolayerData{..}+          = object+              (catMaybes+                 [Just ("kind" .= _gdKind), ("geo" .=) <$> _gdGeo,+                  ("common" .=) <$> _gdCommon])++-- | The words with different meanings but not related words, e.g. \"go\"+-- (game) and \"go\" (verb).+--+-- /See:/ 'dictlayerDataDictWordsItemSource' smart constructor.+data DictlayerDataDictWordsItemSource = DictlayerDataDictWordsItemSource+    { _dddwisURL         :: !(Maybe Text)+    , _dddwisAttribution :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictlayerDataDictWordsItemSource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dddwisURL'+--+-- * 'dddwisAttribution'+dictlayerDataDictWordsItemSource+    :: DictlayerDataDictWordsItemSource+dictlayerDataDictWordsItemSource =+    DictlayerDataDictWordsItemSource+    { _dddwisURL = Nothing+    , _dddwisAttribution = Nothing+    }++dddwisURL :: Lens' DictlayerDataDictWordsItemSource (Maybe Text)+dddwisURL+  = lens _dddwisURL (\ s a -> s{_dddwisURL = a})++dddwisAttribution :: Lens' DictlayerDataDictWordsItemSource (Maybe Text)+dddwisAttribution+  = lens _dddwisAttribution+      (\ s a -> s{_dddwisAttribution = a})++instance FromJSON DictlayerDataDictWordsItemSource+         where+        parseJSON+          = withObject "DictlayerDataDictWordsItemSource"+              (\ o ->+                 DictlayerDataDictWordsItemSource <$>+                   (o .:? "url") <*> (o .:? "attribution"))++instance ToJSON DictlayerDataDictWordsItemSource+         where+        toJSON DictlayerDataDictWordsItemSource{..}+          = object+              (catMaybes+                 [("url" .=) <$> _dddwisURL,+                  ("attribution" .=) <$> _dddwisAttribution])++--+-- /See:/ 'dictlayerDataDictWordsItemDerivativesItem' smart constructor.+data DictlayerDataDictWordsItemDerivativesItem = DictlayerDataDictWordsItemDerivativesItem+    { _dddwidiText   :: !(Maybe Text)+    , _dddwidiSource :: !(Maybe DictlayerDataDictWordsItemDerivativesItemSource)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictlayerDataDictWordsItemDerivativesItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dddwidiText'+--+-- * 'dddwidiSource'+dictlayerDataDictWordsItemDerivativesItem+    :: DictlayerDataDictWordsItemDerivativesItem+dictlayerDataDictWordsItemDerivativesItem =+    DictlayerDataDictWordsItemDerivativesItem+    { _dddwidiText = Nothing+    , _dddwidiSource = Nothing+    }++dddwidiText :: Lens' DictlayerDataDictWordsItemDerivativesItem (Maybe Text)+dddwidiText+  = lens _dddwidiText (\ s a -> s{_dddwidiText = a})++dddwidiSource :: Lens' DictlayerDataDictWordsItemDerivativesItem (Maybe DictlayerDataDictWordsItemDerivativesItemSource)+dddwidiSource+  = lens _dddwidiSource+      (\ s a -> s{_dddwidiSource = a})++instance FromJSON+         DictlayerDataDictWordsItemDerivativesItem where+        parseJSON+          = withObject+              "DictlayerDataDictWordsItemDerivativesItem"+              (\ o ->+                 DictlayerDataDictWordsItemDerivativesItem <$>+                   (o .:? "text") <*> (o .:? "source"))++instance ToJSON+         DictlayerDataDictWordsItemDerivativesItem where+        toJSON DictlayerDataDictWordsItemDerivativesItem{..}+          = object+              (catMaybes+                 [("text" .=) <$> _dddwidiText,+                  ("source" .=) <$> _dddwidiSource])++--+-- /See:/ 'dictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem' smart constructor.+data DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem = DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem+    { _dddwisidieiText   :: !(Maybe Text)+    , _dddwisidieiSource :: !(Maybe DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dddwisidieiText'+--+-- * 'dddwisidieiSource'+dictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem+    :: DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem+dictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem =+    DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem+    { _dddwisidieiText = Nothing+    , _dddwisidieiSource = Nothing+    }++dddwisidieiText :: Lens' DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem (Maybe Text)+dddwisidieiText+  = lens _dddwisidieiText+      (\ s a -> s{_dddwisidieiText = a})++dddwisidieiSource :: Lens' DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem (Maybe DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItemSource)+dddwisidieiSource+  = lens _dddwisidieiSource+      (\ s a -> s{_dddwisidieiSource = a})++instance FromJSON+         DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem+         where+        parseJSON+          = withObject+              "DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem"+              (\ o ->+                 DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem+                   <$> (o .:? "text") <*> (o .:? "source"))++instance ToJSON+         DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem+         where+        toJSON+          DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem{..}+          = object+              (catMaybes+                 [("text" .=) <$> _dddwisidieiText,+                  ("source" .=) <$> _dddwisidieiSource])++--+-- /See:/ 'dictlayerData' smart constructor.+data DictlayerData = DictlayerData+    { _ddKind   :: !Text+    , _ddDict   :: !(Maybe DictlayerDataDict)+    , _ddCommon :: !(Maybe DictlayerDataCommon)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictlayerData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddKind'+--+-- * 'ddDict'+--+-- * 'ddCommon'+dictlayerData+    :: DictlayerData+dictlayerData =+    DictlayerData+    { _ddKind = "books#dictlayerdata"+    , _ddDict = Nothing+    , _ddCommon = Nothing+    }++ddKind :: Lens' DictlayerData Text+ddKind = lens _ddKind (\ s a -> s{_ddKind = a})++ddDict :: Lens' DictlayerData (Maybe DictlayerDataDict)+ddDict = lens _ddDict (\ s a -> s{_ddDict = a})++ddCommon :: Lens' DictlayerData (Maybe DictlayerDataCommon)+ddCommon = lens _ddCommon (\ s a -> s{_ddCommon = a})++instance FromJSON DictlayerData where+        parseJSON+          = withObject "DictlayerData"+              (\ o ->+                 DictlayerData <$>+                   (o .:? "kind" .!= "books#dictlayerdata") <*>+                     (o .:? "dict")+                     <*> (o .:? "common"))++instance ToJSON DictlayerData where+        toJSON DictlayerData{..}+          = object+              (catMaybes+                 [Just ("kind" .= _ddKind), ("dict" .=) <$> _ddDict,+                  ("common" .=) <$> _ddCommon])++--+-- /See:/ 'dictlayerDataDictWordsItemSensesItemSynonymsItemSource' smart constructor.+data DictlayerDataDictWordsItemSensesItemSynonymsItemSource = DictlayerDataDictWordsItemSensesItemSynonymsItemSource+    { _dddwisisisURL         :: !(Maybe Text)+    , _dddwisisisAttribution :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictlayerDataDictWordsItemSensesItemSynonymsItemSource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dddwisisisURL'+--+-- * 'dddwisisisAttribution'+dictlayerDataDictWordsItemSensesItemSynonymsItemSource+    :: DictlayerDataDictWordsItemSensesItemSynonymsItemSource+dictlayerDataDictWordsItemSensesItemSynonymsItemSource =+    DictlayerDataDictWordsItemSensesItemSynonymsItemSource+    { _dddwisisisURL = Nothing+    , _dddwisisisAttribution = Nothing+    }++dddwisisisURL :: Lens' DictlayerDataDictWordsItemSensesItemSynonymsItemSource (Maybe Text)+dddwisisisURL+  = lens _dddwisisisURL+      (\ s a -> s{_dddwisisisURL = a})++dddwisisisAttribution :: Lens' DictlayerDataDictWordsItemSensesItemSynonymsItemSource (Maybe Text)+dddwisisisAttribution+  = lens _dddwisisisAttribution+      (\ s a -> s{_dddwisisisAttribution = a})++instance FromJSON+         DictlayerDataDictWordsItemSensesItemSynonymsItemSource+         where+        parseJSON+          = withObject+              "DictlayerDataDictWordsItemSensesItemSynonymsItemSource"+              (\ o ->+                 DictlayerDataDictWordsItemSensesItemSynonymsItemSource+                   <$> (o .:? "url") <*> (o .:? "attribution"))++instance ToJSON+         DictlayerDataDictWordsItemSensesItemSynonymsItemSource+         where+        toJSON+          DictlayerDataDictWordsItemSensesItemSynonymsItemSource{..}+          = object+              (catMaybes+                 [("url" .=) <$> _dddwisisisURL,+                  ("attribution" .=) <$> _dddwisisisAttribution])++--+-- /See:/ 'userSettingsNotification' smart constructor.+newtype UserSettingsNotification = UserSettingsNotification+    { _usnMoreFromAuthors :: Maybe UserSettingsNotificationMoreFromAuthors+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserSettingsNotification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usnMoreFromAuthors'+userSettingsNotification+    :: UserSettingsNotification+userSettingsNotification =+    UserSettingsNotification+    { _usnMoreFromAuthors = Nothing+    }++usnMoreFromAuthors :: Lens' UserSettingsNotification (Maybe UserSettingsNotificationMoreFromAuthors)+usnMoreFromAuthors+  = lens _usnMoreFromAuthors+      (\ s a -> s{_usnMoreFromAuthors = a})++instance FromJSON UserSettingsNotification where+        parseJSON+          = withObject "UserSettingsNotification"+              (\ o ->+                 UserSettingsNotification <$>+                   (o .:? "moreFromAuthors"))++instance ToJSON UserSettingsNotification where+        toJSON UserSettingsNotification{..}+          = object+              (catMaybes+                 [("moreFromAuthors" .=) <$> _usnMoreFromAuthors])++--+-- /See:/ 'dictlayerDataDictWordsItemSensesItemSynonymsItem' smart constructor.+data DictlayerDataDictWordsItemSensesItemSynonymsItem = DictlayerDataDictWordsItemSensesItemSynonymsItem+    { _dddwisisiText   :: !(Maybe Text)+    , _dddwisisiSource :: !(Maybe DictlayerDataDictWordsItemSensesItemSynonymsItemSource)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictlayerDataDictWordsItemSensesItemSynonymsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dddwisisiText'+--+-- * 'dddwisisiSource'+dictlayerDataDictWordsItemSensesItemSynonymsItem+    :: DictlayerDataDictWordsItemSensesItemSynonymsItem+dictlayerDataDictWordsItemSensesItemSynonymsItem =+    DictlayerDataDictWordsItemSensesItemSynonymsItem+    { _dddwisisiText = Nothing+    , _dddwisisiSource = Nothing+    }++dddwisisiText :: Lens' DictlayerDataDictWordsItemSensesItemSynonymsItem (Maybe Text)+dddwisisiText+  = lens _dddwisisiText+      (\ s a -> s{_dddwisisiText = a})++dddwisisiSource :: Lens' DictlayerDataDictWordsItemSensesItemSynonymsItem (Maybe DictlayerDataDictWordsItemSensesItemSynonymsItemSource)+dddwisisiSource+  = lens _dddwisisiSource+      (\ s a -> s{_dddwisisiSource = a})++instance FromJSON+         DictlayerDataDictWordsItemSensesItemSynonymsItem+         where+        parseJSON+          = withObject+              "DictlayerDataDictWordsItemSensesItemSynonymsItem"+              (\ o ->+                 DictlayerDataDictWordsItemSensesItemSynonymsItem <$>+                   (o .:? "text") <*> (o .:? "source"))++instance ToJSON+         DictlayerDataDictWordsItemSensesItemSynonymsItem+         where+        toJSON+          DictlayerDataDictWordsItemSensesItemSynonymsItem{..}+          = object+              (catMaybes+                 [("text" .=) <$> _dddwisisiText,+                  ("source" .=) <$> _dddwisisiSource])++--+-- /See:/ 'geolayerDataGeoViewportLo' smart constructor.+data GeolayerDataGeoViewportLo = GeolayerDataGeoViewportLo+    { _gdgvlLatitude  :: !(Maybe (Textual Double))+    , _gdgvlLongitude :: !(Maybe (Textual Double))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GeolayerDataGeoViewportLo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdgvlLatitude'+--+-- * 'gdgvlLongitude'+geolayerDataGeoViewportLo+    :: GeolayerDataGeoViewportLo+geolayerDataGeoViewportLo =+    GeolayerDataGeoViewportLo+    { _gdgvlLatitude = Nothing+    , _gdgvlLongitude = Nothing+    }++gdgvlLatitude :: Lens' GeolayerDataGeoViewportLo (Maybe Double)+gdgvlLatitude+  = lens _gdgvlLatitude+      (\ s a -> s{_gdgvlLatitude = a})+      . mapping _Coerce++gdgvlLongitude :: Lens' GeolayerDataGeoViewportLo (Maybe Double)+gdgvlLongitude+  = lens _gdgvlLongitude+      (\ s a -> s{_gdgvlLongitude = a})+      . mapping _Coerce++instance FromJSON GeolayerDataGeoViewportLo where+        parseJSON+          = withObject "GeolayerDataGeoViewportLo"+              (\ o ->+                 GeolayerDataGeoViewportLo <$>+                   (o .:? "latitude") <*> (o .:? "longitude"))++instance ToJSON GeolayerDataGeoViewportLo where+        toJSON GeolayerDataGeoViewportLo{..}+          = object+              (catMaybes+                 [("latitude" .=) <$> _gdgvlLatitude,+                  ("longitude" .=) <$> _gdgvlLongitude])++-- | Offer list (=undiscounted) price in Micros.+--+-- /See:/ 'volumeSaleInfoOffersItemListPrice' smart constructor.+data VolumeSaleInfoOffersItemListPrice = VolumeSaleInfoOffersItemListPrice+    { _vsioilpCurrencyCode   :: !(Maybe Text)+    , _vsioilpAmountInMicros :: !(Maybe (Textual Double))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeSaleInfoOffersItemListPrice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsioilpCurrencyCode'+--+-- * 'vsioilpAmountInMicros'+volumeSaleInfoOffersItemListPrice+    :: VolumeSaleInfoOffersItemListPrice+volumeSaleInfoOffersItemListPrice =+    VolumeSaleInfoOffersItemListPrice+    { _vsioilpCurrencyCode = Nothing+    , _vsioilpAmountInMicros = Nothing+    }++vsioilpCurrencyCode :: Lens' VolumeSaleInfoOffersItemListPrice (Maybe Text)+vsioilpCurrencyCode+  = lens _vsioilpCurrencyCode+      (\ s a -> s{_vsioilpCurrencyCode = a})++vsioilpAmountInMicros :: Lens' VolumeSaleInfoOffersItemListPrice (Maybe Double)+vsioilpAmountInMicros+  = lens _vsioilpAmountInMicros+      (\ s a -> s{_vsioilpAmountInMicros = a})+      . mapping _Coerce++instance FromJSON VolumeSaleInfoOffersItemListPrice+         where+        parseJSON+          = withObject "VolumeSaleInfoOffersItemListPrice"+              (\ o ->+                 VolumeSaleInfoOffersItemListPrice <$>+                   (o .:? "currencyCode") <*> (o .:? "amountInMicros"))++instance ToJSON VolumeSaleInfoOffersItemListPrice+         where+        toJSON VolumeSaleInfoOffersItemListPrice{..}+          = object+              (catMaybes+                 [("currencyCode" .=) <$> _vsioilpCurrencyCode,+                  ("amountInMicros" .=) <$> _vsioilpAmountInMicros])++--+-- /See:/ 'downloadAccessRestriction' smart constructor.+data DownloadAccessRestriction = DownloadAccessRestriction+    { _darJustAcquired       :: !(Maybe Bool)+    , _darSignature          :: !(Maybe Text)+    , _darKind               :: !Text+    , _darMaxDownloadDevices :: !(Maybe (Textual Int32))+    , _darDownloadsAcquired  :: !(Maybe (Textual Int32))+    , _darReasonCode         :: !(Maybe Text)+    , _darVolumeId           :: !(Maybe Text)+    , _darRestricted         :: !(Maybe Bool)+    , _darSource             :: !(Maybe Text)+    , _darDeviceAllowed      :: !(Maybe Bool)+    , _darMessage            :: !(Maybe Text)+    , _darNonce              :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DownloadAccessRestriction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'darJustAcquired'+--+-- * 'darSignature'+--+-- * 'darKind'+--+-- * 'darMaxDownloadDevices'+--+-- * 'darDownloadsAcquired'+--+-- * 'darReasonCode'+--+-- * 'darVolumeId'+--+-- * 'darRestricted'+--+-- * 'darSource'+--+-- * 'darDeviceAllowed'+--+-- * 'darMessage'+--+-- * 'darNonce'+downloadAccessRestriction+    :: DownloadAccessRestriction+downloadAccessRestriction =+    DownloadAccessRestriction+    { _darJustAcquired = Nothing+    , _darSignature = Nothing+    , _darKind = "books#downloadAccessRestriction"+    , _darMaxDownloadDevices = Nothing+    , _darDownloadsAcquired = Nothing+    , _darReasonCode = Nothing+    , _darVolumeId = Nothing+    , _darRestricted = Nothing+    , _darSource = Nothing+    , _darDeviceAllowed = Nothing+    , _darMessage = Nothing+    , _darNonce = Nothing+    }++-- | If deviceAllowed, whether access was just acquired with this request.+darJustAcquired :: Lens' DownloadAccessRestriction (Maybe Bool)+darJustAcquired+  = lens _darJustAcquired+      (\ s a -> s{_darJustAcquired = a})++-- | Response signature.+darSignature :: Lens' DownloadAccessRestriction (Maybe Text)+darSignature+  = lens _darSignature (\ s a -> s{_darSignature = a})++-- | Resource type.+darKind :: Lens' DownloadAccessRestriction Text+darKind = lens _darKind (\ s a -> s{_darKind = a})++-- | If restricted, the maximum number of content download licenses for this+-- volume.+darMaxDownloadDevices :: Lens' DownloadAccessRestriction (Maybe Int32)+darMaxDownloadDevices+  = lens _darMaxDownloadDevices+      (\ s a -> s{_darMaxDownloadDevices = a})+      . mapping _Coerce++-- | If restricted, the number of content download licenses already acquired+-- (including the requesting client, if licensed).+darDownloadsAcquired :: Lens' DownloadAccessRestriction (Maybe Int32)+darDownloadsAcquired+  = lens _darDownloadsAcquired+      (\ s a -> s{_darDownloadsAcquired = a})+      . mapping _Coerce++-- | 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)+darReasonCode+  = lens _darReasonCode+      (\ s a -> s{_darReasonCode = a})++-- | Identifies the volume for which this entry applies.+darVolumeId :: Lens' DownloadAccessRestriction (Maybe Text)+darVolumeId+  = lens _darVolumeId (\ s a -> s{_darVolumeId = a})++-- | Whether this volume has any download access restrictions.+darRestricted :: Lens' DownloadAccessRestriction (Maybe Bool)+darRestricted+  = lens _darRestricted+      (\ s a -> s{_darRestricted = a})++-- | Client app identifier for verification. Download access and+-- client-validation only.+darSource :: Lens' DownloadAccessRestriction (Maybe Text)+darSource+  = lens _darSource (\ s a -> s{_darSource = a})++-- | If restricted, whether access is granted for this (user, device,+-- volume).+darDeviceAllowed :: Lens' DownloadAccessRestriction (Maybe Bool)+darDeviceAllowed+  = lens _darDeviceAllowed+      (\ s a -> s{_darDeviceAllowed = a})++-- | Error\/warning message.+darMessage :: Lens' DownloadAccessRestriction (Maybe Text)+darMessage+  = lens _darMessage (\ s a -> s{_darMessage = a})++-- | Client nonce for verification. Download access and client-validation+-- only.+darNonce :: Lens' DownloadAccessRestriction (Maybe Text)+darNonce = lens _darNonce (\ s a -> s{_darNonce = a})++instance FromJSON DownloadAccessRestriction where+        parseJSON+          = withObject "DownloadAccessRestriction"+              (\ o ->+                 DownloadAccessRestriction <$>+                   (o .:? "justAcquired") <*> (o .:? "signature") <*>+                     (o .:? "kind" .!= "books#downloadAccessRestriction")+                     <*> (o .:? "maxDownloadDevices")+                     <*> (o .:? "downloadsAcquired")+                     <*> (o .:? "reasonCode")+                     <*> (o .:? "volumeId")+                     <*> (o .:? "restricted")+                     <*> (o .:? "source")+                     <*> (o .:? "deviceAllowed")+                     <*> (o .:? "message")+                     <*> (o .:? "nonce"))++instance ToJSON DownloadAccessRestriction where+        toJSON DownloadAccessRestriction{..}+          = object+              (catMaybes+                 [("justAcquired" .=) <$> _darJustAcquired,+                  ("signature" .=) <$> _darSignature,+                  Just ("kind" .= _darKind),+                  ("maxDownloadDevices" .=) <$> _darMaxDownloadDevices,+                  ("downloadsAcquired" .=) <$> _darDownloadsAcquired,+                  ("reasonCode" .=) <$> _darReasonCode,+                  ("volumeId" .=) <$> _darVolumeId,+                  ("restricted" .=) <$> _darRestricted,+                  ("source" .=) <$> _darSource,+                  ("deviceAllowed" .=) <$> _darDeviceAllowed,+                  ("message" .=) <$> _darMessage,+                  ("nonce" .=) <$> _darNonce])++--+-- /See:/ 'dictlayerDataCommon' smart constructor.+newtype DictlayerDataCommon = DictlayerDataCommon+    { _ddcTitle :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictlayerDataCommon' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddcTitle'+dictlayerDataCommon+    :: DictlayerDataCommon+dictlayerDataCommon =+    DictlayerDataCommon+    { _ddcTitle = Nothing+    }++-- | The display title and localized canonical name to use when searching for+-- this entity on Google search.+ddcTitle :: Lens' DictlayerDataCommon (Maybe Text)+ddcTitle = lens _ddcTitle (\ s a -> s{_ddcTitle = a})++instance FromJSON DictlayerDataCommon where+        parseJSON+          = withObject "DictlayerDataCommon"+              (\ o -> DictlayerDataCommon <$> (o .:? "title"))++instance ToJSON DictlayerDataCommon where+        toJSON DictlayerDataCommon{..}+          = object (catMaybes [("title" .=) <$> _ddcTitle])++--+-- /See:/ 'discoveryclustersClustersItem' smart constructor.+data DiscoveryclustersClustersItem = DiscoveryclustersClustersItem+    { _dciBannerWithContentContainer :: !(Maybe DiscoveryclustersClustersItemBanner_with_content_container)+    , _dciUid                        :: !(Maybe Text)+    , _dciTotalVolumes               :: !(Maybe (Textual Int32))+    , _dciSubTitle                   :: !(Maybe Text)+    , _dciTitle                      :: !(Maybe Text)+    , _dciVolumes                    :: !(Maybe [Volume])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiscoveryclustersClustersItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dciBannerWithContentContainer'+--+-- * 'dciUid'+--+-- * 'dciTotalVolumes'+--+-- * 'dciSubTitle'+--+-- * 'dciTitle'+--+-- * 'dciVolumes'+discoveryclustersClustersItem+    :: DiscoveryclustersClustersItem+discoveryclustersClustersItem =+    DiscoveryclustersClustersItem+    { _dciBannerWithContentContainer = Nothing+    , _dciUid = Nothing+    , _dciTotalVolumes = Nothing+    , _dciSubTitle = Nothing+    , _dciTitle = Nothing+    , _dciVolumes = Nothing+    }++dciBannerWithContentContainer :: Lens' DiscoveryclustersClustersItem (Maybe DiscoveryclustersClustersItemBanner_with_content_container)+dciBannerWithContentContainer+  = lens _dciBannerWithContentContainer+      (\ s a -> s{_dciBannerWithContentContainer = a})++dciUid :: Lens' DiscoveryclustersClustersItem (Maybe Text)+dciUid = lens _dciUid (\ s a -> s{_dciUid = a})++dciTotalVolumes :: Lens' DiscoveryclustersClustersItem (Maybe Int32)+dciTotalVolumes+  = lens _dciTotalVolumes+      (\ s a -> s{_dciTotalVolumes = a})+      . mapping _Coerce++dciSubTitle :: Lens' DiscoveryclustersClustersItem (Maybe Text)+dciSubTitle+  = lens _dciSubTitle (\ s a -> s{_dciSubTitle = a})++dciTitle :: Lens' DiscoveryclustersClustersItem (Maybe Text)+dciTitle = lens _dciTitle (\ s a -> s{_dciTitle = a})++dciVolumes :: Lens' DiscoveryclustersClustersItem [Volume]+dciVolumes+  = lens _dciVolumes (\ s a -> s{_dciVolumes = a}) .+      _Default+      . _Coerce++instance FromJSON DiscoveryclustersClustersItem where+        parseJSON+          = withObject "DiscoveryclustersClustersItem"+              (\ o ->+                 DiscoveryclustersClustersItem <$>+                   (o .:? "banner_with_content_container") <*>+                     (o .:? "uid")+                     <*> (o .:? "totalVolumes")+                     <*> (o .:? "subTitle")+                     <*> (o .:? "title")+                     <*> (o .:? "volumes" .!= mempty))++instance ToJSON DiscoveryclustersClustersItem where+        toJSON DiscoveryclustersClustersItem{..}+          = object+              (catMaybes+                 [("banner_with_content_container" .=) <$>+                    _dciBannerWithContentContainer,+                  ("uid" .=) <$> _dciUid,+                  ("totalVolumes" .=) <$> _dciTotalVolumes,+                  ("subTitle" .=) <$> _dciSubTitle,+                  ("title" .=) <$> _dciTitle,+                  ("volumes" .=) <$> _dciVolumes])++-- | 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.)+--+-- /See:/ 'volumeSaleInfoRetailPrice' smart constructor.+data VolumeSaleInfoRetailPrice = VolumeSaleInfoRetailPrice+    { _vsirpAmount       :: !(Maybe (Textual Double))+    , _vsirpCurrencyCode :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeSaleInfoRetailPrice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsirpAmount'+--+-- * 'vsirpCurrencyCode'+volumeSaleInfoRetailPrice+    :: VolumeSaleInfoRetailPrice+volumeSaleInfoRetailPrice =+    VolumeSaleInfoRetailPrice+    { _vsirpAmount = Nothing+    , _vsirpCurrencyCode = Nothing+    }++-- | Amount in the currency listed below. (In LITE projection.)+vsirpAmount :: Lens' VolumeSaleInfoRetailPrice (Maybe Double)+vsirpAmount+  = lens _vsirpAmount (\ s a -> s{_vsirpAmount = a}) .+      mapping _Coerce++-- | An ISO 4217, three-letter currency code. (In LITE projection.)+vsirpCurrencyCode :: Lens' VolumeSaleInfoRetailPrice (Maybe Text)+vsirpCurrencyCode+  = lens _vsirpCurrencyCode+      (\ s a -> s{_vsirpCurrencyCode = a})++instance FromJSON VolumeSaleInfoRetailPrice where+        parseJSON+          = withObject "VolumeSaleInfoRetailPrice"+              (\ o ->+                 VolumeSaleInfoRetailPrice <$>+                   (o .:? "amount") <*> (o .:? "currencyCode"))++instance ToJSON VolumeSaleInfoRetailPrice where+        toJSON VolumeSaleInfoRetailPrice{..}+          = object+              (catMaybes+                 [("amount" .=) <$> _vsirpAmount,+                  ("currencyCode" .=) <$> _vsirpCurrencyCode])++-- | Suggested retail price. (In LITE projection.)+--+-- /See:/ 'volumeSaleInfoListPrice' smart constructor.+data VolumeSaleInfoListPrice = VolumeSaleInfoListPrice+    { _vsilpAmount       :: !(Maybe (Textual Double))+    , _vsilpCurrencyCode :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeSaleInfoListPrice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsilpAmount'+--+-- * 'vsilpCurrencyCode'+volumeSaleInfoListPrice+    :: VolumeSaleInfoListPrice+volumeSaleInfoListPrice =+    VolumeSaleInfoListPrice+    { _vsilpAmount = Nothing+    , _vsilpCurrencyCode = Nothing+    }++-- | Amount in the currency listed below. (In LITE projection.)+vsilpAmount :: Lens' VolumeSaleInfoListPrice (Maybe Double)+vsilpAmount+  = lens _vsilpAmount (\ s a -> s{_vsilpAmount = a}) .+      mapping _Coerce++-- | An ISO 4217, three-letter currency code. (In LITE projection.)+vsilpCurrencyCode :: Lens' VolumeSaleInfoListPrice (Maybe Text)+vsilpCurrencyCode+  = lens _vsilpCurrencyCode+      (\ s a -> s{_vsilpCurrencyCode = a})++instance FromJSON VolumeSaleInfoListPrice where+        parseJSON+          = withObject "VolumeSaleInfoListPrice"+              (\ o ->+                 VolumeSaleInfoListPrice <$>+                   (o .:? "amount") <*> (o .:? "currencyCode"))++instance ToJSON VolumeSaleInfoListPrice where+        toJSON VolumeSaleInfoListPrice{..}+          = object+              (catMaybes+                 [("amount" .=) <$> _vsilpAmount,+                  ("currencyCode" .=) <$> _vsilpCurrencyCode])++--+-- /See:/ 'dictlayerDataDictWordsItemSensesItemConjugationsItem' smart constructor.+data DictlayerDataDictWordsItemSensesItemConjugationsItem = DictlayerDataDictWordsItemSensesItemConjugationsItem+    { _dddwisiciValue :: !(Maybe Text)+    , _dddwisiciType  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictlayerDataDictWordsItemSensesItemConjugationsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dddwisiciValue'+--+-- * 'dddwisiciType'+dictlayerDataDictWordsItemSensesItemConjugationsItem+    :: DictlayerDataDictWordsItemSensesItemConjugationsItem+dictlayerDataDictWordsItemSensesItemConjugationsItem =+    DictlayerDataDictWordsItemSensesItemConjugationsItem+    { _dddwisiciValue = Nothing+    , _dddwisiciType = Nothing+    }++dddwisiciValue :: Lens' DictlayerDataDictWordsItemSensesItemConjugationsItem (Maybe Text)+dddwisiciValue+  = lens _dddwisiciValue+      (\ s a -> s{_dddwisiciValue = a})++dddwisiciType :: Lens' DictlayerDataDictWordsItemSensesItemConjugationsItem (Maybe Text)+dddwisiciType+  = lens _dddwisiciType+      (\ s a -> s{_dddwisiciType = a})++instance FromJSON+         DictlayerDataDictWordsItemSensesItemConjugationsItem+         where+        parseJSON+          = withObject+              "DictlayerDataDictWordsItemSensesItemConjugationsItem"+              (\ o ->+                 DictlayerDataDictWordsItemSensesItemConjugationsItem+                   <$> (o .:? "value") <*> (o .:? "type"))++instance ToJSON+         DictlayerDataDictWordsItemSensesItemConjugationsItem+         where+        toJSON+          DictlayerDataDictWordsItemSensesItemConjugationsItem{..}+          = object+              (catMaybes+                 [("value" .=) <$> _dddwisiciValue,+                  ("type" .=) <$> _dddwisiciType])++--+-- /See:/ 'volume2' smart constructor.+data Volume2 = Volume2+    { _voloNextPageToken :: !(Maybe Text)+    , _voloKind          :: !Text+    , _voloItems         :: !(Maybe [Volume])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Volume2' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'voloNextPageToken'+--+-- * 'voloKind'+--+-- * 'voloItems'+volume2+    :: Volume2+volume2 =+    Volume2+    { _voloNextPageToken = Nothing+    , _voloKind = "onboarding#volume"+    , _voloItems = Nothing+    }++voloNextPageToken :: Lens' Volume2 (Maybe Text)+voloNextPageToken+  = lens _voloNextPageToken+      (\ s a -> s{_voloNextPageToken = a})++-- | Resource type.+voloKind :: Lens' Volume2 Text+voloKind = lens _voloKind (\ s a -> s{_voloKind = a})++-- | A list of volumes.+voloItems :: Lens' Volume2 [Volume]+voloItems+  = lens _voloItems (\ s a -> s{_voloItems = a}) .+      _Default+      . _Coerce++instance FromJSON Volume2 where+        parseJSON+          = withObject "Volume2"+              (\ o ->+                 Volume2 <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "onboarding#volume")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON Volume2 where+        toJSON Volume2{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _voloNextPageToken,+                  Just ("kind" .= _voloKind),+                  ("items" .=) <$> _voloItems])++--+-- /See:/ 'review' smart constructor.+data Review = Review+    { _rRating      :: !(Maybe Text)+    , _rKind        :: !Text+    , _rContent     :: !(Maybe Text)+    , _rDate        :: !(Maybe Text)+    , _rVolumeId    :: !(Maybe Text)+    , _rAuthor      :: !(Maybe ReviewAuthor)+    , _rSource      :: !(Maybe ReviewSource)+    , _rFullTextURL :: !(Maybe Text)+    , _rTitle       :: !(Maybe Text)+    , _rType        :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Review' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rRating'+--+-- * 'rKind'+--+-- * 'rContent'+--+-- * 'rDate'+--+-- * 'rVolumeId'+--+-- * 'rAuthor'+--+-- * 'rSource'+--+-- * 'rFullTextURL'+--+-- * 'rTitle'+--+-- * 'rType'+review+    :: Review+review =+    Review+    { _rRating = Nothing+    , _rKind = "books#review"+    , _rContent = Nothing+    , _rDate = Nothing+    , _rVolumeId = Nothing+    , _rAuthor = Nothing+    , _rSource = Nothing+    , _rFullTextURL = Nothing+    , _rTitle = Nothing+    , _rType = Nothing+    }++-- | Star rating for this review. Possible values are ONE, TWO, THREE, FOUR,+-- FIVE or NOT_RATED.+rRating :: Lens' Review (Maybe Text)+rRating = lens _rRating (\ s a -> s{_rRating = a})++-- | Resource type for a review.+rKind :: Lens' Review Text+rKind = lens _rKind (\ s a -> s{_rKind = a})++-- | Review text.+rContent :: Lens' Review (Maybe Text)+rContent = lens _rContent (\ s a -> s{_rContent = a})++-- | Date of this review.+rDate :: Lens' Review (Maybe Text)+rDate = lens _rDate (\ s a -> s{_rDate = a})++-- | Volume that this review is for.+rVolumeId :: Lens' Review (Maybe Text)+rVolumeId+  = lens _rVolumeId (\ s a -> s{_rVolumeId = a})++-- | Author of this review.+rAuthor :: Lens' Review (Maybe ReviewAuthor)+rAuthor = lens _rAuthor (\ s a -> s{_rAuthor = a})++-- | Information regarding the source of this review, when the review is not+-- from a Google Books user.+rSource :: Lens' Review (Maybe ReviewSource)+rSource = lens _rSource (\ s a -> s{_rSource = a})++-- | URL for the full review text, for reviews gathered from the web.+rFullTextURL :: Lens' Review (Maybe Text)+rFullTextURL+  = lens _rFullTextURL (\ s a -> s{_rFullTextURL = a})++-- | Title for this review.+rTitle :: Lens' Review (Maybe Text)+rTitle = lens _rTitle (\ s a -> s{_rTitle = a})++-- | Source type for this review. Possible values are EDITORIAL, WEB_USER or+-- GOOGLE_USER.+rType :: Lens' Review (Maybe Text)+rType = lens _rType (\ s a -> s{_rType = a})++instance FromJSON Review where+        parseJSON+          = withObject "Review"+              (\ o ->+                 Review <$>+                   (o .:? "rating") <*>+                     (o .:? "kind" .!= "books#review")+                     <*> (o .:? "content")+                     <*> (o .:? "date")+                     <*> (o .:? "volumeId")+                     <*> (o .:? "author")+                     <*> (o .:? "source")+                     <*> (o .:? "fullTextUrl")+                     <*> (o .:? "title")+                     <*> (o .:? "type"))++instance ToJSON Review where+        toJSON Review{..}+          = object+              (catMaybes+                 [("rating" .=) <$> _rRating, Just ("kind" .= _rKind),+                  ("content" .=) <$> _rContent, ("date" .=) <$> _rDate,+                  ("volumeId" .=) <$> _rVolumeId,+                  ("author" .=) <$> _rAuthor,+                  ("source" .=) <$> _rSource,+                  ("fullTextUrl" .=) <$> _rFullTextURL,+                  ("title" .=) <$> _rTitle, ("type" .=) <$> _rType])++-- | Period during this book is\/was a valid rental.+--+-- /See:/ 'volumeUserInfoRentalPeriod' smart constructor.+data VolumeUserInfoRentalPeriod = VolumeUserInfoRentalPeriod+    { _vuirpEndUtcSec   :: !(Maybe (Textual Int64))+    , _vuirpStartUtcSec :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeUserInfoRentalPeriod' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vuirpEndUtcSec'+--+-- * 'vuirpStartUtcSec'+volumeUserInfoRentalPeriod+    :: VolumeUserInfoRentalPeriod+volumeUserInfoRentalPeriod =+    VolumeUserInfoRentalPeriod+    { _vuirpEndUtcSec = Nothing+    , _vuirpStartUtcSec = Nothing+    }++vuirpEndUtcSec :: Lens' VolumeUserInfoRentalPeriod (Maybe Int64)+vuirpEndUtcSec+  = lens _vuirpEndUtcSec+      (\ s a -> s{_vuirpEndUtcSec = a})+      . mapping _Coerce++vuirpStartUtcSec :: Lens' VolumeUserInfoRentalPeriod (Maybe Int64)+vuirpStartUtcSec+  = lens _vuirpStartUtcSec+      (\ s a -> s{_vuirpStartUtcSec = a})+      . mapping _Coerce++instance FromJSON VolumeUserInfoRentalPeriod where+        parseJSON+          = withObject "VolumeUserInfoRentalPeriod"+              (\ o ->+                 VolumeUserInfoRentalPeriod <$>+                   (o .:? "endUtcSec") <*> (o .:? "startUtcSec"))++instance ToJSON VolumeUserInfoRentalPeriod where+        toJSON VolumeUserInfoRentalPeriod{..}+          = object+              (catMaybes+                 [("endUtcSec" .=) <$> _vuirpEndUtcSec,+                  ("startUtcSec" .=) <$> _vuirpStartUtcSec])++-- | 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).+--+-- /See:/ 'volumeSaleInfo' smart constructor.+data VolumeSaleInfo = VolumeSaleInfo+    { _vsiCountry     :: !(Maybe Text)+    , _vsiOnSaleDate  :: !(Maybe DateTime')+    , _vsiListPrice   :: !(Maybe VolumeSaleInfoListPrice)+    , _vsiRetailPrice :: !(Maybe VolumeSaleInfoRetailPrice)+    , _vsiOffers      :: !(Maybe [VolumeSaleInfoOffersItem])+    , _vsiBuyLink     :: !(Maybe Text)+    , _vsiIsEbook     :: !(Maybe Bool)+    , _vsiSaleability :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeSaleInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsiCountry'+--+-- * 'vsiOnSaleDate'+--+-- * 'vsiListPrice'+--+-- * 'vsiRetailPrice'+--+-- * 'vsiOffers'+--+-- * 'vsiBuyLink'+--+-- * 'vsiIsEbook'+--+-- * 'vsiSaleability'+volumeSaleInfo+    :: VolumeSaleInfo+volumeSaleInfo =+    VolumeSaleInfo+    { _vsiCountry = Nothing+    , _vsiOnSaleDate = Nothing+    , _vsiListPrice = Nothing+    , _vsiRetailPrice = Nothing+    , _vsiOffers = Nothing+    , _vsiBuyLink = Nothing+    , _vsiIsEbook = Nothing+    , _vsiSaleability = Nothing+    }++-- | The two-letter ISO_3166-1 country code for which this sale information+-- is valid. (In LITE projection.)+vsiCountry :: Lens' VolumeSaleInfo (Maybe Text)+vsiCountry+  = lens _vsiCountry (\ s a -> s{_vsiCountry = a})++-- | The date on which this book is available for sale.+vsiOnSaleDate :: Lens' VolumeSaleInfo (Maybe UTCTime)+vsiOnSaleDate+  = lens _vsiOnSaleDate+      (\ s a -> s{_vsiOnSaleDate = a})+      . mapping _DateTime++-- | Suggested retail price. (In LITE projection.)+vsiListPrice :: Lens' VolumeSaleInfo (Maybe VolumeSaleInfoListPrice)+vsiListPrice+  = lens _vsiListPrice (\ s a -> s{_vsiListPrice = a})++-- | 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)+vsiRetailPrice+  = lens _vsiRetailPrice+      (\ s a -> s{_vsiRetailPrice = a})++-- | Offers available for this volume (sales and rentals).+vsiOffers :: Lens' VolumeSaleInfo [VolumeSaleInfoOffersItem]+vsiOffers+  = lens _vsiOffers (\ s a -> s{_vsiOffers = a}) .+      _Default+      . _Coerce++-- | URL to purchase this volume on the Google Books site. (In LITE+-- projection)+vsiBuyLink :: Lens' VolumeSaleInfo (Maybe Text)+vsiBuyLink+  = lens _vsiBuyLink (\ s a -> s{_vsiBuyLink = a})++-- | Whether or not this volume is an eBook (can be added to the My eBooks+-- shelf).+vsiIsEbook :: Lens' VolumeSaleInfo (Maybe Bool)+vsiIsEbook+  = lens _vsiIsEbook (\ s a -> s{_vsiIsEbook = a})++-- | 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)+vsiSaleability+  = lens _vsiSaleability+      (\ s a -> s{_vsiSaleability = a})++instance FromJSON VolumeSaleInfo where+        parseJSON+          = withObject "VolumeSaleInfo"+              (\ o ->+                 VolumeSaleInfo <$>+                   (o .:? "country") <*> (o .:? "onSaleDate") <*>+                     (o .:? "listPrice")+                     <*> (o .:? "retailPrice")+                     <*> (o .:? "offers" .!= mempty)+                     <*> (o .:? "buyLink")+                     <*> (o .:? "isEbook")+                     <*> (o .:? "saleability"))++instance ToJSON VolumeSaleInfo where+        toJSON VolumeSaleInfo{..}+          = object+              (catMaybes+                 [("country" .=) <$> _vsiCountry,+                  ("onSaleDate" .=) <$> _vsiOnSaleDate,+                  ("listPrice" .=) <$> _vsiListPrice,+                  ("retailPrice" .=) <$> _vsiRetailPrice,+                  ("offers" .=) <$> _vsiOffers,+                  ("buyLink" .=) <$> _vsiBuyLink,+                  ("isEbook" .=) <$> _vsiIsEbook,+                  ("saleability" .=) <$> _vsiSaleability])++--+-- /See:/ 'metadata' smart constructor.+data Metadata = Metadata+    { _mKind  :: !Text+    , _mItems :: !(Maybe [MetadataItemsItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Metadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mKind'+--+-- * 'mItems'+metadata+    :: Metadata+metadata =+    Metadata+    { _mKind = "dictionary#metadata"+    , _mItems = Nothing+    }++-- | Resource type.+mKind :: Lens' Metadata Text+mKind = lens _mKind (\ s a -> s{_mKind = a})++-- | A list of offline dictionary metadata.+mItems :: Lens' Metadata [MetadataItemsItem]+mItems+  = lens _mItems (\ s a -> s{_mItems = a}) . _Default .+      _Coerce++instance FromJSON Metadata where+        parseJSON+          = withObject "Metadata"+              (\ o ->+                 Metadata <$>+                   (o .:? "kind" .!= "dictionary#metadata") <*>+                     (o .:? "items" .!= mempty))++instance ToJSON Metadata where+        toJSON Metadata{..}+          = object+              (catMaybes+                 [Just ("kind" .= _mKind), ("items" .=) <$> _mItems])++-- | What layers exist in this volume and high level information about them.+--+-- /See:/ 'volumeLayerInfo' smart constructor.+newtype VolumeLayerInfo = VolumeLayerInfo+    { _vliLayers :: Maybe [VolumeLayerInfoLayersItem]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeLayerInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vliLayers'+volumeLayerInfo+    :: VolumeLayerInfo+volumeLayerInfo =+    VolumeLayerInfo+    { _vliLayers = Nothing+    }++-- | A layer should appear here if and only if the layer exists for this+-- book.+vliLayers :: Lens' VolumeLayerInfo [VolumeLayerInfoLayersItem]+vliLayers+  = lens _vliLayers (\ s a -> s{_vliLayers = a}) .+      _Default+      . _Coerce++instance FromJSON VolumeLayerInfo where+        parseJSON+          = withObject "VolumeLayerInfo"+              (\ o ->+                 VolumeLayerInfo <$> (o .:? "layers" .!= mempty))++instance ToJSON VolumeLayerInfo where+        toJSON VolumeLayerInfo{..}+          = object (catMaybes [("layers" .=) <$> _vliLayers])++-- | Physical dimensions of this volume.+--+-- /See:/ 'volumeVolumeInfoDimensions' smart constructor.+data VolumeVolumeInfoDimensions = VolumeVolumeInfoDimensions+    { _vvidHeight    :: !(Maybe Text)+    , _vvidWidth     :: !(Maybe Text)+    , _vvidThickness :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeVolumeInfoDimensions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vvidHeight'+--+-- * 'vvidWidth'+--+-- * 'vvidThickness'+volumeVolumeInfoDimensions+    :: VolumeVolumeInfoDimensions+volumeVolumeInfoDimensions =+    VolumeVolumeInfoDimensions+    { _vvidHeight = Nothing+    , _vvidWidth = Nothing+    , _vvidThickness = Nothing+    }++-- | Height or length of this volume (in cm).+vvidHeight :: Lens' VolumeVolumeInfoDimensions (Maybe Text)+vvidHeight+  = lens _vvidHeight (\ s a -> s{_vvidHeight = a})++-- | Width of this volume (in cm).+vvidWidth :: Lens' VolumeVolumeInfoDimensions (Maybe Text)+vvidWidth+  = lens _vvidWidth (\ s a -> s{_vvidWidth = a})++-- | Thickness of this volume (in cm).+vvidThickness :: Lens' VolumeVolumeInfoDimensions (Maybe Text)+vvidThickness+  = lens _vvidThickness+      (\ s a -> s{_vvidThickness = a})++instance FromJSON VolumeVolumeInfoDimensions where+        parseJSON+          = withObject "VolumeVolumeInfoDimensions"+              (\ o ->+                 VolumeVolumeInfoDimensions <$>+                   (o .:? "height") <*> (o .:? "width") <*>+                     (o .:? "thickness"))++instance ToJSON VolumeVolumeInfoDimensions where+        toJSON VolumeVolumeInfoDimensions{..}+          = object+              (catMaybes+                 [("height" .=) <$> _vvidHeight,+                  ("width" .=) <$> _vvidWidth,+                  ("thickness" .=) <$> _vvidThickness])++--+-- /See:/ 'requestAccess' smart constructor.+data RequestAccess = RequestAccess+    { _raConcurrentAccess :: !(Maybe ConcurrentAccessRestriction)+    , _raKind             :: !Text+    , _raDownloadAccess   :: !(Maybe DownloadAccessRestriction)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RequestAccess' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'raConcurrentAccess'+--+-- * 'raKind'+--+-- * 'raDownloadAccess'+requestAccess+    :: RequestAccess+requestAccess =+    RequestAccess+    { _raConcurrentAccess = Nothing+    , _raKind = "books#requestAccess"+    , _raDownloadAccess = Nothing+    }++-- | A concurrent access response.+raConcurrentAccess :: Lens' RequestAccess (Maybe ConcurrentAccessRestriction)+raConcurrentAccess+  = lens _raConcurrentAccess+      (\ s a -> s{_raConcurrentAccess = a})++-- | Resource type.+raKind :: Lens' RequestAccess Text+raKind = lens _raKind (\ s a -> s{_raKind = a})++-- | A download access response.+raDownloadAccess :: Lens' RequestAccess (Maybe DownloadAccessRestriction)+raDownloadAccess+  = lens _raDownloadAccess+      (\ s a -> s{_raDownloadAccess = a})++instance FromJSON RequestAccess where+        parseJSON+          = withObject "RequestAccess"+              (\ o ->+                 RequestAccess <$>+                   (o .:? "concurrentAccess") <*>+                     (o .:? "kind" .!= "books#requestAccess")+                     <*> (o .:? "downloadAccess"))++instance ToJSON RequestAccess where+        toJSON RequestAccess{..}+          = object+              (catMaybes+                 [("concurrentAccess" .=) <$> _raConcurrentAccess,+                  Just ("kind" .= _raKind),+                  ("downloadAccess" .=) <$> _raDownloadAccess])++-- | Selection ranges sent from the client.+--+-- /See:/ 'annotationClientVersionRanges' smart constructor.+data AnnotationClientVersionRanges = AnnotationClientVersionRanges+    { _acvrGbImageRange   :: !(Maybe BooksAnnotationsRange)+    , _acvrContentVersion :: !(Maybe Text)+    , _acvrImageCfiRange  :: !(Maybe BooksAnnotationsRange)+    , _acvrGbTextRange    :: !(Maybe BooksAnnotationsRange)+    , _acvrCfiRange       :: !(Maybe BooksAnnotationsRange)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AnnotationClientVersionRanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'acvrGbImageRange'+--+-- * 'acvrContentVersion'+--+-- * 'acvrImageCfiRange'+--+-- * 'acvrGbTextRange'+--+-- * 'acvrCfiRange'+annotationClientVersionRanges+    :: AnnotationClientVersionRanges+annotationClientVersionRanges =+    AnnotationClientVersionRanges+    { _acvrGbImageRange = Nothing+    , _acvrContentVersion = Nothing+    , _acvrImageCfiRange = Nothing+    , _acvrGbTextRange = Nothing+    , _acvrCfiRange = Nothing+    }++-- | Range in GB image format for this annotation sent by client.+acvrGbImageRange :: Lens' AnnotationClientVersionRanges (Maybe BooksAnnotationsRange)+acvrGbImageRange+  = lens _acvrGbImageRange+      (\ s a -> s{_acvrGbImageRange = a})++-- | Content version the client sent in.+acvrContentVersion :: Lens' AnnotationClientVersionRanges (Maybe Text)+acvrContentVersion+  = lens _acvrContentVersion+      (\ s a -> s{_acvrContentVersion = a})++-- | Range in image CFI format for this annotation sent by client.+acvrImageCfiRange :: Lens' AnnotationClientVersionRanges (Maybe BooksAnnotationsRange)+acvrImageCfiRange+  = lens _acvrImageCfiRange+      (\ s a -> s{_acvrImageCfiRange = a})++-- | Range in GB text format for this annotation sent by client.+acvrGbTextRange :: Lens' AnnotationClientVersionRanges (Maybe BooksAnnotationsRange)+acvrGbTextRange+  = lens _acvrGbTextRange+      (\ s a -> s{_acvrGbTextRange = a})++-- | Range in CFI format for this annotation sent by client.+acvrCfiRange :: Lens' AnnotationClientVersionRanges (Maybe BooksAnnotationsRange)+acvrCfiRange+  = lens _acvrCfiRange (\ s a -> s{_acvrCfiRange = a})++instance FromJSON AnnotationClientVersionRanges where+        parseJSON+          = withObject "AnnotationClientVersionRanges"+              (\ o ->+                 AnnotationClientVersionRanges <$>+                   (o .:? "gbImageRange") <*> (o .:? "contentVersion")+                     <*> (o .:? "imageCfiRange")+                     <*> (o .:? "gbTextRange")+                     <*> (o .:? "cfiRange"))++instance ToJSON AnnotationClientVersionRanges where+        toJSON AnnotationClientVersionRanges{..}+          = object+              (catMaybes+                 [("gbImageRange" .=) <$> _acvrGbImageRange,+                  ("contentVersion" .=) <$> _acvrContentVersion,+                  ("imageCfiRange" .=) <$> _acvrImageCfiRange,+                  ("gbTextRange" .=) <$> _acvrGbTextRange,+                  ("cfiRange" .=) <$> _acvrCfiRange])++--+-- /See:/ 'dictlayerDataDictWordsItemSensesItemDefinitionsItem' smart constructor.+data DictlayerDataDictWordsItemSensesItemDefinitionsItem = DictlayerDataDictWordsItemSensesItemDefinitionsItem+    { _dddwisidiDefinition :: !(Maybe Text)+    , _dddwisidiExamples   :: !(Maybe [DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictlayerDataDictWordsItemSensesItemDefinitionsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dddwisidiDefinition'+--+-- * 'dddwisidiExamples'+dictlayerDataDictWordsItemSensesItemDefinitionsItem+    :: DictlayerDataDictWordsItemSensesItemDefinitionsItem+dictlayerDataDictWordsItemSensesItemDefinitionsItem =+    DictlayerDataDictWordsItemSensesItemDefinitionsItem+    { _dddwisidiDefinition = Nothing+    , _dddwisidiExamples = Nothing+    }++dddwisidiDefinition :: Lens' DictlayerDataDictWordsItemSensesItemDefinitionsItem (Maybe Text)+dddwisidiDefinition+  = lens _dddwisidiDefinition+      (\ s a -> s{_dddwisidiDefinition = a})++dddwisidiExamples :: Lens' DictlayerDataDictWordsItemSensesItemDefinitionsItem [DictlayerDataDictWordsItemSensesItemDefinitionsItemExamplesItem]+dddwisidiExamples+  = lens _dddwisidiExamples+      (\ s a -> s{_dddwisidiExamples = a})+      . _Default+      . _Coerce++instance FromJSON+         DictlayerDataDictWordsItemSensesItemDefinitionsItem+         where+        parseJSON+          = withObject+              "DictlayerDataDictWordsItemSensesItemDefinitionsItem"+              (\ o ->+                 DictlayerDataDictWordsItemSensesItemDefinitionsItem+                   <$>+                   (o .:? "definition") <*>+                     (o .:? "examples" .!= mempty))++instance ToJSON+         DictlayerDataDictWordsItemSensesItemDefinitionsItem+         where+        toJSON+          DictlayerDataDictWordsItemSensesItemDefinitionsItem{..}+          = object+              (catMaybes+                 [("definition" .=) <$> _dddwisidiDefinition,+                  ("examples" .=) <$> _dddwisidiExamples])++--+-- /See:/ 'volumeLayerInfoLayersItem' smart constructor.+data VolumeLayerInfoLayersItem = VolumeLayerInfoLayersItem+    { _vliliVolumeAnnotationsVersion :: !(Maybe Text)+    , _vliliLayerId                  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeLayerInfoLayersItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vliliVolumeAnnotationsVersion'+--+-- * 'vliliLayerId'+volumeLayerInfoLayersItem+    :: VolumeLayerInfoLayersItem+volumeLayerInfoLayersItem =+    VolumeLayerInfoLayersItem+    { _vliliVolumeAnnotationsVersion = Nothing+    , _vliliLayerId = Nothing+    }++-- | 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)+vliliVolumeAnnotationsVersion+  = lens _vliliVolumeAnnotationsVersion+      (\ s a -> s{_vliliVolumeAnnotationsVersion = a})++-- | The layer id of this layer (e.g. \"geo\").+vliliLayerId :: Lens' VolumeLayerInfoLayersItem (Maybe Text)+vliliLayerId+  = lens _vliliLayerId (\ s a -> s{_vliliLayerId = a})++instance FromJSON VolumeLayerInfoLayersItem where+        parseJSON+          = withObject "VolumeLayerInfoLayersItem"+              (\ o ->+                 VolumeLayerInfoLayersItem <$>+                   (o .:? "volumeAnnotationsVersion") <*>+                     (o .:? "layerId"))++instance ToJSON VolumeLayerInfoLayersItem where+        toJSON VolumeLayerInfoLayersItem{..}+          = object+              (catMaybes+                 [("volumeAnnotationsVersion" .=) <$>+                    _vliliVolumeAnnotationsVersion,+                  ("layerId" .=) <$> _vliliLayerId])++-- | Selection ranges for the most recent content version.+--+-- /See:/ 'annotationCurrentVersionRanges' smart constructor.+data AnnotationCurrentVersionRanges = AnnotationCurrentVersionRanges+    { _aGbImageRange   :: !(Maybe BooksAnnotationsRange)+    , _aContentVersion :: !(Maybe Text)+    , _aImageCfiRange  :: !(Maybe BooksAnnotationsRange)+    , _aGbTextRange    :: !(Maybe BooksAnnotationsRange)+    , _aCfiRange       :: !(Maybe BooksAnnotationsRange)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AnnotationCurrentVersionRanges' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aGbImageRange'+--+-- * 'aContentVersion'+--+-- * 'aImageCfiRange'+--+-- * 'aGbTextRange'+--+-- * 'aCfiRange'+annotationCurrentVersionRanges+    :: AnnotationCurrentVersionRanges+annotationCurrentVersionRanges =+    AnnotationCurrentVersionRanges+    { _aGbImageRange = Nothing+    , _aContentVersion = Nothing+    , _aImageCfiRange = Nothing+    , _aGbTextRange = Nothing+    , _aCfiRange = Nothing+    }++-- | Range in GB image format for this annotation for version above.+aGbImageRange :: Lens' AnnotationCurrentVersionRanges (Maybe BooksAnnotationsRange)+aGbImageRange+  = lens _aGbImageRange+      (\ s a -> s{_aGbImageRange = a})++-- | Content version applicable to ranges below.+aContentVersion :: Lens' AnnotationCurrentVersionRanges (Maybe Text)+aContentVersion+  = lens _aContentVersion+      (\ s a -> s{_aContentVersion = a})++-- | Range in image CFI format for this annotation for version above.+aImageCfiRange :: Lens' AnnotationCurrentVersionRanges (Maybe BooksAnnotationsRange)+aImageCfiRange+  = lens _aImageCfiRange+      (\ s a -> s{_aImageCfiRange = a})++-- | Range in GB text format for this annotation for version above.+aGbTextRange :: Lens' AnnotationCurrentVersionRanges (Maybe BooksAnnotationsRange)+aGbTextRange+  = lens _aGbTextRange (\ s a -> s{_aGbTextRange = a})++-- | Range in CFI format for this annotation for version above.+aCfiRange :: Lens' AnnotationCurrentVersionRanges (Maybe BooksAnnotationsRange)+aCfiRange+  = lens _aCfiRange (\ s a -> s{_aCfiRange = a})++instance FromJSON AnnotationCurrentVersionRanges+         where+        parseJSON+          = withObject "AnnotationCurrentVersionRanges"+              (\ o ->+                 AnnotationCurrentVersionRanges <$>+                   (o .:? "gbImageRange") <*> (o .:? "contentVersion")+                     <*> (o .:? "imageCfiRange")+                     <*> (o .:? "gbTextRange")+                     <*> (o .:? "cfiRange"))++instance ToJSON AnnotationCurrentVersionRanges where+        toJSON AnnotationCurrentVersionRanges{..}+          = object+              (catMaybes+                 [("gbImageRange" .=) <$> _aGbImageRange,+                  ("contentVersion" .=) <$> _aContentVersion,+                  ("imageCfiRange" .=) <$> _aImageCfiRange,+                  ("gbTextRange" .=) <$> _aGbTextRange,+                  ("cfiRange" .=) <$> _aCfiRange])++-- | Information about pdf content. (In LITE projection.)+--+-- /See:/ 'volumeAccessInfoPdf' smart constructor.+data VolumeAccessInfoPdf = VolumeAccessInfoPdf+    { _vaipAcsTokenLink :: !(Maybe Text)+    , _vaipIsAvailable  :: !(Maybe Bool)+    , _vaipDownloadLink :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeAccessInfoPdf' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vaipAcsTokenLink'+--+-- * 'vaipIsAvailable'+--+-- * 'vaipDownloadLink'+volumeAccessInfoPdf+    :: VolumeAccessInfoPdf+volumeAccessInfoPdf =+    VolumeAccessInfoPdf+    { _vaipAcsTokenLink = Nothing+    , _vaipIsAvailable = Nothing+    , _vaipDownloadLink = Nothing+    }++-- | URL to retrieve ACS token for pdf download. (In LITE projection.)+vaipAcsTokenLink :: Lens' VolumeAccessInfoPdf (Maybe Text)+vaipAcsTokenLink+  = lens _vaipAcsTokenLink+      (\ s a -> s{_vaipAcsTokenLink = a})++-- | Is a scanned image pdf available either as public domain or for+-- purchase. (In LITE projection.)+vaipIsAvailable :: Lens' VolumeAccessInfoPdf (Maybe Bool)+vaipIsAvailable+  = lens _vaipIsAvailable+      (\ s a -> s{_vaipIsAvailable = a})++-- | URL to download pdf. (In LITE projection.)+vaipDownloadLink :: Lens' VolumeAccessInfoPdf (Maybe Text)+vaipDownloadLink+  = lens _vaipDownloadLink+      (\ s a -> s{_vaipDownloadLink = a})++instance FromJSON VolumeAccessInfoPdf where+        parseJSON+          = withObject "VolumeAccessInfoPdf"+              (\ o ->+                 VolumeAccessInfoPdf <$>+                   (o .:? "acsTokenLink") <*> (o .:? "isAvailable") <*>+                     (o .:? "downloadLink"))++instance ToJSON VolumeAccessInfoPdf where+        toJSON VolumeAccessInfoPdf{..}+          = object+              (catMaybes+                 [("acsTokenLink" .=) <$> _vaipAcsTokenLink,+                  ("isAvailable" .=) <$> _vaipIsAvailable,+                  ("downloadLink" .=) <$> _vaipDownloadLink])++--+-- /See:/ 'dictlayerDataDictWordsItemExamplesItemSource' smart constructor.+data DictlayerDataDictWordsItemExamplesItemSource = DictlayerDataDictWordsItemExamplesItemSource+    { _dddwieisURL         :: !(Maybe Text)+    , _dddwieisAttribution :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictlayerDataDictWordsItemExamplesItemSource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dddwieisURL'+--+-- * 'dddwieisAttribution'+dictlayerDataDictWordsItemExamplesItemSource+    :: DictlayerDataDictWordsItemExamplesItemSource+dictlayerDataDictWordsItemExamplesItemSource =+    DictlayerDataDictWordsItemExamplesItemSource+    { _dddwieisURL = Nothing+    , _dddwieisAttribution = Nothing+    }++dddwieisURL :: Lens' DictlayerDataDictWordsItemExamplesItemSource (Maybe Text)+dddwieisURL+  = lens _dddwieisURL (\ s a -> s{_dddwieisURL = a})++dddwieisAttribution :: Lens' DictlayerDataDictWordsItemExamplesItemSource (Maybe Text)+dddwieisAttribution+  = lens _dddwieisAttribution+      (\ s a -> s{_dddwieisAttribution = a})++instance FromJSON+         DictlayerDataDictWordsItemExamplesItemSource where+        parseJSON+          = withObject+              "DictlayerDataDictWordsItemExamplesItemSource"+              (\ o ->+                 DictlayerDataDictWordsItemExamplesItemSource <$>+                   (o .:? "url") <*> (o .:? "attribution"))++instance ToJSON+         DictlayerDataDictWordsItemExamplesItemSource where+        toJSON+          DictlayerDataDictWordsItemExamplesItemSource{..}+          = object+              (catMaybes+                 [("url" .=) <$> _dddwieisURL,+                  ("attribution" .=) <$> _dddwieisAttribution])++-- | Information about epub content. (In LITE projection.)+--+-- /See:/ 'volumeAccessInfoEpub' smart constructor.+data VolumeAccessInfoEpub = VolumeAccessInfoEpub+    { _vaieAcsTokenLink :: !(Maybe Text)+    , _vaieIsAvailable  :: !(Maybe Bool)+    , _vaieDownloadLink :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeAccessInfoEpub' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vaieAcsTokenLink'+--+-- * 'vaieIsAvailable'+--+-- * 'vaieDownloadLink'+volumeAccessInfoEpub+    :: VolumeAccessInfoEpub+volumeAccessInfoEpub =+    VolumeAccessInfoEpub+    { _vaieAcsTokenLink = Nothing+    , _vaieIsAvailable = Nothing+    , _vaieDownloadLink = Nothing+    }++-- | URL to retrieve ACS token for epub download. (In LITE projection.)+vaieAcsTokenLink :: Lens' VolumeAccessInfoEpub (Maybe Text)+vaieAcsTokenLink+  = lens _vaieAcsTokenLink+      (\ s a -> s{_vaieAcsTokenLink = a})++-- | Is a flowing text epub available either as public domain or for+-- purchase. (In LITE projection.)+vaieIsAvailable :: Lens' VolumeAccessInfoEpub (Maybe Bool)+vaieIsAvailable+  = lens _vaieIsAvailable+      (\ s a -> s{_vaieIsAvailable = a})++-- | URL to download epub. (In LITE projection.)+vaieDownloadLink :: Lens' VolumeAccessInfoEpub (Maybe Text)+vaieDownloadLink+  = lens _vaieDownloadLink+      (\ s a -> s{_vaieDownloadLink = a})++instance FromJSON VolumeAccessInfoEpub where+        parseJSON+          = withObject "VolumeAccessInfoEpub"+              (\ o ->+                 VolumeAccessInfoEpub <$>+                   (o .:? "acsTokenLink") <*> (o .:? "isAvailable") <*>+                     (o .:? "downloadLink"))++instance ToJSON VolumeAccessInfoEpub where+        toJSON VolumeAccessInfoEpub{..}+          = object+              (catMaybes+                 [("acsTokenLink" .=) <$> _vaieAcsTokenLink,+                  ("isAvailable" .=) <$> _vaieIsAvailable,+                  ("downloadLink" .=) <$> _vaieDownloadLink])++--+-- /See:/ 'readingPosition' smart constructor.+data ReadingPosition = ReadingPosition+    { _rpEpubCfiPosition :: !(Maybe Text)+    , _rpKind            :: !Text+    , _rpGbImagePosition :: !(Maybe Text)+    , _rpPdfPosition     :: !(Maybe Text)+    , _rpVolumeId        :: !(Maybe Text)+    , _rpUpdated         :: !(Maybe DateTime')+    , _rpGbTextPosition  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ReadingPosition' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rpEpubCfiPosition'+--+-- * 'rpKind'+--+-- * 'rpGbImagePosition'+--+-- * 'rpPdfPosition'+--+-- * 'rpVolumeId'+--+-- * 'rpUpdated'+--+-- * 'rpGbTextPosition'+readingPosition+    :: ReadingPosition+readingPosition =+    ReadingPosition+    { _rpEpubCfiPosition = Nothing+    , _rpKind = "books#readingPosition"+    , _rpGbImagePosition = Nothing+    , _rpPdfPosition = Nothing+    , _rpVolumeId = Nothing+    , _rpUpdated = Nothing+    , _rpGbTextPosition = Nothing+    }++-- | Position in an EPUB as a CFI.+rpEpubCfiPosition :: Lens' ReadingPosition (Maybe Text)+rpEpubCfiPosition+  = lens _rpEpubCfiPosition+      (\ s a -> s{_rpEpubCfiPosition = a})++-- | Resource type for a reading position.+rpKind :: Lens' ReadingPosition Text+rpKind = lens _rpKind (\ s a -> s{_rpKind = a})++-- | Position in a volume for image-based content.+rpGbImagePosition :: Lens' ReadingPosition (Maybe Text)+rpGbImagePosition+  = lens _rpGbImagePosition+      (\ s a -> s{_rpGbImagePosition = a})++-- | Position in a PDF file.+rpPdfPosition :: Lens' ReadingPosition (Maybe Text)+rpPdfPosition+  = lens _rpPdfPosition+      (\ s a -> s{_rpPdfPosition = a})++-- | Volume id associated with this reading position.+rpVolumeId :: Lens' ReadingPosition (Maybe Text)+rpVolumeId+  = lens _rpVolumeId (\ s a -> s{_rpVolumeId = a})++-- | Timestamp when this reading position was last updated (formatted UTC+-- timestamp with millisecond resolution).+rpUpdated :: Lens' ReadingPosition (Maybe UTCTime)+rpUpdated+  = lens _rpUpdated (\ s a -> s{_rpUpdated = a}) .+      mapping _DateTime++-- | Position in a volume for text-based content.+rpGbTextPosition :: Lens' ReadingPosition (Maybe Text)+rpGbTextPosition+  = lens _rpGbTextPosition+      (\ s a -> s{_rpGbTextPosition = a})++instance FromJSON ReadingPosition where+        parseJSON+          = withObject "ReadingPosition"+              (\ o ->+                 ReadingPosition <$>+                   (o .:? "epubCfiPosition") <*>+                     (o .:? "kind" .!= "books#readingPosition")+                     <*> (o .:? "gbImagePosition")+                     <*> (o .:? "pdfPosition")+                     <*> (o .:? "volumeId")+                     <*> (o .:? "updated")+                     <*> (o .:? "gbTextPosition"))++instance ToJSON ReadingPosition where+        toJSON ReadingPosition{..}+          = object+              (catMaybes+                 [("epubCfiPosition" .=) <$> _rpEpubCfiPosition,+                  Just ("kind" .= _rpKind),+                  ("gbImagePosition" .=) <$> _rpGbImagePosition,+                  ("pdfPosition" .=) <$> _rpPdfPosition,+                  ("volumeId" .=) <$> _rpVolumeId,+                  ("updated" .=) <$> _rpUpdated,+                  ("gbTextPosition" .=) <$> _rpGbTextPosition])++--+-- /See:/ 'volumeSaleInfoOffersItem' smart constructor.+data VolumeSaleInfoOffersItem = VolumeSaleInfoOffersItem+    { _vsioiFinskyOfferType :: !(Maybe (Textual Int32))+    , _vsioiRentalDuration  :: !(Maybe VolumeSaleInfoOffersItemRentalDuration)+    , _vsioiListPrice       :: !(Maybe VolumeSaleInfoOffersItemListPrice)+    , _vsioiRetailPrice     :: !(Maybe VolumeSaleInfoOffersItemRetailPrice)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeSaleInfoOffersItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsioiFinskyOfferType'+--+-- * 'vsioiRentalDuration'+--+-- * 'vsioiListPrice'+--+-- * 'vsioiRetailPrice'+volumeSaleInfoOffersItem+    :: VolumeSaleInfoOffersItem+volumeSaleInfoOffersItem =+    VolumeSaleInfoOffersItem+    { _vsioiFinskyOfferType = Nothing+    , _vsioiRentalDuration = Nothing+    , _vsioiListPrice = Nothing+    , _vsioiRetailPrice = Nothing+    }++-- | The finsky offer type (e.g., PURCHASE=0 RENTAL=3)+vsioiFinskyOfferType :: Lens' VolumeSaleInfoOffersItem (Maybe Int32)+vsioiFinskyOfferType+  = lens _vsioiFinskyOfferType+      (\ s a -> s{_vsioiFinskyOfferType = a})+      . mapping _Coerce++-- | The rental duration (for rental offers only).+vsioiRentalDuration :: Lens' VolumeSaleInfoOffersItem (Maybe VolumeSaleInfoOffersItemRentalDuration)+vsioiRentalDuration+  = lens _vsioiRentalDuration+      (\ s a -> s{_vsioiRentalDuration = a})++-- | Offer list (=undiscounted) price in Micros.+vsioiListPrice :: Lens' VolumeSaleInfoOffersItem (Maybe VolumeSaleInfoOffersItemListPrice)+vsioiListPrice+  = lens _vsioiListPrice+      (\ s a -> s{_vsioiListPrice = a})++-- | Offer retail (=discounted) price in Micros+vsioiRetailPrice :: Lens' VolumeSaleInfoOffersItem (Maybe VolumeSaleInfoOffersItemRetailPrice)+vsioiRetailPrice+  = lens _vsioiRetailPrice+      (\ s a -> s{_vsioiRetailPrice = a})++instance FromJSON VolumeSaleInfoOffersItem where+        parseJSON+          = withObject "VolumeSaleInfoOffersItem"+              (\ o ->+                 VolumeSaleInfoOffersItem <$>+                   (o .:? "finskyOfferType") <*>+                     (o .:? "rentalDuration")+                     <*> (o .:? "listPrice")+                     <*> (o .:? "retailPrice"))++instance ToJSON VolumeSaleInfoOffersItem where+        toJSON VolumeSaleInfoOffersItem{..}+          = object+              (catMaybes+                 [("finskyOfferType" .=) <$> _vsioiFinskyOfferType,+                  ("rentalDuration" .=) <$> _vsioiRentalDuration,+                  ("listPrice" .=) <$> _vsioiListPrice,+                  ("retailPrice" .=) <$> _vsioiRetailPrice])++--+-- /See:/ 'dictlayerDataDict' smart constructor.+data DictlayerDataDict = DictlayerDataDict+    { _dddSource :: !(Maybe DictlayerDataDictSource)+    , _dddWords  :: !(Maybe [DictlayerDataDictWordsItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictlayerDataDict' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dddSource'+--+-- * 'dddWords'+dictlayerDataDict+    :: DictlayerDataDict+dictlayerDataDict =+    DictlayerDataDict+    { _dddSource = Nothing+    , _dddWords = Nothing+    }++-- | The source, url and attribution for this dictionary data.+dddSource :: Lens' DictlayerDataDict (Maybe DictlayerDataDictSource)+dddSource+  = lens _dddSource (\ s a -> s{_dddSource = a})++dddWords :: Lens' DictlayerDataDict [DictlayerDataDictWordsItem]+dddWords+  = lens _dddWords (\ s a -> s{_dddWords = a}) .+      _Default+      . _Coerce++instance FromJSON DictlayerDataDict where+        parseJSON+          = withObject "DictlayerDataDict"+              (\ o ->+                 DictlayerDataDict <$>+                   (o .:? "source") <*> (o .:? "words" .!= mempty))++instance ToJSON DictlayerDataDict where+        toJSON DictlayerDataDict{..}+          = object+              (catMaybes+                 [("source" .=) <$> _dddSource,+                  ("words" .=) <$> _dddWords])++--+-- /See:/ 'dictlayerDataDictWordsItemSensesItem' smart constructor.+data DictlayerDataDictWordsItemSensesItem = DictlayerDataDictWordsItemSensesItem+    { _dddwisiPronunciationURL :: !(Maybe Text)+    , _dddwisiConjugations     :: !(Maybe [DictlayerDataDictWordsItemSensesItemConjugationsItem])+    , _dddwisiPronunciation    :: !(Maybe Text)+    , _dddwisiSynonyms         :: !(Maybe [DictlayerDataDictWordsItemSensesItemSynonymsItem])+    , _dddwisiSource           :: !(Maybe DictlayerDataDictWordsItemSensesItemSource)+    , _dddwisiPartOfSpeech     :: !(Maybe Text)+    , _dddwisiDefinitions      :: !(Maybe [DictlayerDataDictWordsItemSensesItemDefinitionsItem])+    , _dddwisiSyllabification  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictlayerDataDictWordsItemSensesItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dddwisiPronunciationURL'+--+-- * 'dddwisiConjugations'+--+-- * 'dddwisiPronunciation'+--+-- * 'dddwisiSynonyms'+--+-- * 'dddwisiSource'+--+-- * 'dddwisiPartOfSpeech'+--+-- * 'dddwisiDefinitions'+--+-- * 'dddwisiSyllabification'+dictlayerDataDictWordsItemSensesItem+    :: DictlayerDataDictWordsItemSensesItem+dictlayerDataDictWordsItemSensesItem =+    DictlayerDataDictWordsItemSensesItem+    { _dddwisiPronunciationURL = Nothing+    , _dddwisiConjugations = Nothing+    , _dddwisiPronunciation = Nothing+    , _dddwisiSynonyms = Nothing+    , _dddwisiSource = Nothing+    , _dddwisiPartOfSpeech = Nothing+    , _dddwisiDefinitions = Nothing+    , _dddwisiSyllabification = Nothing+    }++dddwisiPronunciationURL :: Lens' DictlayerDataDictWordsItemSensesItem (Maybe Text)+dddwisiPronunciationURL+  = lens _dddwisiPronunciationURL+      (\ s a -> s{_dddwisiPronunciationURL = a})++dddwisiConjugations :: Lens' DictlayerDataDictWordsItemSensesItem [DictlayerDataDictWordsItemSensesItemConjugationsItem]+dddwisiConjugations+  = lens _dddwisiConjugations+      (\ s a -> s{_dddwisiConjugations = a})+      . _Default+      . _Coerce++dddwisiPronunciation :: Lens' DictlayerDataDictWordsItemSensesItem (Maybe Text)+dddwisiPronunciation+  = lens _dddwisiPronunciation+      (\ s a -> s{_dddwisiPronunciation = a})++dddwisiSynonyms :: Lens' DictlayerDataDictWordsItemSensesItem [DictlayerDataDictWordsItemSensesItemSynonymsItem]+dddwisiSynonyms+  = lens _dddwisiSynonyms+      (\ s a -> s{_dddwisiSynonyms = a})+      . _Default+      . _Coerce++dddwisiSource :: Lens' DictlayerDataDictWordsItemSensesItem (Maybe DictlayerDataDictWordsItemSensesItemSource)+dddwisiSource+  = lens _dddwisiSource+      (\ s a -> s{_dddwisiSource = a})++dddwisiPartOfSpeech :: Lens' DictlayerDataDictWordsItemSensesItem (Maybe Text)+dddwisiPartOfSpeech+  = lens _dddwisiPartOfSpeech+      (\ s a -> s{_dddwisiPartOfSpeech = a})++dddwisiDefinitions :: Lens' DictlayerDataDictWordsItemSensesItem [DictlayerDataDictWordsItemSensesItemDefinitionsItem]+dddwisiDefinitions+  = lens _dddwisiDefinitions+      (\ s a -> s{_dddwisiDefinitions = a})+      . _Default+      . _Coerce++dddwisiSyllabification :: Lens' DictlayerDataDictWordsItemSensesItem (Maybe Text)+dddwisiSyllabification+  = lens _dddwisiSyllabification+      (\ s a -> s{_dddwisiSyllabification = a})++instance FromJSON+         DictlayerDataDictWordsItemSensesItem where+        parseJSON+          = withObject "DictlayerDataDictWordsItemSensesItem"+              (\ o ->+                 DictlayerDataDictWordsItemSensesItem <$>+                   (o .:? "pronunciationUrl") <*>+                     (o .:? "conjugations" .!= mempty)+                     <*> (o .:? "pronunciation")+                     <*> (o .:? "synonyms" .!= mempty)+                     <*> (o .:? "source")+                     <*> (o .:? "partOfSpeech")+                     <*> (o .:? "definitions" .!= mempty)+                     <*> (o .:? "syllabification"))++instance ToJSON DictlayerDataDictWordsItemSensesItem+         where+        toJSON DictlayerDataDictWordsItemSensesItem{..}+          = object+              (catMaybes+                 [("pronunciationUrl" .=) <$>+                    _dddwisiPronunciationURL,+                  ("conjugations" .=) <$> _dddwisiConjugations,+                  ("pronunciation" .=) <$> _dddwisiPronunciation,+                  ("synonyms" .=) <$> _dddwisiSynonyms,+                  ("source" .=) <$> _dddwisiSource,+                  ("partOfSpeech" .=) <$> _dddwisiPartOfSpeech,+                  ("definitions" .=) <$> _dddwisiDefinitions,+                  ("syllabification" .=) <$> _dddwisiSyllabification])++-- | Recommendation related information for this volume.+--+-- /See:/ 'volumeRecommendedInfo' smart constructor.+newtype VolumeRecommendedInfo = VolumeRecommendedInfo+    { _vriExplanation :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeRecommendedInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vriExplanation'+volumeRecommendedInfo+    :: VolumeRecommendedInfo+volumeRecommendedInfo =+    VolumeRecommendedInfo+    { _vriExplanation = Nothing+    }++-- | A text explaining why this volume is recommended.+vriExplanation :: Lens' VolumeRecommendedInfo (Maybe Text)+vriExplanation+  = lens _vriExplanation+      (\ s a -> s{_vriExplanation = a})++instance FromJSON VolumeRecommendedInfo where+        parseJSON+          = withObject "VolumeRecommendedInfo"+              (\ o ->+                 VolumeRecommendedInfo <$> (o .:? "explanation"))++instance ToJSON VolumeRecommendedInfo where+        toJSON VolumeRecommendedInfo{..}+          = object+              (catMaybes [("explanation" .=) <$> _vriExplanation])++--+-- /See:/ 'offers' smart constructor.+data Offers = Offers+    { _oKind  :: !Text+    , _oItems :: !(Maybe [OffersItemsItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Offers' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oKind'+--+-- * 'oItems'+offers+    :: Offers+offers =+    Offers+    { _oKind = "promooffer#offers"+    , _oItems = Nothing+    }++-- | Resource type.+oKind :: Lens' Offers Text+oKind = lens _oKind (\ s a -> s{_oKind = a})++-- | A list of offers.+oItems :: Lens' Offers [OffersItemsItem]+oItems+  = lens _oItems (\ s a -> s{_oItems = a}) . _Default .+      _Coerce++instance FromJSON Offers where+        parseJSON+          = withObject "Offers"+              (\ o ->+                 Offers <$>+                   (o .:? "kind" .!= "promooffer#offers") <*>+                     (o .:? "items" .!= mempty))++instance ToJSON Offers where+        toJSON Offers{..}+          = object+              (catMaybes+                 [Just ("kind" .= _oKind), ("items" .=) <$> _oItems])++--+-- /See:/ 'discoveryclusters' smart constructor.+data Discoveryclusters = Discoveryclusters+    { _dKind          :: !Text+    , _dTotalClusters :: !(Maybe (Textual Int32))+    , _dClusters      :: !(Maybe [DiscoveryclustersClustersItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Discoveryclusters' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dKind'+--+-- * 'dTotalClusters'+--+-- * 'dClusters'+discoveryclusters+    :: Discoveryclusters+discoveryclusters =+    Discoveryclusters+    { _dKind = "books#discovery#clusters"+    , _dTotalClusters = Nothing+    , _dClusters = Nothing+    }++-- | Resorce type.+dKind :: Lens' Discoveryclusters Text+dKind = lens _dKind (\ s a -> s{_dKind = a})++dTotalClusters :: Lens' Discoveryclusters (Maybe Int32)+dTotalClusters+  = lens _dTotalClusters+      (\ s a -> s{_dTotalClusters = a})+      . mapping _Coerce++dClusters :: Lens' Discoveryclusters [DiscoveryclustersClustersItem]+dClusters+  = lens _dClusters (\ s a -> s{_dClusters = a}) .+      _Default+      . _Coerce++instance FromJSON Discoveryclusters where+        parseJSON+          = withObject "Discoveryclusters"+              (\ o ->+                 Discoveryclusters <$>+                   (o .:? "kind" .!= "books#discovery#clusters") <*>+                     (o .:? "totalClusters")+                     <*> (o .:? "clusters" .!= mempty))++instance ToJSON Discoveryclusters where+        toJSON Discoveryclusters{..}+          = object+              (catMaybes+                 [Just ("kind" .= _dKind),+                  ("totalClusters" .=) <$> _dTotalClusters,+                  ("clusters" .=) <$> _dClusters])++-- | User settings in sub-objects, each for different purposes.+--+-- /See:/ 'userSettingsNotesExport' smart constructor.+data UserSettingsNotesExport = UserSettingsNotesExport+    { _usneFolderName :: !(Maybe Text)+    , _usneIsEnabled  :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserSettingsNotesExport' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usneFolderName'+--+-- * 'usneIsEnabled'+userSettingsNotesExport+    :: UserSettingsNotesExport+userSettingsNotesExport =+    UserSettingsNotesExport+    { _usneFolderName = Nothing+    , _usneIsEnabled = Nothing+    }++usneFolderName :: Lens' UserSettingsNotesExport (Maybe Text)+usneFolderName+  = lens _usneFolderName+      (\ s a -> s{_usneFolderName = a})++usneIsEnabled :: Lens' UserSettingsNotesExport (Maybe Bool)+usneIsEnabled+  = lens _usneIsEnabled+      (\ s a -> s{_usneIsEnabled = a})++instance FromJSON UserSettingsNotesExport where+        parseJSON+          = withObject "UserSettingsNotesExport"+              (\ o ->+                 UserSettingsNotesExport <$>+                   (o .:? "folderName") <*> (o .:? "isEnabled"))++instance ToJSON UserSettingsNotesExport where+        toJSON UserSettingsNotesExport{..}+          = object+              (catMaybes+                 [("folderName" .=) <$> _usneFolderName,+                  ("isEnabled" .=) <$> _usneIsEnabled])++--+-- /See:/ 'concurrentAccessRestriction' smart constructor.+data ConcurrentAccessRestriction = ConcurrentAccessRestriction+    { _carMaxConcurrentDevices :: !(Maybe (Textual Int32))+    , _carSignature            :: !(Maybe Text)+    , _carTimeWindowSeconds    :: !(Maybe (Textual Int32))+    , _carKind                 :: !Text+    , _carReasonCode           :: !(Maybe Text)+    , _carVolumeId             :: !(Maybe Text)+    , _carRestricted           :: !(Maybe Bool)+    , _carSource               :: !(Maybe Text)+    , _carDeviceAllowed        :: !(Maybe Bool)+    , _carMessage              :: !(Maybe Text)+    , _carNonce                :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ConcurrentAccessRestriction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'carMaxConcurrentDevices'+--+-- * 'carSignature'+--+-- * 'carTimeWindowSeconds'+--+-- * 'carKind'+--+-- * 'carReasonCode'+--+-- * 'carVolumeId'+--+-- * 'carRestricted'+--+-- * 'carSource'+--+-- * 'carDeviceAllowed'+--+-- * 'carMessage'+--+-- * 'carNonce'+concurrentAccessRestriction+    :: ConcurrentAccessRestriction+concurrentAccessRestriction =+    ConcurrentAccessRestriction+    { _carMaxConcurrentDevices = Nothing+    , _carSignature = Nothing+    , _carTimeWindowSeconds = Nothing+    , _carKind = "books#concurrentAccessRestriction"+    , _carReasonCode = Nothing+    , _carVolumeId = Nothing+    , _carRestricted = Nothing+    , _carSource = Nothing+    , _carDeviceAllowed = Nothing+    , _carMessage = Nothing+    , _carNonce = Nothing+    }++-- | The maximum number of concurrent access licenses for this volume.+carMaxConcurrentDevices :: Lens' ConcurrentAccessRestriction (Maybe Int32)+carMaxConcurrentDevices+  = lens _carMaxConcurrentDevices+      (\ s a -> s{_carMaxConcurrentDevices = a})+      . mapping _Coerce++-- | Response signature.+carSignature :: Lens' ConcurrentAccessRestriction (Maybe Text)+carSignature+  = lens _carSignature (\ s a -> s{_carSignature = a})++-- | Time in seconds for license auto-expiration.+carTimeWindowSeconds :: Lens' ConcurrentAccessRestriction (Maybe Int32)+carTimeWindowSeconds+  = lens _carTimeWindowSeconds+      (\ s a -> s{_carTimeWindowSeconds = a})+      . mapping _Coerce++-- | Resource type.+carKind :: Lens' ConcurrentAccessRestriction Text+carKind = lens _carKind (\ s a -> s{_carKind = a})++-- | Error\/warning reason code.+carReasonCode :: Lens' ConcurrentAccessRestriction (Maybe Text)+carReasonCode+  = lens _carReasonCode+      (\ s a -> s{_carReasonCode = a})++-- | Identifies the volume for which this entry applies.+carVolumeId :: Lens' ConcurrentAccessRestriction (Maybe Text)+carVolumeId+  = lens _carVolumeId (\ s a -> s{_carVolumeId = a})++-- | Whether this volume has any concurrent access restrictions.+carRestricted :: Lens' ConcurrentAccessRestriction (Maybe Bool)+carRestricted+  = lens _carRestricted+      (\ s a -> s{_carRestricted = a})++-- | Client app identifier for verification. Download access and+-- client-validation only.+carSource :: Lens' ConcurrentAccessRestriction (Maybe Text)+carSource+  = lens _carSource (\ s a -> s{_carSource = a})++-- | Whether access is granted for this (user, device, volume).+carDeviceAllowed :: Lens' ConcurrentAccessRestriction (Maybe Bool)+carDeviceAllowed+  = lens _carDeviceAllowed+      (\ s a -> s{_carDeviceAllowed = a})++-- | Error\/warning message.+carMessage :: Lens' ConcurrentAccessRestriction (Maybe Text)+carMessage+  = lens _carMessage (\ s a -> s{_carMessage = a})++-- | Client nonce for verification. Download access and client-validation+-- only.+carNonce :: Lens' ConcurrentAccessRestriction (Maybe Text)+carNonce = lens _carNonce (\ s a -> s{_carNonce = a})++instance FromJSON ConcurrentAccessRestriction where+        parseJSON+          = withObject "ConcurrentAccessRestriction"+              (\ o ->+                 ConcurrentAccessRestriction <$>+                   (o .:? "maxConcurrentDevices") <*>+                     (o .:? "signature")+                     <*> (o .:? "timeWindowSeconds")+                     <*>+                     (o .:? "kind" .!=+                        "books#concurrentAccessRestriction")+                     <*> (o .:? "reasonCode")+                     <*> (o .:? "volumeId")+                     <*> (o .:? "restricted")+                     <*> (o .:? "source")+                     <*> (o .:? "deviceAllowed")+                     <*> (o .:? "message")+                     <*> (o .:? "nonce"))++instance ToJSON ConcurrentAccessRestriction where+        toJSON ConcurrentAccessRestriction{..}+          = object+              (catMaybes+                 [("maxConcurrentDevices" .=) <$>+                    _carMaxConcurrentDevices,+                  ("signature" .=) <$> _carSignature,+                  ("timeWindowSeconds" .=) <$> _carTimeWindowSeconds,+                  Just ("kind" .= _carKind),+                  ("reasonCode" .=) <$> _carReasonCode,+                  ("volumeId" .=) <$> _carVolumeId,+                  ("restricted" .=) <$> _carRestricted,+                  ("source" .=) <$> _carSource,+                  ("deviceAllowed" .=) <$> _carDeviceAllowed,+                  ("message" .=) <$> _carMessage,+                  ("nonce" .=) <$> _carNonce])++--+-- /See:/ 'volumes' smart constructor.+data Volumes = Volumes+    { _v1TotalItems :: !(Maybe (Textual Int32))+    , _v1Kind       :: !Text+    , _v1Items      :: !(Maybe [Volume])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Volumes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'v1TotalItems'+--+-- * 'v1Kind'+--+-- * 'v1Items'+volumes+    :: Volumes+volumes =+    Volumes+    { _v1TotalItems = Nothing+    , _v1Kind = "books#volumes"+    , _v1Items = Nothing+    }++-- | 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)+v1TotalItems+  = lens _v1TotalItems (\ s a -> s{_v1TotalItems = a})+      . mapping _Coerce++-- | Resource type.+v1Kind :: Lens' Volumes Text+v1Kind = lens _v1Kind (\ s a -> s{_v1Kind = a})++-- | A list of volumes.+v1Items :: Lens' Volumes [Volume]+v1Items+  = lens _v1Items (\ s a -> s{_v1Items = a}) . _Default+      . _Coerce++instance FromJSON Volumes where+        parseJSON+          = withObject "Volumes"+              (\ o ->+                 Volumes <$>+                   (o .:? "totalItems") <*>+                     (o .:? "kind" .!= "books#volumes")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON Volumes where+        toJSON Volumes{..}+          = object+              (catMaybes+                 [("totalItems" .=) <$> _v1TotalItems,+                  Just ("kind" .= _v1Kind), ("items" .=) <$> _v1Items])++--+-- /See:/ 'bookshelves' smart constructor.+data Bookshelves = Bookshelves+    { _booKind  :: !Text+    , _booItems :: !(Maybe [Bookshelf])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Bookshelves' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'booKind'+--+-- * 'booItems'+bookshelves+    :: Bookshelves+bookshelves =+    Bookshelves+    { _booKind = "books#bookshelves"+    , _booItems = Nothing+    }++-- | Resource type.+booKind :: Lens' Bookshelves Text+booKind = lens _booKind (\ s a -> s{_booKind = a})++-- | A list of bookshelves.+booItems :: Lens' Bookshelves [Bookshelf]+booItems+  = lens _booItems (\ s a -> s{_booItems = a}) .+      _Default+      . _Coerce++instance FromJSON Bookshelves where+        parseJSON+          = withObject "Bookshelves"+              (\ o ->+                 Bookshelves <$>+                   (o .:? "kind" .!= "books#bookshelves") <*>+                     (o .:? "items" .!= mempty))++instance ToJSON Bookshelves where+        toJSON Bookshelves{..}+          = object+              (catMaybes+                 [Just ("kind" .= _booKind),+                  ("items" .=) <$> _booItems])++-- | The source, url and attribution for this dictionary data.+--+-- /See:/ 'dictlayerDataDictSource' smart constructor.+data DictlayerDataDictSource = DictlayerDataDictSource+    { _dddsURL         :: !(Maybe Text)+    , _dddsAttribution :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictlayerDataDictSource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dddsURL'+--+-- * 'dddsAttribution'+dictlayerDataDictSource+    :: DictlayerDataDictSource+dictlayerDataDictSource =+    DictlayerDataDictSource+    { _dddsURL = Nothing+    , _dddsAttribution = Nothing+    }++dddsURL :: Lens' DictlayerDataDictSource (Maybe Text)+dddsURL = lens _dddsURL (\ s a -> s{_dddsURL = a})++dddsAttribution :: Lens' DictlayerDataDictSource (Maybe Text)+dddsAttribution+  = lens _dddsAttribution+      (\ s a -> s{_dddsAttribution = a})++instance FromJSON DictlayerDataDictSource where+        parseJSON+          = withObject "DictlayerDataDictSource"+              (\ o ->+                 DictlayerDataDictSource <$>+                   (o .:? "url") <*> (o .:? "attribution"))++instance ToJSON DictlayerDataDictSource where+        toJSON DictlayerDataDictSource{..}+          = object+              (catMaybes+                 [("url" .=) <$> _dddsURL,+                  ("attribution" .=) <$> _dddsAttribution])++--+-- /See:/ 'downloadAccesses' smart constructor.+data DownloadAccesses = DownloadAccesses+    { _daKind               :: !Text+    , _daDownloadAccessList :: !(Maybe [DownloadAccessRestriction])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DownloadAccesses' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'daKind'+--+-- * 'daDownloadAccessList'+downloadAccesses+    :: DownloadAccesses+downloadAccesses =+    DownloadAccesses+    { _daKind = "books#downloadAccesses"+    , _daDownloadAccessList = Nothing+    }++-- | Resource type.+daKind :: Lens' DownloadAccesses Text+daKind = lens _daKind (\ s a -> s{_daKind = a})++-- | A list of download access responses.+daDownloadAccessList :: Lens' DownloadAccesses [DownloadAccessRestriction]+daDownloadAccessList+  = lens _daDownloadAccessList+      (\ s a -> s{_daDownloadAccessList = a})+      . _Default+      . _Coerce++instance FromJSON DownloadAccesses where+        parseJSON+          = withObject "DownloadAccesses"+              (\ o ->+                 DownloadAccesses <$>+                   (o .:? "kind" .!= "books#downloadAccesses") <*>+                     (o .:? "downloadAccessList" .!= mempty))++instance ToJSON DownloadAccesses where+        toJSON DownloadAccesses{..}+          = object+              (catMaybes+                 [Just ("kind" .= _daKind),+                  ("downloadAccessList" .=) <$> _daDownloadAccessList])++--+-- /See:/ 'geolayerDataGeoViewportHi' smart constructor.+data GeolayerDataGeoViewportHi = GeolayerDataGeoViewportHi+    { _gdgvhLatitude  :: !(Maybe (Textual Double))+    , _gdgvhLongitude :: !(Maybe (Textual Double))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GeolayerDataGeoViewportHi' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdgvhLatitude'+--+-- * 'gdgvhLongitude'+geolayerDataGeoViewportHi+    :: GeolayerDataGeoViewportHi+geolayerDataGeoViewportHi =+    GeolayerDataGeoViewportHi+    { _gdgvhLatitude = Nothing+    , _gdgvhLongitude = Nothing+    }++gdgvhLatitude :: Lens' GeolayerDataGeoViewportHi (Maybe Double)+gdgvhLatitude+  = lens _gdgvhLatitude+      (\ s a -> s{_gdgvhLatitude = a})+      . mapping _Coerce++gdgvhLongitude :: Lens' GeolayerDataGeoViewportHi (Maybe Double)+gdgvhLongitude+  = lens _gdgvhLongitude+      (\ s a -> s{_gdgvhLongitude = a})+      . mapping _Coerce++instance FromJSON GeolayerDataGeoViewportHi where+        parseJSON+          = withObject "GeolayerDataGeoViewportHi"+              (\ o ->+                 GeolayerDataGeoViewportHi <$>+                   (o .:? "latitude") <*> (o .:? "longitude"))++instance ToJSON GeolayerDataGeoViewportHi where+        toJSON GeolayerDataGeoViewportHi{..}+          = object+              (catMaybes+                 [("latitude" .=) <$> _gdgvhLatitude,+                  ("longitude" .=) <$> _gdgvhLongitude])++-- | General volume information.+--+-- /See:/ 'volumeVolumeInfo' smart constructor.+data VolumeVolumeInfo = VolumeVolumeInfo+    { _vviImageLinks          :: !(Maybe VolumeVolumeInfoImageLinks)+    , _vviAverageRating       :: !(Maybe (Textual Double))+    , _vviRatingsCount        :: !(Maybe (Textual Int32))+    , _vviCanonicalVolumeLink :: !(Maybe Text)+    , _vviReadingModes        :: !(Maybe JSONValue)+    , _vviIndustryIdentifiers :: !(Maybe [VolumeVolumeInfoIndustryIdentifiersItem])+    , _vviPrintedPageCount    :: !(Maybe (Textual Int32))+    , _vviMainCategory        :: !(Maybe Text)+    , _vviContentVersion      :: !(Maybe Text)+    , _vviSamplePageCount     :: !(Maybe (Textual Int32))+    , _vviCategories          :: !(Maybe [Text])+    , _vviAuthors             :: !(Maybe [Text])+    , _vviAllowAnonLogging    :: !(Maybe Bool)+    , _vviSubtitle            :: !(Maybe Text)+    , _vviPublishedDate       :: !(Maybe Text)+    , _vviMaturityRating      :: !(Maybe Text)+    , _vviPreviewLink         :: !(Maybe Text)+    , _vviLanguage            :: !(Maybe Text)+    , _vviTitle               :: !(Maybe Text)+    , _vviPageCount           :: !(Maybe (Textual Int32))+    , _vviDimensions          :: !(Maybe VolumeVolumeInfoDimensions)+    , _vviInfoLink            :: !(Maybe Text)+    , _vviPublisher           :: !(Maybe Text)+    , _vviDescription         :: !(Maybe Text)+    , _vviPrintType           :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeVolumeInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vviImageLinks'+--+-- * 'vviAverageRating'+--+-- * 'vviRatingsCount'+--+-- * 'vviCanonicalVolumeLink'+--+-- * 'vviReadingModes'+--+-- * 'vviIndustryIdentifiers'+--+-- * 'vviPrintedPageCount'+--+-- * 'vviMainCategory'+--+-- * 'vviContentVersion'+--+-- * 'vviSamplePageCount'+--+-- * 'vviCategories'+--+-- * 'vviAuthors'+--+-- * 'vviAllowAnonLogging'+--+-- * 'vviSubtitle'+--+-- * 'vviPublishedDate'+--+-- * 'vviMaturityRating'+--+-- * 'vviPreviewLink'+--+-- * 'vviLanguage'+--+-- * 'vviTitle'+--+-- * 'vviPageCount'+--+-- * 'vviDimensions'+--+-- * 'vviInfoLink'+--+-- * 'vviPublisher'+--+-- * 'vviDescription'+--+-- * 'vviPrintType'+volumeVolumeInfo+    :: VolumeVolumeInfo+volumeVolumeInfo =+    VolumeVolumeInfo+    { _vviImageLinks = Nothing+    , _vviAverageRating = Nothing+    , _vviRatingsCount = Nothing+    , _vviCanonicalVolumeLink = Nothing+    , _vviReadingModes = Nothing+    , _vviIndustryIdentifiers = Nothing+    , _vviPrintedPageCount = Nothing+    , _vviMainCategory = Nothing+    , _vviContentVersion = Nothing+    , _vviSamplePageCount = Nothing+    , _vviCategories = Nothing+    , _vviAuthors = Nothing+    , _vviAllowAnonLogging = Nothing+    , _vviSubtitle = Nothing+    , _vviPublishedDate = Nothing+    , _vviMaturityRating = Nothing+    , _vviPreviewLink = Nothing+    , _vviLanguage = Nothing+    , _vviTitle = Nothing+    , _vviPageCount = Nothing+    , _vviDimensions = Nothing+    , _vviInfoLink = Nothing+    , _vviPublisher = Nothing+    , _vviDescription = Nothing+    , _vviPrintType = Nothing+    }++-- | A list of image links for all the sizes that are available. (In LITE+-- projection.)+vviImageLinks :: Lens' VolumeVolumeInfo (Maybe VolumeVolumeInfoImageLinks)+vviImageLinks+  = lens _vviImageLinks+      (\ s a -> s{_vviImageLinks = a})++-- | The mean review rating for this volume. (min = 1.0, max = 5.0)+vviAverageRating :: Lens' VolumeVolumeInfo (Maybe Double)+vviAverageRating+  = lens _vviAverageRating+      (\ s a -> s{_vviAverageRating = a})+      . mapping _Coerce++-- | The number of review ratings for this volume.+vviRatingsCount :: Lens' VolumeVolumeInfo (Maybe Int32)+vviRatingsCount+  = lens _vviRatingsCount+      (\ s a -> s{_vviRatingsCount = a})+      . mapping _Coerce++-- | Canonical URL for a volume. (In LITE projection.)+vviCanonicalVolumeLink :: Lens' VolumeVolumeInfo (Maybe Text)+vviCanonicalVolumeLink+  = lens _vviCanonicalVolumeLink+      (\ s a -> s{_vviCanonicalVolumeLink = a})++-- | The reading modes available for this volume.+vviReadingModes :: Lens' VolumeVolumeInfo (Maybe JSONValue)+vviReadingModes+  = lens _vviReadingModes+      (\ s a -> s{_vviReadingModes = a})++-- | Industry standard identifiers for this volume.+vviIndustryIdentifiers :: Lens' VolumeVolumeInfo [VolumeVolumeInfoIndustryIdentifiersItem]+vviIndustryIdentifiers+  = lens _vviIndustryIdentifiers+      (\ s a -> s{_vviIndustryIdentifiers = a})+      . _Default+      . _Coerce++-- | Total number of printed pages in generated pdf representation.+vviPrintedPageCount :: Lens' VolumeVolumeInfo (Maybe Int32)+vviPrintedPageCount+  = lens _vviPrintedPageCount+      (\ s a -> s{_vviPrintedPageCount = a})+      . mapping _Coerce++-- | 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)+vviMainCategory+  = lens _vviMainCategory+      (\ s a -> s{_vviMainCategory = a})++-- | An identifier for the version of the volume content (text & images). (In+-- LITE projection)+vviContentVersion :: Lens' VolumeVolumeInfo (Maybe Text)+vviContentVersion+  = lens _vviContentVersion+      (\ s a -> s{_vviContentVersion = a})++-- | Total number of sample pages as per publisher metadata.+vviSamplePageCount :: Lens' VolumeVolumeInfo (Maybe Int32)+vviSamplePageCount+  = lens _vviSamplePageCount+      (\ s a -> s{_vviSamplePageCount = a})+      . mapping _Coerce++-- | A list of subject categories, such as \"Fiction\", \"Suspense\", etc.+vviCategories :: Lens' VolumeVolumeInfo [Text]+vviCategories+  = lens _vviCategories+      (\ s a -> s{_vviCategories = a})+      . _Default+      . _Coerce++-- | The names of the authors and\/or editors for this volume. (In LITE+-- projection)+vviAuthors :: Lens' VolumeVolumeInfo [Text]+vviAuthors+  = lens _vviAuthors (\ s a -> s{_vviAuthors = a}) .+      _Default+      . _Coerce++-- | Whether anonymous logging should be allowed.+vviAllowAnonLogging :: Lens' VolumeVolumeInfo (Maybe Bool)+vviAllowAnonLogging+  = lens _vviAllowAnonLogging+      (\ s a -> s{_vviAllowAnonLogging = a})++-- | Volume subtitle. (In LITE projection.)+vviSubtitle :: Lens' VolumeVolumeInfo (Maybe Text)+vviSubtitle+  = lens _vviSubtitle (\ s a -> s{_vviSubtitle = a})++-- | Date of publication. (In LITE projection.)+vviPublishedDate :: Lens' VolumeVolumeInfo (Maybe Text)+vviPublishedDate+  = lens _vviPublishedDate+      (\ s a -> s{_vviPublishedDate = a})++vviMaturityRating :: Lens' VolumeVolumeInfo (Maybe Text)+vviMaturityRating+  = lens _vviMaturityRating+      (\ s a -> s{_vviMaturityRating = a})++-- | URL to preview this volume on the Google Books site.+vviPreviewLink :: Lens' VolumeVolumeInfo (Maybe Text)+vviPreviewLink+  = lens _vviPreviewLink+      (\ s a -> s{_vviPreviewLink = a})++-- | 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)+vviLanguage+  = lens _vviLanguage (\ s a -> s{_vviLanguage = a})++-- | Volume title. (In LITE projection.)+vviTitle :: Lens' VolumeVolumeInfo (Maybe Text)+vviTitle = lens _vviTitle (\ s a -> s{_vviTitle = a})++-- | Total number of pages as per publisher metadata.+vviPageCount :: Lens' VolumeVolumeInfo (Maybe Int32)+vviPageCount+  = lens _vviPageCount (\ s a -> s{_vviPageCount = a})+      . mapping _Coerce++-- | Physical dimensions of this volume.+vviDimensions :: Lens' VolumeVolumeInfo (Maybe VolumeVolumeInfoDimensions)+vviDimensions+  = lens _vviDimensions+      (\ s a -> s{_vviDimensions = a})++-- | URL to view information about this volume on the Google Books site. (In+-- LITE projection)+vviInfoLink :: Lens' VolumeVolumeInfo (Maybe Text)+vviInfoLink+  = lens _vviInfoLink (\ s a -> s{_vviInfoLink = a})++-- | Publisher of this volume. (In LITE projection.)+vviPublisher :: Lens' VolumeVolumeInfo (Maybe Text)+vviPublisher+  = lens _vviPublisher (\ s a -> s{_vviPublisher = a})++-- | 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)+vviDescription+  = lens _vviDescription+      (\ s a -> s{_vviDescription = a})++-- | Type of publication of this volume. Possible values are BOOK or+-- MAGAZINE.+vviPrintType :: Lens' VolumeVolumeInfo (Maybe Text)+vviPrintType+  = lens _vviPrintType (\ s a -> s{_vviPrintType = a})++instance FromJSON VolumeVolumeInfo where+        parseJSON+          = withObject "VolumeVolumeInfo"+              (\ o ->+                 VolumeVolumeInfo <$>+                   (o .:? "imageLinks") <*> (o .:? "averageRating") <*>+                     (o .:? "ratingsCount")+                     <*> (o .:? "canonicalVolumeLink")+                     <*> (o .:? "readingModes")+                     <*> (o .:? "industryIdentifiers" .!= mempty)+                     <*> (o .:? "printedPageCount")+                     <*> (o .:? "mainCategory")+                     <*> (o .:? "contentVersion")+                     <*> (o .:? "samplePageCount")+                     <*> (o .:? "categories" .!= mempty)+                     <*> (o .:? "authors" .!= mempty)+                     <*> (o .:? "allowAnonLogging")+                     <*> (o .:? "subtitle")+                     <*> (o .:? "publishedDate")+                     <*> (o .:? "maturityRating")+                     <*> (o .:? "previewLink")+                     <*> (o .:? "language")+                     <*> (o .:? "title")+                     <*> (o .:? "pageCount")+                     <*> (o .:? "dimensions")+                     <*> (o .:? "infoLink")+                     <*> (o .:? "publisher")+                     <*> (o .:? "description")+                     <*> (o .:? "printType"))++instance ToJSON VolumeVolumeInfo where+        toJSON VolumeVolumeInfo{..}+          = object+              (catMaybes+                 [("imageLinks" .=) <$> _vviImageLinks,+                  ("averageRating" .=) <$> _vviAverageRating,+                  ("ratingsCount" .=) <$> _vviRatingsCount,+                  ("canonicalVolumeLink" .=) <$>+                    _vviCanonicalVolumeLink,+                  ("readingModes" .=) <$> _vviReadingModes,+                  ("industryIdentifiers" .=) <$>+                    _vviIndustryIdentifiers,+                  ("printedPageCount" .=) <$> _vviPrintedPageCount,+                  ("mainCategory" .=) <$> _vviMainCategory,+                  ("contentVersion" .=) <$> _vviContentVersion,+                  ("samplePageCount" .=) <$> _vviSamplePageCount,+                  ("categories" .=) <$> _vviCategories,+                  ("authors" .=) <$> _vviAuthors,+                  ("allowAnonLogging" .=) <$> _vviAllowAnonLogging,+                  ("subtitle" .=) <$> _vviSubtitle,+                  ("publishedDate" .=) <$> _vviPublishedDate,+                  ("maturityRating" .=) <$> _vviMaturityRating,+                  ("previewLink" .=) <$> _vviPreviewLink,+                  ("language" .=) <$> _vviLanguage,+                  ("title" .=) <$> _vviTitle,+                  ("pageCount" .=) <$> _vviPageCount,+                  ("dimensions" .=) <$> _vviDimensions,+                  ("infoLink" .=) <$> _vviInfoLink,+                  ("publisher" .=) <$> _vviPublisher,+                  ("description" .=) <$> _vviDescription,+                  ("printType" .=) <$> _vviPrintType])++--+-- /See:/ 'metadataItemsItem' smart constructor.+data MetadataItemsItem = MetadataItemsItem+    { _miiSize         :: !(Maybe (Textual Int64))+    , _miiVersion      :: !(Maybe (Textual Int64))+    , _miiLanguage     :: !(Maybe Text)+    , _miiDownloadURL  :: !(Maybe Text)+    , _miiEncryptedKey :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MetadataItemsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'miiSize'+--+-- * 'miiVersion'+--+-- * 'miiLanguage'+--+-- * 'miiDownloadURL'+--+-- * 'miiEncryptedKey'+metadataItemsItem+    :: MetadataItemsItem+metadataItemsItem =+    MetadataItemsItem+    { _miiSize = Nothing+    , _miiVersion = Nothing+    , _miiLanguage = Nothing+    , _miiDownloadURL = Nothing+    , _miiEncryptedKey = Nothing+    }++miiSize :: Lens' MetadataItemsItem (Maybe Int64)+miiSize+  = lens _miiSize (\ s a -> s{_miiSize = a}) .+      mapping _Coerce++miiVersion :: Lens' MetadataItemsItem (Maybe Int64)+miiVersion+  = lens _miiVersion (\ s a -> s{_miiVersion = a}) .+      mapping _Coerce++miiLanguage :: Lens' MetadataItemsItem (Maybe Text)+miiLanguage+  = lens _miiLanguage (\ s a -> s{_miiLanguage = a})++miiDownloadURL :: Lens' MetadataItemsItem (Maybe Text)+miiDownloadURL+  = lens _miiDownloadURL+      (\ s a -> s{_miiDownloadURL = a})++miiEncryptedKey :: Lens' MetadataItemsItem (Maybe Text)+miiEncryptedKey+  = lens _miiEncryptedKey+      (\ s a -> s{_miiEncryptedKey = a})++instance FromJSON MetadataItemsItem where+        parseJSON+          = withObject "MetadataItemsItem"+              (\ o ->+                 MetadataItemsItem <$>+                   (o .:? "size") <*> (o .:? "version") <*>+                     (o .:? "language")+                     <*> (o .:? "download_url")+                     <*> (o .:? "encrypted_key"))++instance ToJSON MetadataItemsItem where+        toJSON MetadataItemsItem{..}+          = object+              (catMaybes+                 [("size" .=) <$> _miiSize,+                  ("version" .=) <$> _miiVersion,+                  ("language" .=) <$> _miiLanguage,+                  ("download_url" .=) <$> _miiDownloadURL,+                  ("encrypted_key" .=) <$> _miiEncryptedKey])++--+-- /See:/ 'dictlayerDataDictWordsItemSensesItemSource' smart constructor.+data DictlayerDataDictWordsItemSensesItemSource = DictlayerDataDictWordsItemSensesItemSource+    { _dddwisisURL         :: !(Maybe Text)+    , _dddwisisAttribution :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictlayerDataDictWordsItemSensesItemSource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dddwisisURL'+--+-- * 'dddwisisAttribution'+dictlayerDataDictWordsItemSensesItemSource+    :: DictlayerDataDictWordsItemSensesItemSource+dictlayerDataDictWordsItemSensesItemSource =+    DictlayerDataDictWordsItemSensesItemSource+    { _dddwisisURL = Nothing+    , _dddwisisAttribution = Nothing+    }++dddwisisURL :: Lens' DictlayerDataDictWordsItemSensesItemSource (Maybe Text)+dddwisisURL+  = lens _dddwisisURL (\ s a -> s{_dddwisisURL = a})++dddwisisAttribution :: Lens' DictlayerDataDictWordsItemSensesItemSource (Maybe Text)+dddwisisAttribution+  = lens _dddwisisAttribution+      (\ s a -> s{_dddwisisAttribution = a})++instance FromJSON+         DictlayerDataDictWordsItemSensesItemSource where+        parseJSON+          = withObject+              "DictlayerDataDictWordsItemSensesItemSource"+              (\ o ->+                 DictlayerDataDictWordsItemSensesItemSource <$>+                   (o .:? "url") <*> (o .:? "attribution"))++instance ToJSON+         DictlayerDataDictWordsItemSensesItemSource where+        toJSON DictlayerDataDictWordsItemSensesItemSource{..}+          = object+              (catMaybes+                 [("url" .=) <$> _dddwisisURL,+                  ("attribution" .=) <$> _dddwisisAttribution])++-- | Offer retail (=discounted) price in Micros+--+-- /See:/ 'volumeSaleInfoOffersItemRetailPrice' smart constructor.+data VolumeSaleInfoOffersItemRetailPrice = VolumeSaleInfoOffersItemRetailPrice+    { _vsioirpCurrencyCode   :: !(Maybe Text)+    , _vsioirpAmountInMicros :: !(Maybe (Textual Double))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeSaleInfoOffersItemRetailPrice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsioirpCurrencyCode'+--+-- * 'vsioirpAmountInMicros'+volumeSaleInfoOffersItemRetailPrice+    :: VolumeSaleInfoOffersItemRetailPrice+volumeSaleInfoOffersItemRetailPrice =+    VolumeSaleInfoOffersItemRetailPrice+    { _vsioirpCurrencyCode = Nothing+    , _vsioirpAmountInMicros = Nothing+    }++vsioirpCurrencyCode :: Lens' VolumeSaleInfoOffersItemRetailPrice (Maybe Text)+vsioirpCurrencyCode+  = lens _vsioirpCurrencyCode+      (\ s a -> s{_vsioirpCurrencyCode = a})++vsioirpAmountInMicros :: Lens' VolumeSaleInfoOffersItemRetailPrice (Maybe Double)+vsioirpAmountInMicros+  = lens _vsioirpAmountInMicros+      (\ s a -> s{_vsioirpAmountInMicros = a})+      . mapping _Coerce++instance FromJSON VolumeSaleInfoOffersItemRetailPrice+         where+        parseJSON+          = withObject "VolumeSaleInfoOffersItemRetailPrice"+              (\ o ->+                 VolumeSaleInfoOffersItemRetailPrice <$>+                   (o .:? "currencyCode") <*> (o .:? "amountInMicros"))++instance ToJSON VolumeSaleInfoOffersItemRetailPrice+         where+        toJSON VolumeSaleInfoOffersItemRetailPrice{..}+          = object+              (catMaybes+                 [("currencyCode" .=) <$> _vsioirpCurrencyCode,+                  ("amountInMicros" .=) <$> _vsioirpAmountInMicros])++--+-- /See:/ 'volumeVolumeInfoIndustryIdentifiersItem' smart constructor.+data VolumeVolumeInfoIndustryIdentifiersItem = VolumeVolumeInfoIndustryIdentifiersItem+    { _vviiiiIdentifier :: !(Maybe Text)+    , _vviiiiType       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeVolumeInfoIndustryIdentifiersItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vviiiiIdentifier'+--+-- * 'vviiiiType'+volumeVolumeInfoIndustryIdentifiersItem+    :: VolumeVolumeInfoIndustryIdentifiersItem+volumeVolumeInfoIndustryIdentifiersItem =+    VolumeVolumeInfoIndustryIdentifiersItem+    { _vviiiiIdentifier = Nothing+    , _vviiiiType = Nothing+    }++-- | Industry specific volume identifier.+vviiiiIdentifier :: Lens' VolumeVolumeInfoIndustryIdentifiersItem (Maybe Text)+vviiiiIdentifier+  = lens _vviiiiIdentifier+      (\ s a -> s{_vviiiiIdentifier = a})++-- | Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.+vviiiiType :: Lens' VolumeVolumeInfoIndustryIdentifiersItem (Maybe Text)+vviiiiType+  = lens _vviiiiType (\ s a -> s{_vviiiiType = a})++instance FromJSON+         VolumeVolumeInfoIndustryIdentifiersItem where+        parseJSON+          = withObject+              "VolumeVolumeInfoIndustryIdentifiersItem"+              (\ o ->+                 VolumeVolumeInfoIndustryIdentifiersItem <$>+                   (o .:? "identifier") <*> (o .:? "type"))++instance ToJSON+         VolumeVolumeInfoIndustryIdentifiersItem where+        toJSON VolumeVolumeInfoIndustryIdentifiersItem{..}+          = object+              (catMaybes+                 [("identifier" .=) <$> _vviiiiIdentifier,+                  ("type" .=) <$> _vviiiiType])++--+-- /See:/ 'booksAnnotationsRange' smart constructor.+data BooksAnnotationsRange = BooksAnnotationsRange+    { _barStartOffSet   :: !(Maybe Text)+    , _barEndOffSet     :: !(Maybe Text)+    , _barEndPosition   :: !(Maybe Text)+    , _barStartPosition :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BooksAnnotationsRange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'barStartOffSet'+--+-- * 'barEndOffSet'+--+-- * 'barEndPosition'+--+-- * 'barStartPosition'+booksAnnotationsRange+    :: BooksAnnotationsRange+booksAnnotationsRange =+    BooksAnnotationsRange+    { _barStartOffSet = Nothing+    , _barEndOffSet = Nothing+    , _barEndPosition = Nothing+    , _barStartPosition = Nothing+    }++-- | The offset from the starting position.+barStartOffSet :: Lens' BooksAnnotationsRange (Maybe Text)+barStartOffSet+  = lens _barStartOffSet+      (\ s a -> s{_barStartOffSet = a})++-- | The offset from the ending position.+barEndOffSet :: Lens' BooksAnnotationsRange (Maybe Text)+barEndOffSet+  = lens _barEndOffSet (\ s a -> s{_barEndOffSet = a})++-- | The ending position for the range.+barEndPosition :: Lens' BooksAnnotationsRange (Maybe Text)+barEndPosition+  = lens _barEndPosition+      (\ s a -> s{_barEndPosition = a})++-- | The starting position for the range.+barStartPosition :: Lens' BooksAnnotationsRange (Maybe Text)+barStartPosition+  = lens _barStartPosition+      (\ s a -> s{_barStartPosition = a})++instance FromJSON BooksAnnotationsRange where+        parseJSON+          = withObject "BooksAnnotationsRange"+              (\ o ->+                 BooksAnnotationsRange <$>+                   (o .:? "startOffset") <*> (o .:? "endOffset") <*>+                     (o .:? "endPosition")+                     <*> (o .:? "startPosition"))++instance ToJSON BooksAnnotationsRange where+        toJSON BooksAnnotationsRange{..}+          = object+              (catMaybes+                 [("startOffset" .=) <$> _barStartOffSet,+                  ("endOffset" .=) <$> _barEndOffSet,+                  ("endPosition" .=) <$> _barEndPosition,+                  ("startPosition" .=) <$> _barStartPosition])++--+-- /See:/ 'layersummaries' smart constructor.+data Layersummaries = Layersummaries+    { _layTotalItems :: !(Maybe (Textual Int32))+    , _layKind       :: !Text+    , _layItems      :: !(Maybe [Layersummary])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Layersummaries' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'layTotalItems'+--+-- * 'layKind'+--+-- * 'layItems'+layersummaries+    :: Layersummaries+layersummaries =+    Layersummaries+    { _layTotalItems = Nothing+    , _layKind = "books#layersummaries"+    , _layItems = Nothing+    }++-- | The total number of layer summaries found.+layTotalItems :: Lens' Layersummaries (Maybe Int32)+layTotalItems+  = lens _layTotalItems+      (\ s a -> s{_layTotalItems = a})+      . mapping _Coerce++-- | Resource type.+layKind :: Lens' Layersummaries Text+layKind = lens _layKind (\ s a -> s{_layKind = a})++-- | A list of layer summary items.+layItems :: Lens' Layersummaries [Layersummary]+layItems+  = lens _layItems (\ s a -> s{_layItems = a}) .+      _Default+      . _Coerce++instance FromJSON Layersummaries where+        parseJSON+          = withObject "Layersummaries"+              (\ o ->+                 Layersummaries <$>+                   (o .:? "totalItems") <*>+                     (o .:? "kind" .!= "books#layersummaries")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON Layersummaries where+        toJSON Layersummaries{..}+          = object+              (catMaybes+                 [("totalItems" .=) <$> _layTotalItems,+                  Just ("kind" .= _layKind),+                  ("items" .=) <$> _layItems])
+ gen/Network/Google/Books/Types/Sum.hs view
@@ -0,0 +1,738 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Books.Types.Sum+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Books.Types.Sum where++import           Network.Google.Prelude++-- | Restrict information returned to a set of selected fields.+data VolumesListProjection+    = Full+      -- ^ @full@+      -- Includes all volume data.+    | Lite+      -- ^ @lite@+      -- Includes a subset of fields in volumeInfo and accessInfo.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable VolumesListProjection++instance FromText VolumesListProjection where+    fromText = \case+        "full" -> Just Full+        "lite" -> Just Lite+        _ -> Nothing++instance ToText VolumesListProjection where+    toText = \case+        Full -> "full"+        Lite -> "lite"++instance FromJSON VolumesListProjection where+    parseJSON = parseJSONText "VolumesListProjection"++instance ToJSON VolumesListProjection where+    toJSON = toJSONText++-- | Restrict information returned to a set of selected fields.+data MyLibraryBookshelvesVolumesListProjection+    = MLBVLPFull+      -- ^ @full@+      -- Includes all volume data.+    | MLBVLPLite+      -- ^ @lite@+      -- Includes a subset of fields in volumeInfo and accessInfo.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable MyLibraryBookshelvesVolumesListProjection++instance FromText MyLibraryBookshelvesVolumesListProjection where+    fromText = \case+        "full" -> Just MLBVLPFull+        "lite" -> Just MLBVLPLite+        _ -> Nothing++instance ToText MyLibraryBookshelvesVolumesListProjection where+    toText = \case+        MLBVLPFull -> "full"+        MLBVLPLite -> "lite"++instance FromJSON MyLibraryBookshelvesVolumesListProjection where+    parseJSON = parseJSONText "MyLibraryBookshelvesVolumesListProjection"++instance ToJSON MyLibraryBookshelvesVolumesListProjection where+    toJSON = toJSONText++-- | Sort search results.+data VolumesListOrderBy+    = Newest+      -- ^ @newest@+      -- Most recently published.+    | Relevance+      -- ^ @relevance@+      -- Relevance to search terms.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable VolumesListOrderBy++instance FromText VolumesListOrderBy where+    fromText = \case+        "newest" -> Just Newest+        "relevance" -> Just Relevance+        _ -> Nothing++instance ToText VolumesListOrderBy where+    toText = \case+        Newest -> "newest"+        Relevance -> "relevance"++instance FromJSON VolumesListOrderBy where+    parseJSON = parseJSONText "VolumesListOrderBy"++instance ToJSON VolumesListOrderBy where+    toJSON = toJSONText++-- | Restrict search to this user\'s library.+data VolumesListLibraryRestrict+    = MyLibrary+      -- ^ @my-library@+      -- Restrict to the user\'s library, any shelf.+    | NoRestrict+      -- ^ @no-restrict@+      -- Do not restrict based on user\'s library.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable VolumesListLibraryRestrict++instance FromText VolumesListLibraryRestrict where+    fromText = \case+        "my-library" -> Just MyLibrary+        "no-restrict" -> Just NoRestrict+        _ -> Nothing++instance ToText VolumesListLibraryRestrict where+    toText = \case+        MyLibrary -> "my-library"+        NoRestrict -> "no-restrict"++instance FromJSON VolumesListLibraryRestrict where+    parseJSON = parseJSONText "VolumesListLibraryRestrict"++instance ToJSON VolumesListLibraryRestrict where+    toJSON = toJSONText++-- | The reason for which the book is removed from the library.+data MyLibraryBookshelvesRemoveVolumeReason+    = Onboarding+      -- ^ @ONBOARDING@+      -- Samples removed from the Onboarding flow.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable MyLibraryBookshelvesRemoveVolumeReason++instance FromText MyLibraryBookshelvesRemoveVolumeReason where+    fromText = \case+        "ONBOARDING" -> Just Onboarding+        _ -> Nothing++instance ToText MyLibraryBookshelvesRemoveVolumeReason where+    toText = \case+        Onboarding -> "ONBOARDING"++instance FromJSON MyLibraryBookshelvesRemoveVolumeReason where+    parseJSON = parseJSONText "MyLibraryBookshelvesRemoveVolumeReason"++instance ToJSON MyLibraryBookshelvesRemoveVolumeReason where+    toJSON = toJSONText++-- | The maximum allowed maturity rating of returned volumes. Books with a+-- higher maturity rating are filtered out.+data OnboardingListCategoryVolumesMaxAllowedMaturityRating+    = Mature+      -- ^ @mature@+      -- Show books which are rated mature or lower.+    | NotMature+      -- ^ @not-mature@+      -- Show books which are rated not mature.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable OnboardingListCategoryVolumesMaxAllowedMaturityRating++instance FromText OnboardingListCategoryVolumesMaxAllowedMaturityRating where+    fromText = \case+        "mature" -> Just Mature+        "not-mature" -> Just NotMature+        _ -> Nothing++instance ToText OnboardingListCategoryVolumesMaxAllowedMaturityRating where+    toText = \case+        Mature -> "mature"+        NotMature -> "not-mature"++instance FromJSON OnboardingListCategoryVolumesMaxAllowedMaturityRating where+    parseJSON = parseJSONText "OnboardingListCategoryVolumesMaxAllowedMaturityRating"++instance ToJSON OnboardingListCategoryVolumesMaxAllowedMaturityRating where+    toJSON = toJSONText++-- | Restrict to volumes by download availability.+data VolumesListDownload+    = Epub+      -- ^ @epub@+      -- All volumes with epub.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable VolumesListDownload++instance FromText VolumesListDownload where+    fromText = \case+        "epub" -> Just Epub+        _ -> Nothing++instance ToText VolumesListDownload where+    toText = \case+        Epub -> "epub"++instance FromJSON VolumesListDownload where+    parseJSON = parseJSONText "VolumesListDownload"++instance ToJSON VolumesListDownload where+    toJSON = toJSONText++-- | Restrict information returned to a set of selected fields.+data VolumesGetProjection+    = VGPFull+      -- ^ @full@+      -- Includes all volume data.+    | VGPLite+      -- ^ @lite@+      -- Includes a subset of fields in volumeInfo and accessInfo.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable VolumesGetProjection++instance FromText VolumesGetProjection where+    fromText = \case+        "full" -> Just VGPFull+        "lite" -> Just VGPLite+        _ -> Nothing++instance ToText VolumesGetProjection where+    toText = \case+        VGPFull -> "full"+        VGPLite -> "lite"++instance FromJSON VolumesGetProjection where+    parseJSON = parseJSONText "VolumesGetProjection"++instance ToJSON VolumesGetProjection where+    toJSON = toJSONText++-- | Association type.+data VolumesAssociatedListAssociation+    = EndOfSample+      -- ^ @end-of-sample@+      -- Recommendations for display end-of-sample.+    | EndOfVolume+      -- ^ @end-of-volume@+      -- Recommendations for display end-of-volume.+    | RelatedForPlay+      -- ^ @related-for-play@+      -- Related volumes for Play Store.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable VolumesAssociatedListAssociation++instance FromText VolumesAssociatedListAssociation where+    fromText = \case+        "end-of-sample" -> Just EndOfSample+        "end-of-volume" -> Just EndOfVolume+        "related-for-play" -> Just RelatedForPlay+        _ -> Nothing++instance ToText VolumesAssociatedListAssociation where+    toText = \case+        EndOfSample -> "end-of-sample"+        EndOfVolume -> "end-of-volume"+        RelatedForPlay -> "related-for-play"++instance FromJSON VolumesAssociatedListAssociation where+    parseJSON = parseJSONText "VolumesAssociatedListAssociation"++instance ToJSON VolumesAssociatedListAssociation where+    toJSON = toJSONText++-- | Rating to be given to the volume.+data VolumesRecommendedRateRating+    = HaveIt+      -- ^ @HAVE_IT@+      -- Rating indicating a dismissal due to ownership.+    | NotInterested+      -- ^ @NOT_INTERESTED@+      -- Rating indicating a negative dismissal of a volume.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable VolumesRecommendedRateRating++instance FromText VolumesRecommendedRateRating where+    fromText = \case+        "HAVE_IT" -> Just HaveIt+        "NOT_INTERESTED" -> Just NotInterested+        _ -> Nothing++instance ToText VolumesRecommendedRateRating where+    toText = \case+        HaveIt -> "HAVE_IT"+        NotInterested -> "NOT_INTERESTED"++instance FromJSON VolumesRecommendedRateRating where+    parseJSON = parseJSONText "VolumesRecommendedRateRating"++instance ToJSON VolumesRecommendedRateRating where+    toJSON = toJSONText++-- | The processing state of the user uploaded volumes to be returned.+data VolumesUserUploadedListProcessingState+    = CompletedFailed+      -- ^ @COMPLETED_FAILED@+      -- The volume processing hase failed.+    | CompletedSuccess+      -- ^ @COMPLETED_SUCCESS@+      -- The volume processing was completed.+    | Running+      -- ^ @RUNNING@+      -- The volume processing is not completed.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable VolumesUserUploadedListProcessingState++instance FromText VolumesUserUploadedListProcessingState where+    fromText = \case+        "COMPLETED_FAILED" -> Just CompletedFailed+        "COMPLETED_SUCCESS" -> Just CompletedSuccess+        "RUNNING" -> Just Running+        _ -> Nothing++instance ToText VolumesUserUploadedListProcessingState where+    toText = \case+        CompletedFailed -> "COMPLETED_FAILED"+        CompletedSuccess -> "COMPLETED_SUCCESS"+        Running -> "RUNNING"++instance FromJSON VolumesUserUploadedListProcessingState where+    parseJSON = parseJSONText "VolumesUserUploadedListProcessingState"++instance ToJSON VolumesUserUploadedListProcessingState where+    toJSON = toJSONText++-- | List of features supported by the client, i.e., \'RENTALS\'+data MyConfigSyncVolumeLicensesFeatures+    = Rentals+      -- ^ @RENTALS@+      -- Client supports rentals.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable MyConfigSyncVolumeLicensesFeatures++instance FromText MyConfigSyncVolumeLicensesFeatures where+    fromText = \case+        "RENTALS" -> Just Rentals+        _ -> Nothing++instance ToText MyConfigSyncVolumeLicensesFeatures where+    toText = \case+        Rentals -> "RENTALS"++instance FromJSON MyConfigSyncVolumeLicensesFeatures where+    parseJSON = parseJSONText "MyConfigSyncVolumeLicensesFeatures"++instance ToJSON MyConfigSyncVolumeLicensesFeatures where+    toJSON = toJSONText++-- | The maximum allowed maturity rating of returned recommendations. Books+-- with a higher maturity rating are filtered out.+data VolumesAssociatedListMaxAllowedMaturityRating+    = VALMAMRMature+      -- ^ @mature@+      -- Show books which are rated mature or lower.+    | VALMAMRNotMature+      -- ^ @not-mature@+      -- Show books which are rated not mature.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable VolumesAssociatedListMaxAllowedMaturityRating++instance FromText VolumesAssociatedListMaxAllowedMaturityRating where+    fromText = \case+        "mature" -> Just VALMAMRMature+        "not-mature" -> Just VALMAMRNotMature+        _ -> Nothing++instance ToText VolumesAssociatedListMaxAllowedMaturityRating where+    toText = \case+        VALMAMRMature -> "mature"+        VALMAMRNotMature -> "not-mature"++instance FromJSON VolumesAssociatedListMaxAllowedMaturityRating where+    parseJSON = parseJSONText "VolumesAssociatedListMaxAllowedMaturityRating"++instance ToJSON VolumesAssociatedListMaxAllowedMaturityRating where+    toJSON = toJSONText++-- | Filter search results.+data VolumesListFilter+    = VLFEbooks+      -- ^ @ebooks@+      -- All Google eBooks.+    | VLFFreeEbooks+      -- ^ @free-ebooks@+      -- Google eBook with full volume text viewability.+    | VLFFull+      -- ^ @full@+      -- Public can view entire volume text.+    | VLFPaidEbooks+      -- ^ @paid-ebooks@+      -- Google eBook with a price.+    | VLFPartial+      -- ^ @partial@+      -- Public able to see parts of text.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable VolumesListFilter++instance FromText VolumesListFilter where+    fromText = \case+        "ebooks" -> Just VLFEbooks+        "free-ebooks" -> Just VLFFreeEbooks+        "full" -> Just VLFFull+        "paid-ebooks" -> Just VLFPaidEbooks+        "partial" -> Just VLFPartial+        _ -> Nothing++instance ToText VolumesListFilter where+    toText = \case+        VLFEbooks -> "ebooks"+        VLFFreeEbooks -> "free-ebooks"+        VLFFull -> "full"+        VLFPaidEbooks -> "paid-ebooks"+        VLFPartial -> "partial"++instance FromJSON VolumesListFilter where+    parseJSON = parseJSONText "VolumesListFilter"++instance ToJSON VolumesListFilter where+    toJSON = toJSONText++-- | The maximum allowed maturity rating of returned recommendations. Books+-- with a higher maturity rating are filtered out.+data VolumesRecommendedListMaxAllowedMaturityRating+    = VRLMAMRMature+      -- ^ @mature@+      -- Show books which are rated mature or lower.+    | VRLMAMRNotMature+      -- ^ @not-mature@+      -- Show books which are rated not mature.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable VolumesRecommendedListMaxAllowedMaturityRating++instance FromText VolumesRecommendedListMaxAllowedMaturityRating where+    fromText = \case+        "mature" -> Just VRLMAMRMature+        "not-mature" -> Just VRLMAMRNotMature+        _ -> Nothing++instance ToText VolumesRecommendedListMaxAllowedMaturityRating where+    toText = \case+        VRLMAMRMature -> "mature"+        VRLMAMRNotMature -> "not-mature"++instance FromJSON VolumesRecommendedListMaxAllowedMaturityRating where+    parseJSON = parseJSONText "VolumesRecommendedListMaxAllowedMaturityRating"++instance ToJSON VolumesRecommendedListMaxAllowedMaturityRating where+    toJSON = toJSONText++-- | The reason for which the book is added to the library.+data MyLibraryBookshelvesAddVolumeReason+    = MLBAVRIosPrex+      -- ^ @IOS_PREX@+      -- Volumes added from the PREX flow on iOS.+    | MLBAVRIosSearch+      -- ^ @IOS_SEARCH@+      -- Volumes added from the Search flow on iOS.+    | MLBAVROnboarding+      -- ^ @ONBOARDING@+      -- Volumes added from the Onboarding flow.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable MyLibraryBookshelvesAddVolumeReason++instance FromText MyLibraryBookshelvesAddVolumeReason where+    fromText = \case+        "IOS_PREX" -> Just MLBAVRIosPrex+        "IOS_SEARCH" -> Just MLBAVRIosSearch+        "ONBOARDING" -> Just MLBAVROnboarding+        _ -> Nothing++instance ToText MyLibraryBookshelvesAddVolumeReason where+    toText = \case+        MLBAVRIosPrex -> "IOS_PREX"+        MLBAVRIosSearch -> "IOS_SEARCH"+        MLBAVROnboarding -> "ONBOARDING"++instance FromJSON MyLibraryBookshelvesAddVolumeReason where+    parseJSON = parseJSONText "MyLibraryBookshelvesAddVolumeReason"++instance ToJSON MyLibraryBookshelvesAddVolumeReason where+    toJSON = toJSONText++-- | How the book was aquired+data VolumesMybooksListAcquireMethod+    = PreOrdered+      -- ^ @PREORDERED@+      -- Preordered books (not yet available)+    | PreviouslyRented+      -- ^ @PREVIOUSLY_RENTED@+      -- User-rented books past their expiration time+    | PublicDomain+      -- ^ @PUBLIC_DOMAIN@+      -- Public domain books+    | Purchased+      -- ^ @PURCHASED@+      -- Purchased books+    | Rented+      -- ^ @RENTED@+      -- User-rented books+    | Sample+      -- ^ @SAMPLE@+      -- Sample books+    | Uploaded+      -- ^ @UPLOADED@+      -- User uploaded books+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable VolumesMybooksListAcquireMethod++instance FromText VolumesMybooksListAcquireMethod where+    fromText = \case+        "PREORDERED" -> Just PreOrdered+        "PREVIOUSLY_RENTED" -> Just PreviouslyRented+        "PUBLIC_DOMAIN" -> Just PublicDomain+        "PURCHASED" -> Just Purchased+        "RENTED" -> Just Rented+        "SAMPLE" -> Just Sample+        "UPLOADED" -> Just Uploaded+        _ -> Nothing++instance ToText VolumesMybooksListAcquireMethod where+    toText = \case+        PreOrdered -> "PREORDERED"+        PreviouslyRented -> "PREVIOUSLY_RENTED"+        PublicDomain -> "PUBLIC_DOMAIN"+        Purchased -> "PURCHASED"+        Rented -> "RENTED"+        Sample -> "SAMPLE"+        Uploaded -> "UPLOADED"++instance FromJSON VolumesMybooksListAcquireMethod where+    parseJSON = parseJSONText "VolumesMybooksListAcquireMethod"++instance ToJSON VolumesMybooksListAcquireMethod where+    toJSON = toJSONText++-- | The maximum allowed maturity rating of returned recommendations. Books+-- with a higher maturity rating are filtered out.+data PersonalizedstreamGetMaxAllowedMaturityRating+    = PGMAMRMature+      -- ^ @mature@+      -- Show books which are rated mature or lower.+    | PGMAMRNotMature+      -- ^ @not-mature@+      -- Show books which are rated not mature.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable PersonalizedstreamGetMaxAllowedMaturityRating++instance FromText PersonalizedstreamGetMaxAllowedMaturityRating where+    fromText = \case+        "mature" -> Just PGMAMRMature+        "not-mature" -> Just PGMAMRNotMature+        _ -> Nothing++instance ToText PersonalizedstreamGetMaxAllowedMaturityRating where+    toText = \case+        PGMAMRMature -> "mature"+        PGMAMRNotMature -> "not-mature"++instance FromJSON PersonalizedstreamGetMaxAllowedMaturityRating where+    parseJSON = parseJSONText "PersonalizedstreamGetMaxAllowedMaturityRating"++instance ToJSON PersonalizedstreamGetMaxAllowedMaturityRating where+    toJSON = toJSONText++-- | Restrict to books or magazines.+data VolumesListPrintType+    = All+      -- ^ @all@+      -- All volume content types.+    | Books+      -- ^ @books@+      -- Just books.+    | Magazines+      -- ^ @magazines@+      -- Just magazines.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable VolumesListPrintType++instance FromText VolumesListPrintType where+    fromText = \case+        "all" -> Just All+        "books" -> Just Books+        "magazines" -> Just Magazines+        _ -> Nothing++instance ToText VolumesListPrintType where+    toText = \case+        All -> "all"+        Books -> "books"+        Magazines -> "magazines"++instance FromJSON VolumesListPrintType where+    parseJSON = parseJSONText "VolumesListPrintType"++instance ToJSON VolumesListPrintType where+    toJSON = toJSONText++-- | The processing state of the user uploaded volumes to be returned.+-- Applicable only if the UPLOADED is specified in the acquireMethod.+data VolumesMybooksListProcessingState+    = VMLPSCompletedFailed+      -- ^ @COMPLETED_FAILED@+      -- The volume processing hase failed.+    | VMLPSCompletedSuccess+      -- ^ @COMPLETED_SUCCESS@+      -- The volume processing was completed.+    | VMLPSRunning+      -- ^ @RUNNING@+      -- The volume processing is not completed.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable VolumesMybooksListProcessingState++instance FromText VolumesMybooksListProcessingState where+    fromText = \case+        "COMPLETED_FAILED" -> Just VMLPSCompletedFailed+        "COMPLETED_SUCCESS" -> Just VMLPSCompletedSuccess+        "RUNNING" -> Just VMLPSRunning+        _ -> Nothing++instance ToText VolumesMybooksListProcessingState where+    toText = \case+        VMLPSCompletedFailed -> "COMPLETED_FAILED"+        VMLPSCompletedSuccess -> "COMPLETED_SUCCESS"+        VMLPSRunning -> "RUNNING"++instance FromJSON VolumesMybooksListProcessingState where+    parseJSON = parseJSONText "VolumesMybooksListProcessingState"++instance ToJSON VolumesMybooksListProcessingState where+    toJSON = toJSONText++-- | The type of access license to request. If not specified, the default is+-- BOTH.+data MyConfigRequestAccessLicenseTypes+    = Both+      -- ^ @BOTH@+      -- Both concurrent and download licenses.+    | Concurrent+      -- ^ @CONCURRENT@+      -- Concurrent access license.+    | Download+      -- ^ @DOWNLOAD@+      -- Offline download access license.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable MyConfigRequestAccessLicenseTypes++instance FromText MyConfigRequestAccessLicenseTypes where+    fromText = \case+        "BOTH" -> Just Both+        "CONCURRENT" -> Just Concurrent+        "DOWNLOAD" -> Just Download+        _ -> Nothing++instance ToText MyConfigRequestAccessLicenseTypes where+    toText = \case+        Both -> "BOTH"+        Concurrent -> "CONCURRENT"+        Download -> "DOWNLOAD"++instance FromJSON MyConfigRequestAccessLicenseTypes where+    parseJSON = parseJSONText "MyConfigRequestAccessLicenseTypes"++instance ToJSON MyConfigRequestAccessLicenseTypes where+    toJSON = toJSONText++-- | Action that caused this reading position to be set.+data MyLibraryReadingPositionsSetPositionAction+    = Bookmark+      -- ^ @bookmark@+      -- User chose bookmark within volume.+    | Chapter+      -- ^ @chapter@+      -- User selected chapter from list.+    | NextPage+      -- ^ @next-page@+      -- Next page event.+    | PrevPage+      -- ^ @prev-page@+      -- Previous page event.+    | Scroll+      -- ^ @scroll@+      -- User navigated to page.+    | Search+      -- ^ @search@+      -- User chose search results within volume.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable MyLibraryReadingPositionsSetPositionAction++instance FromText MyLibraryReadingPositionsSetPositionAction where+    fromText = \case+        "bookmark" -> Just Bookmark+        "chapter" -> Just Chapter+        "next-page" -> Just NextPage+        "prev-page" -> Just PrevPage+        "scroll" -> Just Scroll+        "search" -> Just Search+        _ -> Nothing++instance ToText MyLibraryReadingPositionsSetPositionAction where+    toText = \case+        Bookmark -> "bookmark"+        Chapter -> "chapter"+        NextPage -> "next-page"+        PrevPage -> "prev-page"+        Scroll -> "scroll"+        Search -> "search"++instance FromJSON MyLibraryReadingPositionsSetPositionAction where+    parseJSON = parseJSONText "MyLibraryReadingPositionsSetPositionAction"++instance ToJSON MyLibraryReadingPositionsSetPositionAction where+    toJSON = toJSONText
+ gen/Network/Google/Resource/Books/Bookshelves/Get.hs view
@@ -0,0 +1,104 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Bookshelves.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves metadata for a specific bookshelf for the specified user.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.bookshelves.get@.+module Network.Google.Resource.Books.Bookshelves.Get+    (+    -- * REST Resource+      BookshelvesGetResource++    -- * Creating a Request+    , bookshelvesGet+    , BookshelvesGet++    -- * Request Lenses+    , bgUserId+    , bgShelf+    , bgSource+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.bookshelves.get@ method which the+-- 'BookshelvesGet' request conforms to.+type BookshelvesGetResource =+     "books" :>+       "v1" :>+         "users" :>+           Capture "userId" Text :>+             "bookshelves" :>+               Capture "shelf" Text :>+                 QueryParam "source" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Bookshelf++-- | Retrieves metadata for a specific bookshelf for the specified user.+--+-- /See:/ 'bookshelvesGet' smart constructor.+data BookshelvesGet = BookshelvesGet+    { _bgUserId :: !Text+    , _bgShelf  :: !Text+    , _bgSource :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BookshelvesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bgUserId'+--+-- * 'bgShelf'+--+-- * 'bgSource'+bookshelvesGet+    :: Text -- ^ 'bgUserId'+    -> Text -- ^ 'bgShelf'+    -> BookshelvesGet+bookshelvesGet pBgUserId_ pBgShelf_ =+    BookshelvesGet+    { _bgUserId = pBgUserId_+    , _bgShelf = pBgShelf_+    , _bgSource = Nothing+    }++-- | ID of user for whom to retrieve bookshelves.+bgUserId :: Lens' BookshelvesGet Text+bgUserId = lens _bgUserId (\ s a -> s{_bgUserId = a})++-- | ID of bookshelf to retrieve.+bgShelf :: Lens' BookshelvesGet Text+bgShelf = lens _bgShelf (\ s a -> s{_bgShelf = a})++-- | String to identify the originator of this request.+bgSource :: Lens' BookshelvesGet (Maybe Text)+bgSource = lens _bgSource (\ s a -> s{_bgSource = a})++instance GoogleRequest BookshelvesGet where+        type Rs BookshelvesGet = Bookshelf+        requestClient BookshelvesGet{..}+          = go _bgUserId _bgShelf _bgSource (Just AltJSON)+              booksService+          where go+                  = buildClient (Proxy :: Proxy BookshelvesGetResource)+                      mempty
+ gen/Network/Google/Resource/Books/Bookshelves/List.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Bookshelves.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a list of public bookshelves for the specified user.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.bookshelves.list@.+module Network.Google.Resource.Books.Bookshelves.List+    (+    -- * REST Resource+      BookshelvesListResource++    -- * Creating a Request+    , bookshelvesList+    , BookshelvesList++    -- * Request Lenses+    , blUserId+    , blSource+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.bookshelves.list@ method which the+-- 'BookshelvesList' request conforms to.+type BookshelvesListResource =+     "books" :>+       "v1" :>+         "users" :>+           Capture "userId" Text :>+             "bookshelves" :>+               QueryParam "source" Text :>+                 QueryParam "alt" AltJSON :> Get '[JSON] Bookshelves++-- | Retrieves a list of public bookshelves for the specified user.+--+-- /See:/ 'bookshelvesList' smart constructor.+data BookshelvesList = BookshelvesList+    { _blUserId :: !Text+    , _blSource :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BookshelvesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'blUserId'+--+-- * 'blSource'+bookshelvesList+    :: Text -- ^ 'blUserId'+    -> BookshelvesList+bookshelvesList pBlUserId_ =+    BookshelvesList+    { _blUserId = pBlUserId_+    , _blSource = Nothing+    }++-- | ID of user for whom to retrieve bookshelves.+blUserId :: Lens' BookshelvesList Text+blUserId = lens _blUserId (\ s a -> s{_blUserId = a})++-- | String to identify the originator of this request.+blSource :: Lens' BookshelvesList (Maybe Text)+blSource = lens _blSource (\ s a -> s{_blSource = a})++instance GoogleRequest BookshelvesList where+        type Rs BookshelvesList = Bookshelves+        requestClient BookshelvesList{..}+          = go _blUserId _blSource (Just AltJSON) booksService+          where go+                  = buildClient+                      (Proxy :: Proxy BookshelvesListResource)+                      mempty
+ gen/Network/Google/Resource/Books/Bookshelves/Volumes/List.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Bookshelves.Volumes.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves volumes in a specific bookshelf for the specified user.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.bookshelves.volumes.list@.+module Network.Google.Resource.Books.Bookshelves.Volumes.List+    (+    -- * REST Resource+      BookshelvesVolumesListResource++    -- * Creating a Request+    , bookshelvesVolumesList+    , BookshelvesVolumesList++    -- * Request Lenses+    , bvlUserId+    , bvlShelf+    , bvlSource+    , bvlStartIndex+    , bvlMaxResults+    , bvlShowPreOrders+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.bookshelves.volumes.list@ method which the+-- 'BookshelvesVolumesList' 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++-- | Retrieves volumes in a specific bookshelf for the specified user.+--+-- /See:/ 'bookshelvesVolumesList' smart constructor.+data BookshelvesVolumesList = BookshelvesVolumesList+    { _bvlUserId        :: !Text+    , _bvlShelf         :: !Text+    , _bvlSource        :: !(Maybe Text)+    , _bvlStartIndex    :: !(Maybe (Textual Word32))+    , _bvlMaxResults    :: !(Maybe (Textual Word32))+    , _bvlShowPreOrders :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BookshelvesVolumesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bvlUserId'+--+-- * 'bvlShelf'+--+-- * 'bvlSource'+--+-- * 'bvlStartIndex'+--+-- * 'bvlMaxResults'+--+-- * 'bvlShowPreOrders'+bookshelvesVolumesList+    :: Text -- ^ 'bvlUserId'+    -> Text -- ^ 'bvlShelf'+    -> BookshelvesVolumesList+bookshelvesVolumesList pBvlUserId_ pBvlShelf_ =+    BookshelvesVolumesList+    { _bvlUserId = pBvlUserId_+    , _bvlShelf = pBvlShelf_+    , _bvlSource = Nothing+    , _bvlStartIndex = Nothing+    , _bvlMaxResults = Nothing+    , _bvlShowPreOrders = Nothing+    }++-- | ID of user for whom to retrieve bookshelf volumes.+bvlUserId :: Lens' BookshelvesVolumesList Text+bvlUserId+  = lens _bvlUserId (\ s a -> s{_bvlUserId = a})++-- | ID of bookshelf to retrieve volumes.+bvlShelf :: Lens' BookshelvesVolumesList Text+bvlShelf = lens _bvlShelf (\ s a -> s{_bvlShelf = a})++-- | String to identify the originator of this request.+bvlSource :: Lens' BookshelvesVolumesList (Maybe Text)+bvlSource+  = lens _bvlSource (\ s a -> s{_bvlSource = a})++-- | Index of the first element to return (starts at 0)+bvlStartIndex :: Lens' BookshelvesVolumesList (Maybe Word32)+bvlStartIndex+  = lens _bvlStartIndex+      (\ s a -> s{_bvlStartIndex = a})+      . mapping _Coerce++-- | Maximum number of results to return+bvlMaxResults :: Lens' BookshelvesVolumesList (Maybe Word32)+bvlMaxResults+  = lens _bvlMaxResults+      (\ s a -> s{_bvlMaxResults = a})+      . mapping _Coerce++-- | Set to true to show pre-ordered books. Defaults to false.+bvlShowPreOrders :: Lens' BookshelvesVolumesList (Maybe Bool)+bvlShowPreOrders+  = lens _bvlShowPreOrders+      (\ s a -> s{_bvlShowPreOrders = a})++instance GoogleRequest BookshelvesVolumesList where+        type Rs BookshelvesVolumesList = Volumes+        requestClient BookshelvesVolumesList{..}+          = go _bvlUserId _bvlShelf _bvlSource _bvlStartIndex+              _bvlMaxResults+              _bvlShowPreOrders+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy BookshelvesVolumesListResource)+                      mempty
+ gen/Network/Google/Resource/Books/CloudLoading/AddBook.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.CloudLoading.AddBook+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- -- |+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.cloudloading.addBook@.+module Network.Google.Resource.Books.CloudLoading.AddBook+    (+    -- * REST Resource+      CloudLoadingAddBookResource++    -- * Creating a Request+    , cloudLoadingAddBook+    , CloudLoadingAddBook++    -- * Request Lenses+    , clabMimeType+    , clabUploadClientToken+    , clabName+    , clabDriveDocumentId+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.cloudloading.addBook@ method which the+-- 'CloudLoadingAddBook' 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++-- |+--+-- /See:/ 'cloudLoadingAddBook' smart constructor.+data CloudLoadingAddBook = CloudLoadingAddBook+    { _clabMimeType          :: !(Maybe Text)+    , _clabUploadClientToken :: !(Maybe Text)+    , _clabName              :: !(Maybe Text)+    , _clabDriveDocumentId   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CloudLoadingAddBook' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'clabMimeType'+--+-- * 'clabUploadClientToken'+--+-- * 'clabName'+--+-- * 'clabDriveDocumentId'+cloudLoadingAddBook+    :: CloudLoadingAddBook+cloudLoadingAddBook =+    CloudLoadingAddBook+    { _clabMimeType = Nothing+    , _clabUploadClientToken = Nothing+    , _clabName = Nothing+    , _clabDriveDocumentId = Nothing+    }++-- | The document MIME type. It can be set only if the drive_document_id is+-- set.+clabMimeType :: Lens' CloudLoadingAddBook (Maybe Text)+clabMimeType+  = lens _clabMimeType (\ s a -> s{_clabMimeType = a})++clabUploadClientToken :: Lens' CloudLoadingAddBook (Maybe Text)+clabUploadClientToken+  = lens _clabUploadClientToken+      (\ s a -> s{_clabUploadClientToken = a})++-- | The document name. It can be set only if the drive_document_id is set.+clabName :: Lens' CloudLoadingAddBook (Maybe Text)+clabName = lens _clabName (\ s a -> s{_clabName = a})++-- | A drive document id. The upload_client_token must not be set.+clabDriveDocumentId :: Lens' CloudLoadingAddBook (Maybe Text)+clabDriveDocumentId+  = lens _clabDriveDocumentId+      (\ s a -> s{_clabDriveDocumentId = a})++instance GoogleRequest CloudLoadingAddBook where+        type Rs CloudLoadingAddBook =+             BooksCloudLoadingResource+        requestClient CloudLoadingAddBook{..}+          = go _clabMimeType _clabUploadClientToken _clabName+              _clabDriveDocumentId+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy CloudLoadingAddBookResource)+                      mempty
+ gen/Network/Google/Resource/Books/CloudLoading/DeleteBook.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.CloudLoading.DeleteBook+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Remove the book and its contents+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.cloudloading.deleteBook@.+module Network.Google.Resource.Books.CloudLoading.DeleteBook+    (+    -- * REST Resource+      CloudLoadingDeleteBookResource++    -- * Creating a Request+    , cloudLoadingDeleteBook+    , CloudLoadingDeleteBook++    -- * Request Lenses+    , cldbVolumeId+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.cloudloading.deleteBook@ method which the+-- 'CloudLoadingDeleteBook' request conforms to.+type CloudLoadingDeleteBookResource =+     "books" :>+       "v1" :>+         "cloudloading" :>+           "deleteBook" :>+             QueryParam "volumeId" Text :>+               QueryParam "alt" AltJSON :> Post '[JSON] ()++-- | Remove the book and its contents+--+-- /See:/ 'cloudLoadingDeleteBook' smart constructor.+newtype CloudLoadingDeleteBook = CloudLoadingDeleteBook+    { _cldbVolumeId :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CloudLoadingDeleteBook' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cldbVolumeId'+cloudLoadingDeleteBook+    :: Text -- ^ 'cldbVolumeId'+    -> CloudLoadingDeleteBook+cloudLoadingDeleteBook pCldbVolumeId_ =+    CloudLoadingDeleteBook+    { _cldbVolumeId = pCldbVolumeId_+    }++-- | The id of the book to be removed.+cldbVolumeId :: Lens' CloudLoadingDeleteBook Text+cldbVolumeId+  = lens _cldbVolumeId (\ s a -> s{_cldbVolumeId = a})++instance GoogleRequest CloudLoadingDeleteBook where+        type Rs CloudLoadingDeleteBook = ()+        requestClient CloudLoadingDeleteBook{..}+          = go (Just _cldbVolumeId) (Just AltJSON) booksService+          where go+                  = buildClient+                      (Proxy :: Proxy CloudLoadingDeleteBookResource)+                      mempty
+ gen/Network/Google/Resource/Books/CloudLoading/UpdateBook.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.CloudLoading.UpdateBook+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- -- |+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.cloudloading.updateBook@.+module Network.Google.Resource.Books.CloudLoading.UpdateBook+    (+    -- * REST Resource+      CloudLoadingUpdateBookResource++    -- * Creating a Request+    , cloudLoadingUpdateBook+    , CloudLoadingUpdateBook++    -- * Request Lenses+    , clubPayload+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.cloudloading.updateBook@ method which the+-- 'CloudLoadingUpdateBook' request conforms to.+type CloudLoadingUpdateBookResource =+     "books" :>+       "v1" :>+         "cloudloading" :>+           "updateBook" :>+             QueryParam "alt" AltJSON :>+               ReqBody '[JSON] BooksCloudLoadingResource :>+                 Post '[JSON] BooksCloudLoadingResource++-- |+--+-- /See:/ 'cloudLoadingUpdateBook' smart constructor.+newtype CloudLoadingUpdateBook = CloudLoadingUpdateBook+    { _clubPayload :: BooksCloudLoadingResource+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CloudLoadingUpdateBook' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'clubPayload'+cloudLoadingUpdateBook+    :: BooksCloudLoadingResource -- ^ 'clubPayload'+    -> CloudLoadingUpdateBook+cloudLoadingUpdateBook pClubPayload_ =+    CloudLoadingUpdateBook+    { _clubPayload = pClubPayload_+    }++-- | Multipart request metadata.+clubPayload :: Lens' CloudLoadingUpdateBook BooksCloudLoadingResource+clubPayload+  = lens _clubPayload (\ s a -> s{_clubPayload = a})++instance GoogleRequest CloudLoadingUpdateBook where+        type Rs CloudLoadingUpdateBook =+             BooksCloudLoadingResource+        requestClient CloudLoadingUpdateBook{..}+          = go (Just AltJSON) _clubPayload booksService+          where go+                  = buildClient+                      (Proxy :: Proxy CloudLoadingUpdateBookResource)+                      mempty
+ gen/Network/Google/Resource/Books/Dictionary/ListOfflineMetadata.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Dictionary.ListOfflineMetadata+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of offline dictionary metadata available+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.dictionary.listOfflineMetadata@.+module Network.Google.Resource.Books.Dictionary.ListOfflineMetadata+    (+    -- * REST Resource+      DictionaryListOfflineMetadataResource++    -- * Creating a Request+    , dictionaryListOfflineMetadata+    , DictionaryListOfflineMetadata++    -- * Request Lenses+    , dlomCpksver+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.dictionary.listOfflineMetadata@ method which the+-- 'DictionaryListOfflineMetadata' request conforms to.+type DictionaryListOfflineMetadataResource =+     "books" :>+       "v1" :>+         "dictionary" :>+           "listOfflineMetadata" :>+             QueryParam "cpksver" Text :>+               QueryParam "alt" AltJSON :> Get '[JSON] Metadata++-- | Returns a list of offline dictionary metadata available+--+-- /See:/ 'dictionaryListOfflineMetadata' smart constructor.+newtype DictionaryListOfflineMetadata = DictionaryListOfflineMetadata+    { _dlomCpksver :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DictionaryListOfflineMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dlomCpksver'+dictionaryListOfflineMetadata+    :: Text -- ^ 'dlomCpksver'+    -> DictionaryListOfflineMetadata+dictionaryListOfflineMetadata pDlomCpksver_ =+    DictionaryListOfflineMetadata+    { _dlomCpksver = pDlomCpksver_+    }++-- | The device\/version ID from which to request the data.+dlomCpksver :: Lens' DictionaryListOfflineMetadata Text+dlomCpksver+  = lens _dlomCpksver (\ s a -> s{_dlomCpksver = a})++instance GoogleRequest DictionaryListOfflineMetadata+         where+        type Rs DictionaryListOfflineMetadata = Metadata+        requestClient DictionaryListOfflineMetadata{..}+          = go (Just _dlomCpksver) (Just AltJSON) booksService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy DictionaryListOfflineMetadataResource)+                      mempty
+ gen/Network/Google/Resource/Books/Layers/AnnotationData/Get.hs view
@@ -0,0 +1,206 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Layers.AnnotationData.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the annotation data.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.layers.annotationData.get@.+module Network.Google.Resource.Books.Layers.AnnotationData.Get+    (+    -- * REST Resource+      LayersAnnotationDataGetResource++    -- * Creating a Request+    , layersAnnotationDataGet+    , LayersAnnotationDataGet++    -- * Request Lenses+    , ladgW+    , ladgScale+    , ladgLocale+    , ladgContentVersion+    , ladgAllowWebDefinitions+    , ladgAnnotationDataId+    , ladgVolumeId+    , ladgSource+    , ladgH+    , ladgLayerId+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.layers.annotationData.get@ method which the+-- 'LayersAnnotationDataGet' 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++-- | Gets the annotation data.+--+-- /See:/ 'layersAnnotationDataGet' smart constructor.+data LayersAnnotationDataGet = LayersAnnotationDataGet+    { _ladgW                   :: !(Maybe (Textual Int32))+    , _ladgScale               :: !(Maybe (Textual Int32))+    , _ladgLocale              :: !(Maybe Text)+    , _ladgContentVersion      :: !Text+    , _ladgAllowWebDefinitions :: !(Maybe Bool)+    , _ladgAnnotationDataId    :: !Text+    , _ladgVolumeId            :: !Text+    , _ladgSource              :: !(Maybe Text)+    , _ladgH                   :: !(Maybe (Textual Int32))+    , _ladgLayerId             :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LayersAnnotationDataGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ladgW'+--+-- * 'ladgScale'+--+-- * 'ladgLocale'+--+-- * 'ladgContentVersion'+--+-- * 'ladgAllowWebDefinitions'+--+-- * 'ladgAnnotationDataId'+--+-- * 'ladgVolumeId'+--+-- * 'ladgSource'+--+-- * 'ladgH'+--+-- * 'ladgLayerId'+layersAnnotationDataGet+    :: Text -- ^ 'ladgContentVersion'+    -> Text -- ^ 'ladgAnnotationDataId'+    -> Text -- ^ 'ladgVolumeId'+    -> Text -- ^ 'ladgLayerId'+    -> LayersAnnotationDataGet+layersAnnotationDataGet pLadgContentVersion_ pLadgAnnotationDataId_ pLadgVolumeId_ pLadgLayerId_ =+    LayersAnnotationDataGet+    { _ladgW = Nothing+    , _ladgScale = Nothing+    , _ladgLocale = Nothing+    , _ladgContentVersion = pLadgContentVersion_+    , _ladgAllowWebDefinitions = Nothing+    , _ladgAnnotationDataId = pLadgAnnotationDataId_+    , _ladgVolumeId = pLadgVolumeId_+    , _ladgSource = Nothing+    , _ladgH = Nothing+    , _ladgLayerId = pLadgLayerId_+    }++-- | The requested pixel width for any images. If width is provided height+-- must also be provided.+ladgW :: Lens' LayersAnnotationDataGet (Maybe Int32)+ladgW+  = lens _ladgW (\ s a -> s{_ladgW = a}) .+      mapping _Coerce++-- | The requested scale for the image.+ladgScale :: Lens' LayersAnnotationDataGet (Maybe Int32)+ladgScale+  = lens _ladgScale (\ s a -> s{_ladgScale = a}) .+      mapping _Coerce++-- | The locale information for the data. ISO-639-1 language and ISO-3166-1+-- country code. Ex: \'en_US\'.+ladgLocale :: Lens' LayersAnnotationDataGet (Maybe Text)+ladgLocale+  = lens _ladgLocale (\ s a -> s{_ladgLocale = a})++-- | The content version for the volume you are trying to retrieve.+ladgContentVersion :: Lens' LayersAnnotationDataGet Text+ladgContentVersion+  = lens _ladgContentVersion+      (\ s a -> s{_ladgContentVersion = a})++-- | For the dictionary layer. Whether or not to allow web definitions.+ladgAllowWebDefinitions :: Lens' LayersAnnotationDataGet (Maybe Bool)+ladgAllowWebDefinitions+  = lens _ladgAllowWebDefinitions+      (\ s a -> s{_ladgAllowWebDefinitions = a})++-- | The ID of the annotation data to retrieve.+ladgAnnotationDataId :: Lens' LayersAnnotationDataGet Text+ladgAnnotationDataId+  = lens _ladgAnnotationDataId+      (\ s a -> s{_ladgAnnotationDataId = a})++-- | The volume to retrieve annotations for.+ladgVolumeId :: Lens' LayersAnnotationDataGet Text+ladgVolumeId+  = lens _ladgVolumeId (\ s a -> s{_ladgVolumeId = a})++-- | String to identify the originator of this request.+ladgSource :: Lens' LayersAnnotationDataGet (Maybe Text)+ladgSource+  = lens _ladgSource (\ s a -> s{_ladgSource = a})++-- | The requested pixel height for any images. If height is provided width+-- must also be provided.+ladgH :: Lens' LayersAnnotationDataGet (Maybe Int32)+ladgH+  = lens _ladgH (\ s a -> s{_ladgH = a}) .+      mapping _Coerce++-- | The ID for the layer to get the annotations.+ladgLayerId :: Lens' LayersAnnotationDataGet Text+ladgLayerId+  = lens _ladgLayerId (\ s a -> s{_ladgLayerId = a})++instance GoogleRequest LayersAnnotationDataGet where+        type Rs LayersAnnotationDataGet = AnnotationData+        requestClient LayersAnnotationDataGet{..}+          = go _ladgVolumeId _ladgLayerId _ladgAnnotationDataId+              (Just _ladgContentVersion)+              _ladgW+              _ladgScale+              _ladgLocale+              _ladgAllowWebDefinitions+              _ladgSource+              _ladgH+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy LayersAnnotationDataGetResource)+                      mempty
+ gen/Network/Google/Resource/Books/Layers/AnnotationData/List.hs view
@@ -0,0 +1,252 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Layers.AnnotationData.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the annotation data for a volume and layer.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.layers.annotationData.list@.+module Network.Google.Resource.Books.Layers.AnnotationData.List+    (+    -- * REST Resource+      LayersAnnotationDataListResource++    -- * Creating a Request+    , layersAnnotationDataList+    , LayersAnnotationDataList++    -- * Request Lenses+    , ladlW+    , ladlScale+    , ladlLocale+    , ladlContentVersion+    , ladlUpdatedMax+    , ladlUpdatedMin+    , ladlAnnotationDataId+    , ladlVolumeId+    , ladlSource+    , ladlH+    , ladlPageToken+    , ladlLayerId+    , ladlMaxResults+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.layers.annotationData.list@ method which the+-- 'LayersAnnotationDataList' 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++-- | Gets the annotation data for a volume and layer.+--+-- /See:/ 'layersAnnotationDataList' smart constructor.+data LayersAnnotationDataList = LayersAnnotationDataList+    { _ladlW                :: !(Maybe (Textual Int32))+    , _ladlScale            :: !(Maybe (Textual Int32))+    , _ladlLocale           :: !(Maybe Text)+    , _ladlContentVersion   :: !Text+    , _ladlUpdatedMax       :: !(Maybe Text)+    , _ladlUpdatedMin       :: !(Maybe Text)+    , _ladlAnnotationDataId :: !(Maybe [Text])+    , _ladlVolumeId         :: !Text+    , _ladlSource           :: !(Maybe Text)+    , _ladlH                :: !(Maybe (Textual Int32))+    , _ladlPageToken        :: !(Maybe Text)+    , _ladlLayerId          :: !Text+    , _ladlMaxResults       :: !(Maybe (Textual Word32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LayersAnnotationDataList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ladlW'+--+-- * 'ladlScale'+--+-- * 'ladlLocale'+--+-- * 'ladlContentVersion'+--+-- * 'ladlUpdatedMax'+--+-- * 'ladlUpdatedMin'+--+-- * 'ladlAnnotationDataId'+--+-- * 'ladlVolumeId'+--+-- * 'ladlSource'+--+-- * 'ladlH'+--+-- * 'ladlPageToken'+--+-- * 'ladlLayerId'+--+-- * 'ladlMaxResults'+layersAnnotationDataList+    :: Text -- ^ 'ladlContentVersion'+    -> Text -- ^ 'ladlVolumeId'+    -> Text -- ^ 'ladlLayerId'+    -> LayersAnnotationDataList+layersAnnotationDataList pLadlContentVersion_ pLadlVolumeId_ pLadlLayerId_ =+    LayersAnnotationDataList+    { _ladlW = Nothing+    , _ladlScale = Nothing+    , _ladlLocale = Nothing+    , _ladlContentVersion = pLadlContentVersion_+    , _ladlUpdatedMax = Nothing+    , _ladlUpdatedMin = Nothing+    , _ladlAnnotationDataId = Nothing+    , _ladlVolumeId = pLadlVolumeId_+    , _ladlSource = Nothing+    , _ladlH = Nothing+    , _ladlPageToken = Nothing+    , _ladlLayerId = pLadlLayerId_+    , _ladlMaxResults = Nothing+    }++-- | The requested pixel width for any images. If width is provided height+-- must also be provided.+ladlW :: Lens' LayersAnnotationDataList (Maybe Int32)+ladlW+  = lens _ladlW (\ s a -> s{_ladlW = a}) .+      mapping _Coerce++-- | The requested scale for the image.+ladlScale :: Lens' LayersAnnotationDataList (Maybe Int32)+ladlScale+  = lens _ladlScale (\ s a -> s{_ladlScale = a}) .+      mapping _Coerce++-- | The locale information for the data. ISO-639-1 language and ISO-3166-1+-- country code. Ex: \'en_US\'.+ladlLocale :: Lens' LayersAnnotationDataList (Maybe Text)+ladlLocale+  = lens _ladlLocale (\ s a -> s{_ladlLocale = a})++-- | The content version for the requested volume.+ladlContentVersion :: Lens' LayersAnnotationDataList Text+ladlContentVersion+  = lens _ladlContentVersion+      (\ s a -> s{_ladlContentVersion = a})++-- | RFC 3339 timestamp to restrict to items updated prior to this timestamp+-- (exclusive).+ladlUpdatedMax :: Lens' LayersAnnotationDataList (Maybe Text)+ladlUpdatedMax+  = lens _ladlUpdatedMax+      (\ s a -> s{_ladlUpdatedMax = a})++-- | RFC 3339 timestamp to restrict to items updated since this timestamp+-- (inclusive).+ladlUpdatedMin :: Lens' LayersAnnotationDataList (Maybe Text)+ladlUpdatedMin+  = lens _ladlUpdatedMin+      (\ s a -> s{_ladlUpdatedMin = a})++-- | The list of Annotation Data Ids to retrieve. Pagination is ignored if+-- this is set.+ladlAnnotationDataId :: Lens' LayersAnnotationDataList [Text]+ladlAnnotationDataId+  = lens _ladlAnnotationDataId+      (\ s a -> s{_ladlAnnotationDataId = a})+      . _Default+      . _Coerce++-- | The volume to retrieve annotation data for.+ladlVolumeId :: Lens' LayersAnnotationDataList Text+ladlVolumeId+  = lens _ladlVolumeId (\ s a -> s{_ladlVolumeId = a})++-- | String to identify the originator of this request.+ladlSource :: Lens' LayersAnnotationDataList (Maybe Text)+ladlSource+  = lens _ladlSource (\ s a -> s{_ladlSource = a})++-- | The requested pixel height for any images. If height is provided width+-- must also be provided.+ladlH :: Lens' LayersAnnotationDataList (Maybe Int32)+ladlH+  = lens _ladlH (\ s a -> s{_ladlH = a}) .+      mapping _Coerce++-- | The value of the nextToken from the previous page.+ladlPageToken :: Lens' LayersAnnotationDataList (Maybe Text)+ladlPageToken+  = lens _ladlPageToken+      (\ s a -> s{_ladlPageToken = a})++-- | The ID for the layer to get the annotation data.+ladlLayerId :: Lens' LayersAnnotationDataList Text+ladlLayerId+  = lens _ladlLayerId (\ s a -> s{_ladlLayerId = a})++-- | Maximum number of results to return+ladlMaxResults :: Lens' LayersAnnotationDataList (Maybe Word32)+ladlMaxResults+  = lens _ladlMaxResults+      (\ s a -> s{_ladlMaxResults = a})+      . mapping _Coerce++instance GoogleRequest LayersAnnotationDataList where+        type Rs LayersAnnotationDataList = AnnotationsData+        requestClient LayersAnnotationDataList{..}+          = go _ladlVolumeId _ladlLayerId+              (Just _ladlContentVersion)+              _ladlW+              _ladlScale+              _ladlLocale+              _ladlUpdatedMax+              _ladlUpdatedMin+              (_ladlAnnotationDataId ^. _Default)+              _ladlSource+              _ladlH+              _ladlPageToken+              _ladlMaxResults+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy LayersAnnotationDataListResource)+                      mempty
+ gen/Network/Google/Resource/Books/Layers/Get.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Layers.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the layer summary for a volume.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.layers.get@.+module Network.Google.Resource.Books.Layers.Get+    (+    -- * REST Resource+      LayersGetResource++    -- * Creating a Request+    , layersGet+    , LayersGet++    -- * Request Lenses+    , lgContentVersion+    , lgVolumeId+    , lgSource+    , lgSummaryId+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.layers.get@ method which the+-- 'LayersGet' 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++-- | Gets the layer summary for a volume.+--+-- /See:/ 'layersGet' smart constructor.+data LayersGet = LayersGet+    { _lgContentVersion :: !(Maybe Text)+    , _lgVolumeId       :: !Text+    , _lgSource         :: !(Maybe Text)+    , _lgSummaryId      :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LayersGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lgContentVersion'+--+-- * 'lgVolumeId'+--+-- * 'lgSource'+--+-- * 'lgSummaryId'+layersGet+    :: Text -- ^ 'lgVolumeId'+    -> Text -- ^ 'lgSummaryId'+    -> LayersGet+layersGet pLgVolumeId_ pLgSummaryId_ =+    LayersGet+    { _lgContentVersion = Nothing+    , _lgVolumeId = pLgVolumeId_+    , _lgSource = Nothing+    , _lgSummaryId = pLgSummaryId_+    }++-- | The content version for the requested volume.+lgContentVersion :: Lens' LayersGet (Maybe Text)+lgContentVersion+  = lens _lgContentVersion+      (\ s a -> s{_lgContentVersion = a})++-- | The volume to retrieve layers for.+lgVolumeId :: Lens' LayersGet Text+lgVolumeId+  = lens _lgVolumeId (\ s a -> s{_lgVolumeId = a})++-- | String to identify the originator of this request.+lgSource :: Lens' LayersGet (Maybe Text)+lgSource = lens _lgSource (\ s a -> s{_lgSource = a})++-- | The ID for the layer to get the summary for.+lgSummaryId :: Lens' LayersGet Text+lgSummaryId+  = lens _lgSummaryId (\ s a -> s{_lgSummaryId = a})++instance GoogleRequest LayersGet where+        type Rs LayersGet = Layersummary+        requestClient LayersGet{..}+          = go _lgVolumeId _lgSummaryId _lgContentVersion+              _lgSource+              (Just AltJSON)+              booksService+          where go+                  = buildClient (Proxy :: Proxy LayersGetResource)+                      mempty
+ gen/Network/Google/Resource/Books/Layers/List.hs view
@@ -0,0 +1,133 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Layers.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- List the layer summaries for a volume.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.layers.list@.+module Network.Google.Resource.Books.Layers.List+    (+    -- * REST Resource+      LayersListResource++    -- * Creating a Request+    , layersList+    , LayersList++    -- * Request Lenses+    , llContentVersion+    , llVolumeId+    , llSource+    , llPageToken+    , llMaxResults+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.layers.list@ method which the+-- 'LayersList' 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++-- | List the layer summaries for a volume.+--+-- /See:/ 'layersList' smart constructor.+data LayersList = LayersList+    { _llContentVersion :: !(Maybe Text)+    , _llVolumeId       :: !Text+    , _llSource         :: !(Maybe Text)+    , _llPageToken      :: !(Maybe Text)+    , _llMaxResults     :: !(Maybe (Textual Word32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LayersList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'llContentVersion'+--+-- * 'llVolumeId'+--+-- * 'llSource'+--+-- * 'llPageToken'+--+-- * 'llMaxResults'+layersList+    :: Text -- ^ 'llVolumeId'+    -> LayersList+layersList pLlVolumeId_ =+    LayersList+    { _llContentVersion = Nothing+    , _llVolumeId = pLlVolumeId_+    , _llSource = Nothing+    , _llPageToken = Nothing+    , _llMaxResults = Nothing+    }++-- | The content version for the requested volume.+llContentVersion :: Lens' LayersList (Maybe Text)+llContentVersion+  = lens _llContentVersion+      (\ s a -> s{_llContentVersion = a})++-- | The volume to retrieve layers for.+llVolumeId :: Lens' LayersList Text+llVolumeId+  = lens _llVolumeId (\ s a -> s{_llVolumeId = a})++-- | String to identify the originator of this request.+llSource :: Lens' LayersList (Maybe Text)+llSource = lens _llSource (\ s a -> s{_llSource = a})++-- | The value of the nextToken from the previous page.+llPageToken :: Lens' LayersList (Maybe Text)+llPageToken+  = lens _llPageToken (\ s a -> s{_llPageToken = a})++-- | Maximum number of results to return+llMaxResults :: Lens' LayersList (Maybe Word32)+llMaxResults+  = lens _llMaxResults (\ s a -> s{_llMaxResults = a})+      . mapping _Coerce++instance GoogleRequest LayersList where+        type Rs LayersList = Layersummaries+        requestClient LayersList{..}+          = go _llVolumeId _llContentVersion _llSource+              _llPageToken+              _llMaxResults+              (Just AltJSON)+              booksService+          where go+                  = buildClient (Proxy :: Proxy LayersListResource)+                      mempty
+ gen/Network/Google/Resource/Books/Layers/VolumeAnnotations/Get.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Layers.VolumeAnnotations.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the volume annotation.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.layers.volumeAnnotations.get@.+module Network.Google.Resource.Books.Layers.VolumeAnnotations.Get+    (+    -- * REST Resource+      LayersVolumeAnnotationsGetResource++    -- * Creating a Request+    , layersVolumeAnnotationsGet+    , LayersVolumeAnnotationsGet++    -- * Request Lenses+    , lvagLocale+    , lvagAnnotationId+    , lvagVolumeId+    , lvagSource+    , lvagLayerId+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.layers.volumeAnnotations.get@ method which the+-- 'LayersVolumeAnnotationsGet' 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++-- | Gets the volume annotation.+--+-- /See:/ 'layersVolumeAnnotationsGet' smart constructor.+data LayersVolumeAnnotationsGet = LayersVolumeAnnotationsGet+    { _lvagLocale       :: !(Maybe Text)+    , _lvagAnnotationId :: !Text+    , _lvagVolumeId     :: !Text+    , _lvagSource       :: !(Maybe Text)+    , _lvagLayerId      :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LayersVolumeAnnotationsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lvagLocale'+--+-- * 'lvagAnnotationId'+--+-- * 'lvagVolumeId'+--+-- * 'lvagSource'+--+-- * 'lvagLayerId'+layersVolumeAnnotationsGet+    :: Text -- ^ 'lvagAnnotationId'+    -> Text -- ^ 'lvagVolumeId'+    -> Text -- ^ 'lvagLayerId'+    -> LayersVolumeAnnotationsGet+layersVolumeAnnotationsGet pLvagAnnotationId_ pLvagVolumeId_ pLvagLayerId_ =+    LayersVolumeAnnotationsGet+    { _lvagLocale = Nothing+    , _lvagAnnotationId = pLvagAnnotationId_+    , _lvagVolumeId = pLvagVolumeId_+    , _lvagSource = Nothing+    , _lvagLayerId = pLvagLayerId_+    }++-- | The locale information for the data. ISO-639-1 language and ISO-3166-1+-- country code. Ex: \'en_US\'.+lvagLocale :: Lens' LayersVolumeAnnotationsGet (Maybe Text)+lvagLocale+  = lens _lvagLocale (\ s a -> s{_lvagLocale = a})++-- | The ID of the volume annotation to retrieve.+lvagAnnotationId :: Lens' LayersVolumeAnnotationsGet Text+lvagAnnotationId+  = lens _lvagAnnotationId+      (\ s a -> s{_lvagAnnotationId = a})++-- | The volume to retrieve annotations for.+lvagVolumeId :: Lens' LayersVolumeAnnotationsGet Text+lvagVolumeId+  = lens _lvagVolumeId (\ s a -> s{_lvagVolumeId = a})++-- | String to identify the originator of this request.+lvagSource :: Lens' LayersVolumeAnnotationsGet (Maybe Text)+lvagSource+  = lens _lvagSource (\ s a -> s{_lvagSource = a})++-- | The ID for the layer to get the annotations.+lvagLayerId :: Lens' LayersVolumeAnnotationsGet Text+lvagLayerId+  = lens _lvagLayerId (\ s a -> s{_lvagLayerId = a})++instance GoogleRequest LayersVolumeAnnotationsGet+         where+        type Rs LayersVolumeAnnotationsGet = Volumeannotation+        requestClient LayersVolumeAnnotationsGet{..}+          = go _lvagVolumeId _lvagLayerId _lvagAnnotationId+              _lvagLocale+              _lvagSource+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy LayersVolumeAnnotationsGetResource)+                      mempty
+ gen/Network/Google/Resource/Books/Layers/VolumeAnnotations/List.hs view
@@ -0,0 +1,275 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Layers.VolumeAnnotations.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the volume annotations for a volume and layer.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.layers.volumeAnnotations.list@.+module Network.Google.Resource.Books.Layers.VolumeAnnotations.List+    (+    -- * REST Resource+      LayersVolumeAnnotationsListResource++    -- * Creating a Request+    , layersVolumeAnnotationsList+    , LayersVolumeAnnotationsList++    -- * Request Lenses+    , lvalStartOffSet+    , lvalLocale+    , lvalContentVersion+    , lvalShowDeleted+    , lvalVolumeAnnotationsVersion+    , lvalUpdatedMax+    , lvalUpdatedMin+    , lvalEndOffSet+    , lvalVolumeId+    , lvalSource+    , lvalPageToken+    , lvalEndPosition+    , lvalLayerId+    , lvalMaxResults+    , lvalStartPosition+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.layers.volumeAnnotations.list@ method which the+-- 'LayersVolumeAnnotationsList' 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++-- | Gets the volume annotations for a volume and layer.+--+-- /See:/ 'layersVolumeAnnotationsList' smart constructor.+data LayersVolumeAnnotationsList = LayersVolumeAnnotationsList+    { _lvalStartOffSet              :: !(Maybe Text)+    , _lvalLocale                   :: !(Maybe Text)+    , _lvalContentVersion           :: !Text+    , _lvalShowDeleted              :: !(Maybe Bool)+    , _lvalVolumeAnnotationsVersion :: !(Maybe Text)+    , _lvalUpdatedMax               :: !(Maybe Text)+    , _lvalUpdatedMin               :: !(Maybe Text)+    , _lvalEndOffSet                :: !(Maybe Text)+    , _lvalVolumeId                 :: !Text+    , _lvalSource                   :: !(Maybe Text)+    , _lvalPageToken                :: !(Maybe Text)+    , _lvalEndPosition              :: !(Maybe Text)+    , _lvalLayerId                  :: !Text+    , _lvalMaxResults               :: !(Maybe (Textual Word32))+    , _lvalStartPosition            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LayersVolumeAnnotationsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lvalStartOffSet'+--+-- * 'lvalLocale'+--+-- * 'lvalContentVersion'+--+-- * 'lvalShowDeleted'+--+-- * 'lvalVolumeAnnotationsVersion'+--+-- * 'lvalUpdatedMax'+--+-- * 'lvalUpdatedMin'+--+-- * 'lvalEndOffSet'+--+-- * 'lvalVolumeId'+--+-- * 'lvalSource'+--+-- * 'lvalPageToken'+--+-- * 'lvalEndPosition'+--+-- * 'lvalLayerId'+--+-- * 'lvalMaxResults'+--+-- * 'lvalStartPosition'+layersVolumeAnnotationsList+    :: Text -- ^ 'lvalContentVersion'+    -> Text -- ^ 'lvalVolumeId'+    -> Text -- ^ 'lvalLayerId'+    -> LayersVolumeAnnotationsList+layersVolumeAnnotationsList pLvalContentVersion_ pLvalVolumeId_ pLvalLayerId_ =+    LayersVolumeAnnotationsList+    { _lvalStartOffSet = Nothing+    , _lvalLocale = Nothing+    , _lvalContentVersion = pLvalContentVersion_+    , _lvalShowDeleted = Nothing+    , _lvalVolumeAnnotationsVersion = Nothing+    , _lvalUpdatedMax = Nothing+    , _lvalUpdatedMin = Nothing+    , _lvalEndOffSet = Nothing+    , _lvalVolumeId = pLvalVolumeId_+    , _lvalSource = Nothing+    , _lvalPageToken = Nothing+    , _lvalEndPosition = Nothing+    , _lvalLayerId = pLvalLayerId_+    , _lvalMaxResults = Nothing+    , _lvalStartPosition = Nothing+    }++-- | The start offset to start retrieving data from.+lvalStartOffSet :: Lens' LayersVolumeAnnotationsList (Maybe Text)+lvalStartOffSet+  = lens _lvalStartOffSet+      (\ s a -> s{_lvalStartOffSet = a})++-- | The locale information for the data. ISO-639-1 language and ISO-3166-1+-- country code. Ex: \'en_US\'.+lvalLocale :: Lens' LayersVolumeAnnotationsList (Maybe Text)+lvalLocale+  = lens _lvalLocale (\ s a -> s{_lvalLocale = a})++-- | The content version for the requested volume.+lvalContentVersion :: Lens' LayersVolumeAnnotationsList Text+lvalContentVersion+  = lens _lvalContentVersion+      (\ s a -> s{_lvalContentVersion = a})++-- | Set to true to return deleted annotations. updatedMin must be in the+-- request to use this. Defaults to false.+lvalShowDeleted :: Lens' LayersVolumeAnnotationsList (Maybe Bool)+lvalShowDeleted+  = lens _lvalShowDeleted+      (\ s a -> s{_lvalShowDeleted = a})++-- | The version of the volume annotations that you are requesting.+lvalVolumeAnnotationsVersion :: Lens' LayersVolumeAnnotationsList (Maybe Text)+lvalVolumeAnnotationsVersion+  = lens _lvalVolumeAnnotationsVersion+      (\ s a -> s{_lvalVolumeAnnotationsVersion = a})++-- | RFC 3339 timestamp to restrict to items updated prior to this timestamp+-- (exclusive).+lvalUpdatedMax :: Lens' LayersVolumeAnnotationsList (Maybe Text)+lvalUpdatedMax+  = lens _lvalUpdatedMax+      (\ s a -> s{_lvalUpdatedMax = a})++-- | RFC 3339 timestamp to restrict to items updated since this timestamp+-- (inclusive).+lvalUpdatedMin :: Lens' LayersVolumeAnnotationsList (Maybe Text)+lvalUpdatedMin+  = lens _lvalUpdatedMin+      (\ s a -> s{_lvalUpdatedMin = a})++-- | The end offset to end retrieving data from.+lvalEndOffSet :: Lens' LayersVolumeAnnotationsList (Maybe Text)+lvalEndOffSet+  = lens _lvalEndOffSet+      (\ s a -> s{_lvalEndOffSet = a})++-- | The volume to retrieve annotations for.+lvalVolumeId :: Lens' LayersVolumeAnnotationsList Text+lvalVolumeId+  = lens _lvalVolumeId (\ s a -> s{_lvalVolumeId = a})++-- | String to identify the originator of this request.+lvalSource :: Lens' LayersVolumeAnnotationsList (Maybe Text)+lvalSource+  = lens _lvalSource (\ s a -> s{_lvalSource = a})++-- | The value of the nextToken from the previous page.+lvalPageToken :: Lens' LayersVolumeAnnotationsList (Maybe Text)+lvalPageToken+  = lens _lvalPageToken+      (\ s a -> s{_lvalPageToken = a})++-- | The end position to end retrieving data from.+lvalEndPosition :: Lens' LayersVolumeAnnotationsList (Maybe Text)+lvalEndPosition+  = lens _lvalEndPosition+      (\ s a -> s{_lvalEndPosition = a})++-- | The ID for the layer to get the annotations.+lvalLayerId :: Lens' LayersVolumeAnnotationsList Text+lvalLayerId+  = lens _lvalLayerId (\ s a -> s{_lvalLayerId = a})++-- | Maximum number of results to return+lvalMaxResults :: Lens' LayersVolumeAnnotationsList (Maybe Word32)+lvalMaxResults+  = lens _lvalMaxResults+      (\ s a -> s{_lvalMaxResults = a})+      . mapping _Coerce++-- | The start position to start retrieving data from.+lvalStartPosition :: Lens' LayersVolumeAnnotationsList (Maybe Text)+lvalStartPosition+  = lens _lvalStartPosition+      (\ s a -> s{_lvalStartPosition = a})++instance GoogleRequest LayersVolumeAnnotationsList+         where+        type Rs LayersVolumeAnnotationsList =+             Volumeannotations+        requestClient LayersVolumeAnnotationsList{..}+          = go _lvalVolumeId _lvalLayerId+              (Just _lvalContentVersion)+              _lvalStartOffSet+              _lvalLocale+              _lvalShowDeleted+              _lvalVolumeAnnotationsVersion+              _lvalUpdatedMax+              _lvalUpdatedMin+              _lvalEndOffSet+              _lvalSource+              _lvalPageToken+              _lvalEndPosition+              _lvalMaxResults+              _lvalStartPosition+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy LayersVolumeAnnotationsListResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyConfig/GetUserSettings.hs view
@@ -0,0 +1,69 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyConfig.GetUserSettings+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the current settings for the user.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.myconfig.getUserSettings@.+module Network.Google.Resource.Books.MyConfig.GetUserSettings+    (+    -- * REST Resource+      MyConfigGetUserSettingsResource++    -- * Creating a Request+    , myConfigGetUserSettings+    , MyConfigGetUserSettings++    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.myconfig.getUserSettings@ method which the+-- 'MyConfigGetUserSettings' request conforms to.+type MyConfigGetUserSettingsResource =+     "books" :>+       "v1" :>+         "myconfig" :>+           "getUserSettings" :>+             QueryParam "alt" AltJSON :> Get '[JSON] UserSettings++-- | Gets the current settings for the user.+--+-- /See:/ 'myConfigGetUserSettings' smart constructor.+data MyConfigGetUserSettings =+    MyConfigGetUserSettings+    deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyConfigGetUserSettings' with the minimum fields required to make a request.+--+myConfigGetUserSettings+    :: MyConfigGetUserSettings+myConfigGetUserSettings = MyConfigGetUserSettings++instance GoogleRequest MyConfigGetUserSettings where+        type Rs MyConfigGetUserSettings = UserSettings+        requestClient MyConfigGetUserSettings{}+          = go (Just AltJSON) booksService+          where go+                  = buildClient+                      (Proxy :: Proxy MyConfigGetUserSettingsResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyConfig/ReleaseDownloadAccess.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Release downloaded content access restriction.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.myconfig.releaseDownloadAccess@.+module Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess+    (+    -- * REST Resource+      MyConfigReleaseDownloadAccessResource++    -- * Creating a Request+    , myConfigReleaseDownloadAccess+    , MyConfigReleaseDownloadAccess++    -- * Request Lenses+    , mcrdaCpksver+    , mcrdaLocale+    , mcrdaVolumeIds+    , mcrdaSource+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.myconfig.releaseDownloadAccess@ method which the+-- 'MyConfigReleaseDownloadAccess' 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++-- | Release downloaded content access restriction.+--+-- /See:/ 'myConfigReleaseDownloadAccess' smart constructor.+data MyConfigReleaseDownloadAccess = MyConfigReleaseDownloadAccess+    { _mcrdaCpksver   :: !Text+    , _mcrdaLocale    :: !(Maybe Text)+    , _mcrdaVolumeIds :: ![Text]+    , _mcrdaSource    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyConfigReleaseDownloadAccess' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mcrdaCpksver'+--+-- * 'mcrdaLocale'+--+-- * 'mcrdaVolumeIds'+--+-- * 'mcrdaSource'+myConfigReleaseDownloadAccess+    :: Text -- ^ 'mcrdaCpksver'+    -> [Text] -- ^ 'mcrdaVolumeIds'+    -> MyConfigReleaseDownloadAccess+myConfigReleaseDownloadAccess pMcrdaCpksver_ pMcrdaVolumeIds_ =+    MyConfigReleaseDownloadAccess+    { _mcrdaCpksver = pMcrdaCpksver_+    , _mcrdaLocale = Nothing+    , _mcrdaVolumeIds = _Coerce # pMcrdaVolumeIds_+    , _mcrdaSource = Nothing+    }++-- | The device\/version ID from which to release the restriction.+mcrdaCpksver :: Lens' MyConfigReleaseDownloadAccess Text+mcrdaCpksver+  = lens _mcrdaCpksver (\ s a -> s{_mcrdaCpksver = a})++-- | ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.+mcrdaLocale :: Lens' MyConfigReleaseDownloadAccess (Maybe Text)+mcrdaLocale+  = lens _mcrdaLocale (\ s a -> s{_mcrdaLocale = a})++-- | The volume(s) to release restrictions for.+mcrdaVolumeIds :: Lens' MyConfigReleaseDownloadAccess [Text]+mcrdaVolumeIds+  = lens _mcrdaVolumeIds+      (\ s a -> s{_mcrdaVolumeIds = a})+      . _Coerce++-- | String to identify the originator of this request.+mcrdaSource :: Lens' MyConfigReleaseDownloadAccess (Maybe Text)+mcrdaSource+  = lens _mcrdaSource (\ s a -> s{_mcrdaSource = a})++instance GoogleRequest MyConfigReleaseDownloadAccess+         where+        type Rs MyConfigReleaseDownloadAccess =+             DownloadAccesses+        requestClient MyConfigReleaseDownloadAccess{..}+          = go _mcrdaVolumeIds (Just _mcrdaCpksver)+              _mcrdaLocale+              _mcrdaSource+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy MyConfigReleaseDownloadAccessResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyConfig/RequestAccess.hs view
@@ -0,0 +1,153 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyConfig.RequestAccess+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Request concurrent and download access restrictions.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.myconfig.requestAccess@.+module Network.Google.Resource.Books.MyConfig.RequestAccess+    (+    -- * REST Resource+      MyConfigRequestAccessResource++    -- * Creating a Request+    , myConfigRequestAccess+    , MyConfigRequestAccess++    -- * Request Lenses+    , mcraCpksver+    , mcraLocale+    , mcraLicenseTypes+    , mcraVolumeId+    , mcraSource+    , mcraNonce+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.myconfig.requestAccess@ method which the+-- 'MyConfigRequestAccess' 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++-- | Request concurrent and download access restrictions.+--+-- /See:/ 'myConfigRequestAccess' smart constructor.+data MyConfigRequestAccess = MyConfigRequestAccess+    { _mcraCpksver      :: !Text+    , _mcraLocale       :: !(Maybe Text)+    , _mcraLicenseTypes :: !(Maybe MyConfigRequestAccessLicenseTypes)+    , _mcraVolumeId     :: !Text+    , _mcraSource       :: !Text+    , _mcraNonce        :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyConfigRequestAccess' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mcraCpksver'+--+-- * 'mcraLocale'+--+-- * 'mcraLicenseTypes'+--+-- * 'mcraVolumeId'+--+-- * 'mcraSource'+--+-- * 'mcraNonce'+myConfigRequestAccess+    :: Text -- ^ 'mcraCpksver'+    -> Text -- ^ 'mcraVolumeId'+    -> Text -- ^ 'mcraSource'+    -> Text -- ^ 'mcraNonce'+    -> MyConfigRequestAccess+myConfigRequestAccess pMcraCpksver_ pMcraVolumeId_ pMcraSource_ pMcraNonce_ =+    MyConfigRequestAccess+    { _mcraCpksver = pMcraCpksver_+    , _mcraLocale = Nothing+    , _mcraLicenseTypes = Nothing+    , _mcraVolumeId = pMcraVolumeId_+    , _mcraSource = pMcraSource_+    , _mcraNonce = pMcraNonce_+    }++-- | The device\/version ID from which to request the restrictions.+mcraCpksver :: Lens' MyConfigRequestAccess Text+mcraCpksver+  = lens _mcraCpksver (\ s a -> s{_mcraCpksver = a})++-- | ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.+mcraLocale :: Lens' MyConfigRequestAccess (Maybe Text)+mcraLocale+  = lens _mcraLocale (\ s a -> s{_mcraLocale = a})++-- | The type of access license to request. If not specified, the default is+-- BOTH.+mcraLicenseTypes :: Lens' MyConfigRequestAccess (Maybe MyConfigRequestAccessLicenseTypes)+mcraLicenseTypes+  = lens _mcraLicenseTypes+      (\ s a -> s{_mcraLicenseTypes = a})++-- | The volume to request concurrent\/download restrictions for.+mcraVolumeId :: Lens' MyConfigRequestAccess Text+mcraVolumeId+  = lens _mcraVolumeId (\ s a -> s{_mcraVolumeId = a})++-- | String to identify the originator of this request.+mcraSource :: Lens' MyConfigRequestAccess Text+mcraSource+  = lens _mcraSource (\ s a -> s{_mcraSource = a})++-- | The client nonce value.+mcraNonce :: Lens' MyConfigRequestAccess Text+mcraNonce+  = lens _mcraNonce (\ s a -> s{_mcraNonce = a})++instance GoogleRequest MyConfigRequestAccess where+        type Rs MyConfigRequestAccess = RequestAccess+        requestClient MyConfigRequestAccess{..}+          = go (Just _mcraSource) (Just _mcraVolumeId)+              (Just _mcraNonce)+              (Just _mcraCpksver)+              _mcraLocale+              _mcraLicenseTypes+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy MyConfigRequestAccessResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyConfig/SyncVolumeLicenses.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Request downloaded content access for specified volumes on the My eBooks+-- shelf.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.myconfig.syncVolumeLicenses@.+module Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses+    (+    -- * REST Resource+      MyConfigSyncVolumeLicensesResource++    -- * Creating a Request+    , myConfigSyncVolumeLicenses+    , MyConfigSyncVolumeLicenses++    -- * Request Lenses+    , mcsvlCpksver+    , mcsvlLocale+    , mcsvlVolumeIds+    , mcsvlFeatures+    , mcsvlSource+    , mcsvlShowPreOrders+    , mcsvlNonce+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.myconfig.syncVolumeLicenses@ method which the+-- 'MyConfigSyncVolumeLicenses' request conforms to.+type MyConfigSyncVolumeLicensesResource =+     "books" :>+       "v1" :>+         "myconfig" :>+           "syncVolumeLicenses" :>+             QueryParam "source" Text :>+               QueryParam "nonce" Text :>+                 QueryParam "cpksver" Text :>+                   QueryParam "locale" Text :>+                     QueryParams "volumeIds" Text :>+                       QueryParams "features"+                         MyConfigSyncVolumeLicensesFeatures+                         :>+                         QueryParam "showPreorders" Bool :>+                           QueryParam "alt" AltJSON :> Post '[JSON] Volumes++-- | Request downloaded content access for specified volumes on the My eBooks+-- shelf.+--+-- /See:/ 'myConfigSyncVolumeLicenses' smart constructor.+data MyConfigSyncVolumeLicenses = MyConfigSyncVolumeLicenses+    { _mcsvlCpksver       :: !Text+    , _mcsvlLocale        :: !(Maybe Text)+    , _mcsvlVolumeIds     :: !(Maybe [Text])+    , _mcsvlFeatures      :: !(Maybe [MyConfigSyncVolumeLicensesFeatures])+    , _mcsvlSource        :: !Text+    , _mcsvlShowPreOrders :: !(Maybe Bool)+    , _mcsvlNonce         :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyConfigSyncVolumeLicenses' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mcsvlCpksver'+--+-- * 'mcsvlLocale'+--+-- * 'mcsvlVolumeIds'+--+-- * 'mcsvlFeatures'+--+-- * 'mcsvlSource'+--+-- * 'mcsvlShowPreOrders'+--+-- * 'mcsvlNonce'+myConfigSyncVolumeLicenses+    :: Text -- ^ 'mcsvlCpksver'+    -> Text -- ^ 'mcsvlSource'+    -> Text -- ^ 'mcsvlNonce'+    -> MyConfigSyncVolumeLicenses+myConfigSyncVolumeLicenses pMcsvlCpksver_ pMcsvlSource_ pMcsvlNonce_ =+    MyConfigSyncVolumeLicenses+    { _mcsvlCpksver = pMcsvlCpksver_+    , _mcsvlLocale = Nothing+    , _mcsvlVolumeIds = Nothing+    , _mcsvlFeatures = Nothing+    , _mcsvlSource = pMcsvlSource_+    , _mcsvlShowPreOrders = Nothing+    , _mcsvlNonce = pMcsvlNonce_+    }++-- | The device\/version ID from which to release the restriction.+mcsvlCpksver :: Lens' MyConfigSyncVolumeLicenses Text+mcsvlCpksver+  = lens _mcsvlCpksver (\ s a -> s{_mcsvlCpksver = a})++-- | ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.+mcsvlLocale :: Lens' MyConfigSyncVolumeLicenses (Maybe Text)+mcsvlLocale+  = lens _mcsvlLocale (\ s a -> s{_mcsvlLocale = a})++-- | The volume(s) to request download restrictions for.+mcsvlVolumeIds :: Lens' MyConfigSyncVolumeLicenses [Text]+mcsvlVolumeIds+  = lens _mcsvlVolumeIds+      (\ s a -> s{_mcsvlVolumeIds = a})+      . _Default+      . _Coerce++-- | List of features supported by the client, i.e., \'RENTALS\'+mcsvlFeatures :: Lens' MyConfigSyncVolumeLicenses [MyConfigSyncVolumeLicensesFeatures]+mcsvlFeatures+  = lens _mcsvlFeatures+      (\ s a -> s{_mcsvlFeatures = a})+      . _Default+      . _Coerce++-- | String to identify the originator of this request.+mcsvlSource :: Lens' MyConfigSyncVolumeLicenses Text+mcsvlSource+  = lens _mcsvlSource (\ s a -> s{_mcsvlSource = a})++-- | Set to true to show pre-ordered books. Defaults to false.+mcsvlShowPreOrders :: Lens' MyConfigSyncVolumeLicenses (Maybe Bool)+mcsvlShowPreOrders+  = lens _mcsvlShowPreOrders+      (\ s a -> s{_mcsvlShowPreOrders = a})++-- | The client nonce value.+mcsvlNonce :: Lens' MyConfigSyncVolumeLicenses Text+mcsvlNonce+  = lens _mcsvlNonce (\ s a -> s{_mcsvlNonce = a})++instance GoogleRequest MyConfigSyncVolumeLicenses+         where+        type Rs MyConfigSyncVolumeLicenses = Volumes+        requestClient MyConfigSyncVolumeLicenses{..}+          = go (Just _mcsvlSource) (Just _mcsvlNonce)+              (Just _mcsvlCpksver)+              _mcsvlLocale+              (_mcsvlVolumeIds ^. _Default)+              (_mcsvlFeatures ^. _Default)+              _mcsvlShowPreOrders+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy MyConfigSyncVolumeLicensesResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyConfig/UpdateUserSettings.hs view
@@ -0,0 +1,90 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyConfig.UpdateUserSettings+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- 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.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.myconfig.updateUserSettings@.+module Network.Google.Resource.Books.MyConfig.UpdateUserSettings+    (+    -- * REST Resource+      MyConfigUpdateUserSettingsResource++    -- * Creating a Request+    , myConfigUpdateUserSettings+    , MyConfigUpdateUserSettings++    -- * Request Lenses+    , mcuusPayload+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.myconfig.updateUserSettings@ method which the+-- 'MyConfigUpdateUserSettings' request conforms to.+type MyConfigUpdateUserSettingsResource =+     "books" :>+       "v1" :>+         "myconfig" :>+           "updateUserSettings" :>+             QueryParam "alt" AltJSON :>+               ReqBody '[JSON] UserSettings :>+                 Post '[JSON] UserSettings++-- | 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.+--+-- /See:/ 'myConfigUpdateUserSettings' smart constructor.+newtype MyConfigUpdateUserSettings = MyConfigUpdateUserSettings+    { _mcuusPayload :: UserSettings+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyConfigUpdateUserSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mcuusPayload'+myConfigUpdateUserSettings+    :: UserSettings -- ^ 'mcuusPayload'+    -> MyConfigUpdateUserSettings+myConfigUpdateUserSettings pMcuusPayload_ =+    MyConfigUpdateUserSettings+    { _mcuusPayload = pMcuusPayload_+    }++-- | Multipart request metadata.+mcuusPayload :: Lens' MyConfigUpdateUserSettings UserSettings+mcuusPayload+  = lens _mcuusPayload (\ s a -> s{_mcuusPayload = a})++instance GoogleRequest MyConfigUpdateUserSettings+         where+        type Rs MyConfigUpdateUserSettings = UserSettings+        requestClient MyConfigUpdateUserSettings{..}+          = go (Just AltJSON) _mcuusPayload booksService+          where go+                  = buildClient+                      (Proxy :: Proxy MyConfigUpdateUserSettingsResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyLibrary/Annotations/Delete.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyLibrary.Annotations.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an annotation.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.mylibrary.annotations.delete@.+module Network.Google.Resource.Books.MyLibrary.Annotations.Delete+    (+    -- * REST Resource+      MyLibraryAnnotationsDeleteResource++    -- * Creating a Request+    , myLibraryAnnotationsDelete+    , MyLibraryAnnotationsDelete++    -- * Request Lenses+    , mladAnnotationId+    , mladSource+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.mylibrary.annotations.delete@ method which the+-- 'MyLibraryAnnotationsDelete' request conforms to.+type MyLibraryAnnotationsDeleteResource =+     "books" :>+       "v1" :>+         "mylibrary" :>+           "annotations" :>+             Capture "annotationId" Text :>+               QueryParam "source" Text :>+                 QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes an annotation.+--+-- /See:/ 'myLibraryAnnotationsDelete' smart constructor.+data MyLibraryAnnotationsDelete = MyLibraryAnnotationsDelete+    { _mladAnnotationId :: !Text+    , _mladSource       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyLibraryAnnotationsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mladAnnotationId'+--+-- * 'mladSource'+myLibraryAnnotationsDelete+    :: Text -- ^ 'mladAnnotationId'+    -> MyLibraryAnnotationsDelete+myLibraryAnnotationsDelete pMladAnnotationId_ =+    MyLibraryAnnotationsDelete+    { _mladAnnotationId = pMladAnnotationId_+    , _mladSource = Nothing+    }++-- | The ID for the annotation to delete.+mladAnnotationId :: Lens' MyLibraryAnnotationsDelete Text+mladAnnotationId+  = lens _mladAnnotationId+      (\ s a -> s{_mladAnnotationId = a})++-- | String to identify the originator of this request.+mladSource :: Lens' MyLibraryAnnotationsDelete (Maybe Text)+mladSource+  = lens _mladSource (\ s a -> s{_mladSource = a})++instance GoogleRequest MyLibraryAnnotationsDelete+         where+        type Rs MyLibraryAnnotationsDelete = ()+        requestClient MyLibraryAnnotationsDelete{..}+          = go _mladAnnotationId _mladSource (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy MyLibraryAnnotationsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyLibrary/Annotations/Insert.hs view
@@ -0,0 +1,124 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyLibrary.Annotations.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Inserts a new annotation.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.mylibrary.annotations.insert@.+module Network.Google.Resource.Books.MyLibrary.Annotations.Insert+    (+    -- * REST Resource+      MyLibraryAnnotationsInsertResource++    -- * Creating a Request+    , myLibraryAnnotationsInsert+    , MyLibraryAnnotationsInsert++    -- * Request Lenses+    , mlaiCountry+    , mlaiPayload+    , mlaiShowOnlySummaryInResponse+    , mlaiSource+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.mylibrary.annotations.insert@ method which the+-- 'MyLibraryAnnotationsInsert' 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++-- | Inserts a new annotation.+--+-- /See:/ 'myLibraryAnnotationsInsert' smart constructor.+data MyLibraryAnnotationsInsert = MyLibraryAnnotationsInsert+    { _mlaiCountry                   :: !(Maybe Text)+    , _mlaiPayload                   :: !Annotation+    , _mlaiShowOnlySummaryInResponse :: !(Maybe Bool)+    , _mlaiSource                    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyLibraryAnnotationsInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mlaiCountry'+--+-- * 'mlaiPayload'+--+-- * 'mlaiShowOnlySummaryInResponse'+--+-- * 'mlaiSource'+myLibraryAnnotationsInsert+    :: Annotation -- ^ 'mlaiPayload'+    -> MyLibraryAnnotationsInsert+myLibraryAnnotationsInsert pMlaiPayload_ =+    MyLibraryAnnotationsInsert+    { _mlaiCountry = Nothing+    , _mlaiPayload = pMlaiPayload_+    , _mlaiShowOnlySummaryInResponse = Nothing+    , _mlaiSource = Nothing+    }++-- | ISO-3166-1 code to override the IP-based location.+mlaiCountry :: Lens' MyLibraryAnnotationsInsert (Maybe Text)+mlaiCountry+  = lens _mlaiCountry (\ s a -> s{_mlaiCountry = a})++-- | Multipart request metadata.+mlaiPayload :: Lens' MyLibraryAnnotationsInsert Annotation+mlaiPayload+  = lens _mlaiPayload (\ s a -> s{_mlaiPayload = a})++-- | Requests that only the summary of the specified layer be provided in the+-- response.+mlaiShowOnlySummaryInResponse :: Lens' MyLibraryAnnotationsInsert (Maybe Bool)+mlaiShowOnlySummaryInResponse+  = lens _mlaiShowOnlySummaryInResponse+      (\ s a -> s{_mlaiShowOnlySummaryInResponse = a})++-- | String to identify the originator of this request.+mlaiSource :: Lens' MyLibraryAnnotationsInsert (Maybe Text)+mlaiSource+  = lens _mlaiSource (\ s a -> s{_mlaiSource = a})++instance GoogleRequest MyLibraryAnnotationsInsert+         where+        type Rs MyLibraryAnnotationsInsert = Annotation+        requestClient MyLibraryAnnotationsInsert{..}+          = go _mlaiCountry _mlaiShowOnlySummaryInResponse+              _mlaiSource+              (Just AltJSON)+              _mlaiPayload+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy MyLibraryAnnotationsInsertResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyLibrary/Annotations/List.hs view
@@ -0,0 +1,205 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyLibrary.Annotations.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a list of annotations, possibly filtered.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.mylibrary.annotations.list@.+module Network.Google.Resource.Books.MyLibrary.Annotations.List+    (+    -- * REST Resource+      MyLibraryAnnotationsListResource++    -- * Creating a Request+    , myLibraryAnnotationsList+    , MyLibraryAnnotationsList++    -- * Request Lenses+    , mlalContentVersion+    , mlalShowDeleted+    , mlalUpdatedMax+    , mlalUpdatedMin+    , mlalLayerIds+    , mlalVolumeId+    , mlalSource+    , mlalPageToken+    , mlalLayerId+    , mlalMaxResults+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.mylibrary.annotations.list@ method which the+-- 'MyLibraryAnnotationsList' 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++-- | Retrieves a list of annotations, possibly filtered.+--+-- /See:/ 'myLibraryAnnotationsList' smart constructor.+data MyLibraryAnnotationsList = MyLibraryAnnotationsList+    { _mlalContentVersion :: !(Maybe Text)+    , _mlalShowDeleted    :: !(Maybe Bool)+    , _mlalUpdatedMax     :: !(Maybe Text)+    , _mlalUpdatedMin     :: !(Maybe Text)+    , _mlalLayerIds       :: !(Maybe [Text])+    , _mlalVolumeId       :: !(Maybe Text)+    , _mlalSource         :: !(Maybe Text)+    , _mlalPageToken      :: !(Maybe Text)+    , _mlalLayerId        :: !(Maybe Text)+    , _mlalMaxResults     :: !(Maybe (Textual Word32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyLibraryAnnotationsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mlalContentVersion'+--+-- * 'mlalShowDeleted'+--+-- * 'mlalUpdatedMax'+--+-- * 'mlalUpdatedMin'+--+-- * 'mlalLayerIds'+--+-- * 'mlalVolumeId'+--+-- * 'mlalSource'+--+-- * 'mlalPageToken'+--+-- * 'mlalLayerId'+--+-- * 'mlalMaxResults'+myLibraryAnnotationsList+    :: MyLibraryAnnotationsList+myLibraryAnnotationsList =+    MyLibraryAnnotationsList+    { _mlalContentVersion = Nothing+    , _mlalShowDeleted = Nothing+    , _mlalUpdatedMax = Nothing+    , _mlalUpdatedMin = Nothing+    , _mlalLayerIds = Nothing+    , _mlalVolumeId = Nothing+    , _mlalSource = Nothing+    , _mlalPageToken = Nothing+    , _mlalLayerId = Nothing+    , _mlalMaxResults = Nothing+    }++-- | The content version for the requested volume.+mlalContentVersion :: Lens' MyLibraryAnnotationsList (Maybe Text)+mlalContentVersion+  = lens _mlalContentVersion+      (\ s a -> s{_mlalContentVersion = a})++-- | Set to true to return deleted annotations. updatedMin must be in the+-- request to use this. Defaults to false.+mlalShowDeleted :: Lens' MyLibraryAnnotationsList (Maybe Bool)+mlalShowDeleted+  = lens _mlalShowDeleted+      (\ s a -> s{_mlalShowDeleted = a})++-- | RFC 3339 timestamp to restrict to items updated prior to this timestamp+-- (exclusive).+mlalUpdatedMax :: Lens' MyLibraryAnnotationsList (Maybe Text)+mlalUpdatedMax+  = lens _mlalUpdatedMax+      (\ s a -> s{_mlalUpdatedMax = a})++-- | RFC 3339 timestamp to restrict to items updated since this timestamp+-- (inclusive).+mlalUpdatedMin :: Lens' MyLibraryAnnotationsList (Maybe Text)+mlalUpdatedMin+  = lens _mlalUpdatedMin+      (\ s a -> s{_mlalUpdatedMin = a})++-- | The layer ID(s) to limit annotation by.+mlalLayerIds :: Lens' MyLibraryAnnotationsList [Text]+mlalLayerIds+  = lens _mlalLayerIds (\ s a -> s{_mlalLayerIds = a})+      . _Default+      . _Coerce++-- | The volume to restrict annotations to.+mlalVolumeId :: Lens' MyLibraryAnnotationsList (Maybe Text)+mlalVolumeId+  = lens _mlalVolumeId (\ s a -> s{_mlalVolumeId = a})++-- | String to identify the originator of this request.+mlalSource :: Lens' MyLibraryAnnotationsList (Maybe Text)+mlalSource+  = lens _mlalSource (\ s a -> s{_mlalSource = a})++-- | The value of the nextToken from the previous page.+mlalPageToken :: Lens' MyLibraryAnnotationsList (Maybe Text)+mlalPageToken+  = lens _mlalPageToken+      (\ s a -> s{_mlalPageToken = a})++-- | The layer ID to limit annotation by.+mlalLayerId :: Lens' MyLibraryAnnotationsList (Maybe Text)+mlalLayerId+  = lens _mlalLayerId (\ s a -> s{_mlalLayerId = a})++-- | Maximum number of results to return+mlalMaxResults :: Lens' MyLibraryAnnotationsList (Maybe Word32)+mlalMaxResults+  = lens _mlalMaxResults+      (\ s a -> s{_mlalMaxResults = a})+      . mapping _Coerce++instance GoogleRequest MyLibraryAnnotationsList where+        type Rs MyLibraryAnnotationsList = Annotations+        requestClient MyLibraryAnnotationsList{..}+          = go _mlalContentVersion _mlalShowDeleted+              _mlalUpdatedMax+              _mlalUpdatedMin+              (_mlalLayerIds ^. _Default)+              _mlalVolumeId+              _mlalSource+              _mlalPageToken+              _mlalLayerId+              _mlalMaxResults+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy MyLibraryAnnotationsListResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyLibrary/Annotations/Summary.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyLibrary.Annotations.Summary+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the summary of specified layers.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.mylibrary.annotations.summary@.+module Network.Google.Resource.Books.MyLibrary.Annotations.Summary+    (+    -- * REST Resource+      MyLibraryAnnotationsSummaryResource++    -- * Creating a Request+    , myLibraryAnnotationsSummary+    , MyLibraryAnnotationsSummary++    -- * Request Lenses+    , mlasLayerIds+    , mlasVolumeId+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.mylibrary.annotations.summary@ method which the+-- 'MyLibraryAnnotationsSummary' request conforms to.+type MyLibraryAnnotationsSummaryResource =+     "books" :>+       "v1" :>+         "mylibrary" :>+           "annotations" :>+             "summary" :>+               QueryParams "layerIds" Text :>+                 QueryParam "volumeId" Text :>+                   QueryParam "alt" AltJSON :>+                     Post '[JSON] AnnotationsSummary++-- | Gets the summary of specified layers.+--+-- /See:/ 'myLibraryAnnotationsSummary' smart constructor.+data MyLibraryAnnotationsSummary = MyLibraryAnnotationsSummary+    { _mlasLayerIds :: ![Text]+    , _mlasVolumeId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyLibraryAnnotationsSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mlasLayerIds'+--+-- * 'mlasVolumeId'+myLibraryAnnotationsSummary+    :: [Text] -- ^ 'mlasLayerIds'+    -> Text -- ^ 'mlasVolumeId'+    -> MyLibraryAnnotationsSummary+myLibraryAnnotationsSummary pMlasLayerIds_ pMlasVolumeId_ =+    MyLibraryAnnotationsSummary+    { _mlasLayerIds = _Coerce # pMlasLayerIds_+    , _mlasVolumeId = pMlasVolumeId_+    }++-- | Array of layer IDs to get the summary for.+mlasLayerIds :: Lens' MyLibraryAnnotationsSummary [Text]+mlasLayerIds+  = lens _mlasLayerIds (\ s a -> s{_mlasLayerIds = a})+      . _Coerce++-- | Volume id to get the summary for.+mlasVolumeId :: Lens' MyLibraryAnnotationsSummary Text+mlasVolumeId+  = lens _mlasVolumeId (\ s a -> s{_mlasVolumeId = a})++instance GoogleRequest MyLibraryAnnotationsSummary+         where+        type Rs MyLibraryAnnotationsSummary =+             AnnotationsSummary+        requestClient MyLibraryAnnotationsSummary{..}+          = go _mlasLayerIds (Just _mlasVolumeId)+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy MyLibraryAnnotationsSummaryResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyLibrary/Annotations/Update.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyLibrary.Annotations.Update+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing annotation.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.mylibrary.annotations.update@.+module Network.Google.Resource.Books.MyLibrary.Annotations.Update+    (+    -- * REST Resource+      MyLibraryAnnotationsUpdateResource++    -- * Creating a Request+    , myLibraryAnnotationsUpdate+    , MyLibraryAnnotationsUpdate++    -- * Request Lenses+    , mlauPayload+    , mlauAnnotationId+    , mlauSource+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.mylibrary.annotations.update@ method which the+-- 'MyLibraryAnnotationsUpdate' request conforms to.+type MyLibraryAnnotationsUpdateResource =+     "books" :>+       "v1" :>+         "mylibrary" :>+           "annotations" :>+             Capture "annotationId" Text :>+               QueryParam "source" Text :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] Annotation :> Put '[JSON] Annotation++-- | Updates an existing annotation.+--+-- /See:/ 'myLibraryAnnotationsUpdate' smart constructor.+data MyLibraryAnnotationsUpdate = MyLibraryAnnotationsUpdate+    { _mlauPayload      :: !Annotation+    , _mlauAnnotationId :: !Text+    , _mlauSource       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyLibraryAnnotationsUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mlauPayload'+--+-- * 'mlauAnnotationId'+--+-- * 'mlauSource'+myLibraryAnnotationsUpdate+    :: Annotation -- ^ 'mlauPayload'+    -> Text -- ^ 'mlauAnnotationId'+    -> MyLibraryAnnotationsUpdate+myLibraryAnnotationsUpdate pMlauPayload_ pMlauAnnotationId_ =+    MyLibraryAnnotationsUpdate+    { _mlauPayload = pMlauPayload_+    , _mlauAnnotationId = pMlauAnnotationId_+    , _mlauSource = Nothing+    }++-- | Multipart request metadata.+mlauPayload :: Lens' MyLibraryAnnotationsUpdate Annotation+mlauPayload+  = lens _mlauPayload (\ s a -> s{_mlauPayload = a})++-- | The ID for the annotation to update.+mlauAnnotationId :: Lens' MyLibraryAnnotationsUpdate Text+mlauAnnotationId+  = lens _mlauAnnotationId+      (\ s a -> s{_mlauAnnotationId = a})++-- | String to identify the originator of this request.+mlauSource :: Lens' MyLibraryAnnotationsUpdate (Maybe Text)+mlauSource+  = lens _mlauSource (\ s a -> s{_mlauSource = a})++instance GoogleRequest MyLibraryAnnotationsUpdate+         where+        type Rs MyLibraryAnnotationsUpdate = Annotation+        requestClient MyLibraryAnnotationsUpdate{..}+          = go _mlauAnnotationId _mlauSource (Just AltJSON)+              _mlauPayload+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy MyLibraryAnnotationsUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/AddVolume.hs view
@@ -0,0 +1,127 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds a volume to a bookshelf.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.mylibrary.bookshelves.addVolume@.+module Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume+    (+    -- * REST Resource+      MyLibraryBookshelvesAddVolumeResource++    -- * Creating a Request+    , myLibraryBookshelvesAddVolume+    , MyLibraryBookshelvesAddVolume++    -- * Request Lenses+    , mlbavReason+    , mlbavShelf+    , mlbavVolumeId+    , mlbavSource+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.mylibrary.bookshelves.addVolume@ method which the+-- 'MyLibraryBookshelvesAddVolume' 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] ()++-- | Adds a volume to a bookshelf.+--+-- /See:/ 'myLibraryBookshelvesAddVolume' smart constructor.+data MyLibraryBookshelvesAddVolume = MyLibraryBookshelvesAddVolume+    { _mlbavReason   :: !(Maybe MyLibraryBookshelvesAddVolumeReason)+    , _mlbavShelf    :: !Text+    , _mlbavVolumeId :: !Text+    , _mlbavSource   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyLibraryBookshelvesAddVolume' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mlbavReason'+--+-- * 'mlbavShelf'+--+-- * 'mlbavVolumeId'+--+-- * 'mlbavSource'+myLibraryBookshelvesAddVolume+    :: Text -- ^ 'mlbavShelf'+    -> Text -- ^ 'mlbavVolumeId'+    -> MyLibraryBookshelvesAddVolume+myLibraryBookshelvesAddVolume pMlbavShelf_ pMlbavVolumeId_ =+    MyLibraryBookshelvesAddVolume+    { _mlbavReason = Nothing+    , _mlbavShelf = pMlbavShelf_+    , _mlbavVolumeId = pMlbavVolumeId_+    , _mlbavSource = Nothing+    }++-- | The reason for which the book is added to the library.+mlbavReason :: Lens' MyLibraryBookshelvesAddVolume (Maybe MyLibraryBookshelvesAddVolumeReason)+mlbavReason+  = lens _mlbavReason (\ s a -> s{_mlbavReason = a})++-- | ID of bookshelf to which to add a volume.+mlbavShelf :: Lens' MyLibraryBookshelvesAddVolume Text+mlbavShelf+  = lens _mlbavShelf (\ s a -> s{_mlbavShelf = a})++-- | ID of volume to add.+mlbavVolumeId :: Lens' MyLibraryBookshelvesAddVolume Text+mlbavVolumeId+  = lens _mlbavVolumeId+      (\ s a -> s{_mlbavVolumeId = a})++-- | String to identify the originator of this request.+mlbavSource :: Lens' MyLibraryBookshelvesAddVolume (Maybe Text)+mlbavSource+  = lens _mlbavSource (\ s a -> s{_mlbavSource = a})++instance GoogleRequest MyLibraryBookshelvesAddVolume+         where+        type Rs MyLibraryBookshelvesAddVolume = ()+        requestClient MyLibraryBookshelvesAddVolume{..}+          = go _mlbavShelf (Just _mlbavVolumeId) _mlbavReason+              _mlbavSource+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy MyLibraryBookshelvesAddVolumeResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/ClearVolumes.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Clears all volumes from a bookshelf.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.mylibrary.bookshelves.clearVolumes@.+module Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes+    (+    -- * REST Resource+      MyLibraryBookshelvesClearVolumesResource++    -- * Creating a Request+    , myLibraryBookshelvesClearVolumes+    , MyLibraryBookshelvesClearVolumes++    -- * Request Lenses+    , mlbcvShelf+    , mlbcvSource+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.mylibrary.bookshelves.clearVolumes@ method which the+-- 'MyLibraryBookshelvesClearVolumes' request conforms to.+type MyLibraryBookshelvesClearVolumesResource =+     "books" :>+       "v1" :>+         "mylibrary" :>+           "bookshelves" :>+             Capture "shelf" Text :>+               "clearVolumes" :>+                 QueryParam "source" Text :>+                   QueryParam "alt" AltJSON :> Post '[JSON] ()++-- | Clears all volumes from a bookshelf.+--+-- /See:/ 'myLibraryBookshelvesClearVolumes' smart constructor.+data MyLibraryBookshelvesClearVolumes = MyLibraryBookshelvesClearVolumes+    { _mlbcvShelf  :: !Text+    , _mlbcvSource :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyLibraryBookshelvesClearVolumes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mlbcvShelf'+--+-- * 'mlbcvSource'+myLibraryBookshelvesClearVolumes+    :: Text -- ^ 'mlbcvShelf'+    -> MyLibraryBookshelvesClearVolumes+myLibraryBookshelvesClearVolumes pMlbcvShelf_ =+    MyLibraryBookshelvesClearVolumes+    { _mlbcvShelf = pMlbcvShelf_+    , _mlbcvSource = Nothing+    }++-- | ID of bookshelf from which to remove a volume.+mlbcvShelf :: Lens' MyLibraryBookshelvesClearVolumes Text+mlbcvShelf+  = lens _mlbcvShelf (\ s a -> s{_mlbcvShelf = a})++-- | String to identify the originator of this request.+mlbcvSource :: Lens' MyLibraryBookshelvesClearVolumes (Maybe Text)+mlbcvSource+  = lens _mlbcvSource (\ s a -> s{_mlbcvSource = a})++instance GoogleRequest+         MyLibraryBookshelvesClearVolumes where+        type Rs MyLibraryBookshelvesClearVolumes = ()+        requestClient MyLibraryBookshelvesClearVolumes{..}+          = go _mlbcvShelf _mlbcvSource (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy MyLibraryBookshelvesClearVolumesResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/Get.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyLibrary.Bookshelves.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves metadata for a specific bookshelf belonging to the+-- authenticated user.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.mylibrary.bookshelves.get@.+module Network.Google.Resource.Books.MyLibrary.Bookshelves.Get+    (+    -- * REST Resource+      MyLibraryBookshelvesGetResource++    -- * Creating a Request+    , myLibraryBookshelvesGet+    , MyLibraryBookshelvesGet++    -- * Request Lenses+    , mlbgShelf+    , mlbgSource+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.mylibrary.bookshelves.get@ method which the+-- 'MyLibraryBookshelvesGet' request conforms to.+type MyLibraryBookshelvesGetResource =+     "books" :>+       "v1" :>+         "mylibrary" :>+           "bookshelves" :>+             Capture "shelf" Text :>+               QueryParam "source" Text :>+                 QueryParam "alt" AltJSON :> Get '[JSON] Bookshelf++-- | Retrieves metadata for a specific bookshelf belonging to the+-- authenticated user.+--+-- /See:/ 'myLibraryBookshelvesGet' smart constructor.+data MyLibraryBookshelvesGet = MyLibraryBookshelvesGet+    { _mlbgShelf  :: !Text+    , _mlbgSource :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyLibraryBookshelvesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mlbgShelf'+--+-- * 'mlbgSource'+myLibraryBookshelvesGet+    :: Text -- ^ 'mlbgShelf'+    -> MyLibraryBookshelvesGet+myLibraryBookshelvesGet pMlbgShelf_ =+    MyLibraryBookshelvesGet+    { _mlbgShelf = pMlbgShelf_+    , _mlbgSource = Nothing+    }++-- | ID of bookshelf to retrieve.+mlbgShelf :: Lens' MyLibraryBookshelvesGet Text+mlbgShelf+  = lens _mlbgShelf (\ s a -> s{_mlbgShelf = a})++-- | String to identify the originator of this request.+mlbgSource :: Lens' MyLibraryBookshelvesGet (Maybe Text)+mlbgSource+  = lens _mlbgSource (\ s a -> s{_mlbgSource = a})++instance GoogleRequest MyLibraryBookshelvesGet where+        type Rs MyLibraryBookshelvesGet = Bookshelf+        requestClient MyLibraryBookshelvesGet{..}+          = go _mlbgShelf _mlbgSource (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy MyLibraryBookshelvesGetResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/List.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyLibrary.Bookshelves.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a list of bookshelves belonging to the authenticated user.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.mylibrary.bookshelves.list@.+module Network.Google.Resource.Books.MyLibrary.Bookshelves.List+    (+    -- * REST Resource+      MyLibraryBookshelvesListResource++    -- * Creating a Request+    , myLibraryBookshelvesList+    , MyLibraryBookshelvesList++    -- * Request Lenses+    , mlblSource+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.mylibrary.bookshelves.list@ method which the+-- 'MyLibraryBookshelvesList' request conforms to.+type MyLibraryBookshelvesListResource =+     "books" :>+       "v1" :>+         "mylibrary" :>+           "bookshelves" :>+             QueryParam "source" Text :>+               QueryParam "alt" AltJSON :> Get '[JSON] Bookshelves++-- | Retrieves a list of bookshelves belonging to the authenticated user.+--+-- /See:/ 'myLibraryBookshelvesList' smart constructor.+newtype MyLibraryBookshelvesList = MyLibraryBookshelvesList+    { _mlblSource :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyLibraryBookshelvesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mlblSource'+myLibraryBookshelvesList+    :: MyLibraryBookshelvesList+myLibraryBookshelvesList =+    MyLibraryBookshelvesList+    { _mlblSource = Nothing+    }++-- | String to identify the originator of this request.+mlblSource :: Lens' MyLibraryBookshelvesList (Maybe Text)+mlblSource+  = lens _mlblSource (\ s a -> s{_mlblSource = a})++instance GoogleRequest MyLibraryBookshelvesList where+        type Rs MyLibraryBookshelvesList = Bookshelves+        requestClient MyLibraryBookshelvesList{..}+          = go _mlblSource (Just AltJSON) booksService+          where go+                  = buildClient+                      (Proxy :: Proxy MyLibraryBookshelvesListResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/MoveVolume.hs view
@@ -0,0 +1,130 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Moves a volume within a bookshelf.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.mylibrary.bookshelves.moveVolume@.+module Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume+    (+    -- * REST Resource+      MyLibraryBookshelvesMoveVolumeResource++    -- * Creating a Request+    , myLibraryBookshelvesMoveVolume+    , MyLibraryBookshelvesMoveVolume++    -- * Request Lenses+    , mlbmvShelf+    , mlbmvVolumeId+    , mlbmvSource+    , mlbmvVolumePosition+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.mylibrary.bookshelves.moveVolume@ method which the+-- 'MyLibraryBookshelvesMoveVolume' 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] ()++-- | Moves a volume within a bookshelf.+--+-- /See:/ 'myLibraryBookshelvesMoveVolume' smart constructor.+data MyLibraryBookshelvesMoveVolume = MyLibraryBookshelvesMoveVolume+    { _mlbmvShelf          :: !Text+    , _mlbmvVolumeId       :: !Text+    , _mlbmvSource         :: !(Maybe Text)+    , _mlbmvVolumePosition :: !(Textual Int32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyLibraryBookshelvesMoveVolume' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mlbmvShelf'+--+-- * 'mlbmvVolumeId'+--+-- * 'mlbmvSource'+--+-- * 'mlbmvVolumePosition'+myLibraryBookshelvesMoveVolume+    :: Text -- ^ 'mlbmvShelf'+    -> Text -- ^ 'mlbmvVolumeId'+    -> Int32 -- ^ 'mlbmvVolumePosition'+    -> MyLibraryBookshelvesMoveVolume+myLibraryBookshelvesMoveVolume pMlbmvShelf_ pMlbmvVolumeId_ pMlbmvVolumePosition_ =+    MyLibraryBookshelvesMoveVolume+    { _mlbmvShelf = pMlbmvShelf_+    , _mlbmvVolumeId = pMlbmvVolumeId_+    , _mlbmvSource = Nothing+    , _mlbmvVolumePosition = _Coerce # pMlbmvVolumePosition_+    }++-- | ID of bookshelf with the volume.+mlbmvShelf :: Lens' MyLibraryBookshelvesMoveVolume Text+mlbmvShelf+  = lens _mlbmvShelf (\ s a -> s{_mlbmvShelf = a})++-- | ID of volume to move.+mlbmvVolumeId :: Lens' MyLibraryBookshelvesMoveVolume Text+mlbmvVolumeId+  = lens _mlbmvVolumeId+      (\ s a -> s{_mlbmvVolumeId = a})++-- | String to identify the originator of this request.+mlbmvSource :: Lens' MyLibraryBookshelvesMoveVolume (Maybe Text)+mlbmvSource+  = lens _mlbmvSource (\ s a -> s{_mlbmvSource = a})++-- | 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+mlbmvVolumePosition+  = lens _mlbmvVolumePosition+      (\ s a -> s{_mlbmvVolumePosition = a})+      . _Coerce++instance GoogleRequest MyLibraryBookshelvesMoveVolume+         where+        type Rs MyLibraryBookshelvesMoveVolume = ()+        requestClient MyLibraryBookshelvesMoveVolume{..}+          = go _mlbmvShelf (Just _mlbmvVolumeId)+              (Just _mlbmvVolumePosition)+              _mlbmvSource+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy MyLibraryBookshelvesMoveVolumeResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/RemoveVolume.hs view
@@ -0,0 +1,127 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes a volume from a bookshelf.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.mylibrary.bookshelves.removeVolume@.+module Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume+    (+    -- * REST Resource+      MyLibraryBookshelvesRemoveVolumeResource++    -- * Creating a Request+    , myLibraryBookshelvesRemoveVolume+    , MyLibraryBookshelvesRemoveVolume++    -- * Request Lenses+    , mlbrvReason+    , mlbrvShelf+    , mlbrvVolumeId+    , mlbrvSource+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.mylibrary.bookshelves.removeVolume@ method which the+-- 'MyLibraryBookshelvesRemoveVolume' 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] ()++-- | Removes a volume from a bookshelf.+--+-- /See:/ 'myLibraryBookshelvesRemoveVolume' smart constructor.+data MyLibraryBookshelvesRemoveVolume = MyLibraryBookshelvesRemoveVolume+    { _mlbrvReason   :: !(Maybe MyLibraryBookshelvesRemoveVolumeReason)+    , _mlbrvShelf    :: !Text+    , _mlbrvVolumeId :: !Text+    , _mlbrvSource   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyLibraryBookshelvesRemoveVolume' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mlbrvReason'+--+-- * 'mlbrvShelf'+--+-- * 'mlbrvVolumeId'+--+-- * 'mlbrvSource'+myLibraryBookshelvesRemoveVolume+    :: Text -- ^ 'mlbrvShelf'+    -> Text -- ^ 'mlbrvVolumeId'+    -> MyLibraryBookshelvesRemoveVolume+myLibraryBookshelvesRemoveVolume pMlbrvShelf_ pMlbrvVolumeId_ =+    MyLibraryBookshelvesRemoveVolume+    { _mlbrvReason = Nothing+    , _mlbrvShelf = pMlbrvShelf_+    , _mlbrvVolumeId = pMlbrvVolumeId_+    , _mlbrvSource = Nothing+    }++-- | The reason for which the book is removed from the library.+mlbrvReason :: Lens' MyLibraryBookshelvesRemoveVolume (Maybe MyLibraryBookshelvesRemoveVolumeReason)+mlbrvReason+  = lens _mlbrvReason (\ s a -> s{_mlbrvReason = a})++-- | ID of bookshelf from which to remove a volume.+mlbrvShelf :: Lens' MyLibraryBookshelvesRemoveVolume Text+mlbrvShelf+  = lens _mlbrvShelf (\ s a -> s{_mlbrvShelf = a})++-- | ID of volume to remove.+mlbrvVolumeId :: Lens' MyLibraryBookshelvesRemoveVolume Text+mlbrvVolumeId+  = lens _mlbrvVolumeId+      (\ s a -> s{_mlbrvVolumeId = a})++-- | String to identify the originator of this request.+mlbrvSource :: Lens' MyLibraryBookshelvesRemoveVolume (Maybe Text)+mlbrvSource+  = lens _mlbrvSource (\ s a -> s{_mlbrvSource = a})++instance GoogleRequest+         MyLibraryBookshelvesRemoveVolume where+        type Rs MyLibraryBookshelvesRemoveVolume = ()+        requestClient MyLibraryBookshelvesRemoveVolume{..}+          = go _mlbrvShelf (Just _mlbrvVolumeId) _mlbrvReason+              _mlbrvSource+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy MyLibraryBookshelvesRemoveVolumeResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/Volumes/List.hs view
@@ -0,0 +1,177 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets volume information for volumes on a bookshelf.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.mylibrary.bookshelves.volumes.list@.+module Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List+    (+    -- * REST Resource+      MyLibraryBookshelvesVolumesListResource++    -- * Creating a Request+    , myLibraryBookshelvesVolumesList+    , MyLibraryBookshelvesVolumesList++    -- * Request Lenses+    , mlbvlCountry+    , mlbvlQ+    , mlbvlShelf+    , mlbvlSource+    , mlbvlProjection+    , mlbvlStartIndex+    , mlbvlMaxResults+    , mlbvlShowPreOrders+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.mylibrary.bookshelves.volumes.list@ method which the+-- 'MyLibraryBookshelvesVolumesList' 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++-- | Gets volume information for volumes on a bookshelf.+--+-- /See:/ 'myLibraryBookshelvesVolumesList' smart constructor.+data MyLibraryBookshelvesVolumesList = MyLibraryBookshelvesVolumesList+    { _mlbvlCountry       :: !(Maybe Text)+    , _mlbvlQ             :: !(Maybe Text)+    , _mlbvlShelf         :: !Text+    , _mlbvlSource        :: !(Maybe Text)+    , _mlbvlProjection    :: !(Maybe MyLibraryBookshelvesVolumesListProjection)+    , _mlbvlStartIndex    :: !(Maybe (Textual Word32))+    , _mlbvlMaxResults    :: !(Maybe (Textual Word32))+    , _mlbvlShowPreOrders :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyLibraryBookshelvesVolumesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mlbvlCountry'+--+-- * 'mlbvlQ'+--+-- * 'mlbvlShelf'+--+-- * 'mlbvlSource'+--+-- * 'mlbvlProjection'+--+-- * 'mlbvlStartIndex'+--+-- * 'mlbvlMaxResults'+--+-- * 'mlbvlShowPreOrders'+myLibraryBookshelvesVolumesList+    :: Text -- ^ 'mlbvlShelf'+    -> MyLibraryBookshelvesVolumesList+myLibraryBookshelvesVolumesList pMlbvlShelf_ =+    MyLibraryBookshelvesVolumesList+    { _mlbvlCountry = Nothing+    , _mlbvlQ = Nothing+    , _mlbvlShelf = pMlbvlShelf_+    , _mlbvlSource = Nothing+    , _mlbvlProjection = Nothing+    , _mlbvlStartIndex = Nothing+    , _mlbvlMaxResults = Nothing+    , _mlbvlShowPreOrders = Nothing+    }++-- | ISO-3166-1 code to override the IP-based location.+mlbvlCountry :: Lens' MyLibraryBookshelvesVolumesList (Maybe Text)+mlbvlCountry+  = lens _mlbvlCountry (\ s a -> s{_mlbvlCountry = a})++-- | Full-text search query string in this bookshelf.+mlbvlQ :: Lens' MyLibraryBookshelvesVolumesList (Maybe Text)+mlbvlQ = lens _mlbvlQ (\ s a -> s{_mlbvlQ = a})++-- | The bookshelf ID or name retrieve volumes for.+mlbvlShelf :: Lens' MyLibraryBookshelvesVolumesList Text+mlbvlShelf+  = lens _mlbvlShelf (\ s a -> s{_mlbvlShelf = a})++-- | String to identify the originator of this request.+mlbvlSource :: Lens' MyLibraryBookshelvesVolumesList (Maybe Text)+mlbvlSource+  = lens _mlbvlSource (\ s a -> s{_mlbvlSource = a})++-- | Restrict information returned to a set of selected fields.+mlbvlProjection :: Lens' MyLibraryBookshelvesVolumesList (Maybe MyLibraryBookshelvesVolumesListProjection)+mlbvlProjection+  = lens _mlbvlProjection+      (\ s a -> s{_mlbvlProjection = a})++-- | Index of the first element to return (starts at 0)+mlbvlStartIndex :: Lens' MyLibraryBookshelvesVolumesList (Maybe Word32)+mlbvlStartIndex+  = lens _mlbvlStartIndex+      (\ s a -> s{_mlbvlStartIndex = a})+      . mapping _Coerce++-- | Maximum number of results to return+mlbvlMaxResults :: Lens' MyLibraryBookshelvesVolumesList (Maybe Word32)+mlbvlMaxResults+  = lens _mlbvlMaxResults+      (\ s a -> s{_mlbvlMaxResults = a})+      . mapping _Coerce++-- | Set to true to show pre-ordered books. Defaults to false.+mlbvlShowPreOrders :: Lens' MyLibraryBookshelvesVolumesList (Maybe Bool)+mlbvlShowPreOrders+  = lens _mlbvlShowPreOrders+      (\ s a -> s{_mlbvlShowPreOrders = a})++instance GoogleRequest+         MyLibraryBookshelvesVolumesList where+        type Rs MyLibraryBookshelvesVolumesList = Volumes+        requestClient MyLibraryBookshelvesVolumesList{..}+          = go _mlbvlShelf _mlbvlCountry _mlbvlQ _mlbvlSource+              _mlbvlProjection+              _mlbvlStartIndex+              _mlbvlMaxResults+              _mlbvlShowPreOrders+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy MyLibraryBookshelvesVolumesListResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyLibrary/ReadingPositions/Get.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves my reading position information for a volume.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.mylibrary.readingpositions.get@.+module Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get+    (+    -- * REST Resource+      MyLibraryReadingPositionsGetResource++    -- * Creating a Request+    , myLibraryReadingPositionsGet+    , MyLibraryReadingPositionsGet++    -- * Request Lenses+    , mlrpgContentVersion+    , mlrpgVolumeId+    , mlrpgSource+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.mylibrary.readingpositions.get@ method which the+-- 'MyLibraryReadingPositionsGet' request conforms to.+type MyLibraryReadingPositionsGetResource =+     "books" :>+       "v1" :>+         "mylibrary" :>+           "readingpositions" :>+             Capture "volumeId" Text :>+               QueryParam "contentVersion" Text :>+                 QueryParam "source" Text :>+                   QueryParam "alt" AltJSON :>+                     Get '[JSON] ReadingPosition++-- | Retrieves my reading position information for a volume.+--+-- /See:/ 'myLibraryReadingPositionsGet' smart constructor.+data MyLibraryReadingPositionsGet = MyLibraryReadingPositionsGet+    { _mlrpgContentVersion :: !(Maybe Text)+    , _mlrpgVolumeId       :: !Text+    , _mlrpgSource         :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyLibraryReadingPositionsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mlrpgContentVersion'+--+-- * 'mlrpgVolumeId'+--+-- * 'mlrpgSource'+myLibraryReadingPositionsGet+    :: Text -- ^ 'mlrpgVolumeId'+    -> MyLibraryReadingPositionsGet+myLibraryReadingPositionsGet pMlrpgVolumeId_ =+    MyLibraryReadingPositionsGet+    { _mlrpgContentVersion = Nothing+    , _mlrpgVolumeId = pMlrpgVolumeId_+    , _mlrpgSource = Nothing+    }++-- | Volume content version for which this reading position is requested.+mlrpgContentVersion :: Lens' MyLibraryReadingPositionsGet (Maybe Text)+mlrpgContentVersion+  = lens _mlrpgContentVersion+      (\ s a -> s{_mlrpgContentVersion = a})++-- | ID of volume for which to retrieve a reading position.+mlrpgVolumeId :: Lens' MyLibraryReadingPositionsGet Text+mlrpgVolumeId+  = lens _mlrpgVolumeId+      (\ s a -> s{_mlrpgVolumeId = a})++-- | String to identify the originator of this request.+mlrpgSource :: Lens' MyLibraryReadingPositionsGet (Maybe Text)+mlrpgSource+  = lens _mlrpgSource (\ s a -> s{_mlrpgSource = a})++instance GoogleRequest MyLibraryReadingPositionsGet+         where+        type Rs MyLibraryReadingPositionsGet =+             ReadingPosition+        requestClient MyLibraryReadingPositionsGet{..}+          = go _mlrpgVolumeId _mlrpgContentVersion _mlrpgSource+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy MyLibraryReadingPositionsGetResource)+                      mempty
+ gen/Network/Google/Resource/Books/MyLibrary/ReadingPositions/SetPosition.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets my reading position information for a volume.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.mylibrary.readingpositions.setPosition@.+module Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition+    (+    -- * REST Resource+      MyLibraryReadingPositionsSetPositionResource++    -- * Creating a Request+    , myLibraryReadingPositionsSetPosition+    , MyLibraryReadingPositionsSetPosition++    -- * Request Lenses+    , mlrpspDeviceCookie+    , mlrpspContentVersion+    , mlrpspAction+    , mlrpspVolumeId+    , mlrpspSource+    , mlrpspTimestamp+    , mlrpspPosition+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.mylibrary.readingpositions.setPosition@ method which the+-- 'MyLibraryReadingPositionsSetPosition' 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] ()++-- | Sets my reading position information for a volume.+--+-- /See:/ 'myLibraryReadingPositionsSetPosition' smart constructor.+data MyLibraryReadingPositionsSetPosition = MyLibraryReadingPositionsSetPosition+    { _mlrpspDeviceCookie   :: !(Maybe Text)+    , _mlrpspContentVersion :: !(Maybe Text)+    , _mlrpspAction         :: !(Maybe MyLibraryReadingPositionsSetPositionAction)+    , _mlrpspVolumeId       :: !Text+    , _mlrpspSource         :: !(Maybe Text)+    , _mlrpspTimestamp      :: !Text+    , _mlrpspPosition       :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MyLibraryReadingPositionsSetPosition' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mlrpspDeviceCookie'+--+-- * 'mlrpspContentVersion'+--+-- * 'mlrpspAction'+--+-- * 'mlrpspVolumeId'+--+-- * 'mlrpspSource'+--+-- * 'mlrpspTimestamp'+--+-- * 'mlrpspPosition'+myLibraryReadingPositionsSetPosition+    :: Text -- ^ 'mlrpspVolumeId'+    -> Text -- ^ 'mlrpspTimestamp'+    -> Text -- ^ 'mlrpspPosition'+    -> MyLibraryReadingPositionsSetPosition+myLibraryReadingPositionsSetPosition pMlrpspVolumeId_ pMlrpspTimestamp_ pMlrpspPosition_ =+    MyLibraryReadingPositionsSetPosition+    { _mlrpspDeviceCookie = Nothing+    , _mlrpspContentVersion = Nothing+    , _mlrpspAction = Nothing+    , _mlrpspVolumeId = pMlrpspVolumeId_+    , _mlrpspSource = Nothing+    , _mlrpspTimestamp = pMlrpspTimestamp_+    , _mlrpspPosition = pMlrpspPosition_+    }++-- | Random persistent device cookie optional on set position.+mlrpspDeviceCookie :: Lens' MyLibraryReadingPositionsSetPosition (Maybe Text)+mlrpspDeviceCookie+  = lens _mlrpspDeviceCookie+      (\ s a -> s{_mlrpspDeviceCookie = a})++-- | Volume content version for which this reading position applies.+mlrpspContentVersion :: Lens' MyLibraryReadingPositionsSetPosition (Maybe Text)+mlrpspContentVersion+  = lens _mlrpspContentVersion+      (\ s a -> s{_mlrpspContentVersion = a})++-- | Action that caused this reading position to be set.+mlrpspAction :: Lens' MyLibraryReadingPositionsSetPosition (Maybe MyLibraryReadingPositionsSetPositionAction)+mlrpspAction+  = lens _mlrpspAction (\ s a -> s{_mlrpspAction = a})++-- | ID of volume for which to update the reading position.+mlrpspVolumeId :: Lens' MyLibraryReadingPositionsSetPosition Text+mlrpspVolumeId+  = lens _mlrpspVolumeId+      (\ s a -> s{_mlrpspVolumeId = a})++-- | String to identify the originator of this request.+mlrpspSource :: Lens' MyLibraryReadingPositionsSetPosition (Maybe Text)+mlrpspSource+  = lens _mlrpspSource (\ s a -> s{_mlrpspSource = a})++-- | RFC 3339 UTC format timestamp associated with this reading position.+mlrpspTimestamp :: Lens' MyLibraryReadingPositionsSetPosition Text+mlrpspTimestamp+  = lens _mlrpspTimestamp+      (\ s a -> s{_mlrpspTimestamp = a})++-- | Position string for the new volume reading position.+mlrpspPosition :: Lens' MyLibraryReadingPositionsSetPosition Text+mlrpspPosition+  = lens _mlrpspPosition+      (\ s a -> s{_mlrpspPosition = a})++instance GoogleRequest+         MyLibraryReadingPositionsSetPosition where+        type Rs MyLibraryReadingPositionsSetPosition = ()+        requestClient+          MyLibraryReadingPositionsSetPosition{..}+          = go _mlrpspVolumeId (Just _mlrpspTimestamp)+              (Just _mlrpspPosition)+              _mlrpspDeviceCookie+              _mlrpspContentVersion+              _mlrpspAction+              _mlrpspSource+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy MyLibraryReadingPositionsSetPositionResource)+                      mempty
+ gen/Network/Google/Resource/Books/Notification/Get.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Notification.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns notification details for a given notification id.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.notification.get@.+module Network.Google.Resource.Books.Notification.Get+    (+    -- * REST Resource+      NotificationGetResource++    -- * Creating a Request+    , notificationGet+    , NotificationGet++    -- * Request Lenses+    , ngLocale+    , ngNotificationId+    , ngSource+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.notification.get@ method which the+-- 'NotificationGet' 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++-- | Returns notification details for a given notification id.+--+-- /See:/ 'notificationGet' smart constructor.+data NotificationGet = NotificationGet+    { _ngLocale         :: !(Maybe Text)+    , _ngNotificationId :: !Text+    , _ngSource         :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NotificationGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ngLocale'+--+-- * 'ngNotificationId'+--+-- * 'ngSource'+notificationGet+    :: Text -- ^ 'ngNotificationId'+    -> NotificationGet+notificationGet pNgNotificationId_ =+    NotificationGet+    { _ngLocale = Nothing+    , _ngNotificationId = pNgNotificationId_+    , _ngSource = Nothing+    }++-- | 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)+ngLocale = lens _ngLocale (\ s a -> s{_ngLocale = a})++-- | String to identify the notification.+ngNotificationId :: Lens' NotificationGet Text+ngNotificationId+  = lens _ngNotificationId+      (\ s a -> s{_ngNotificationId = a})++-- | String to identify the originator of this request.+ngSource :: Lens' NotificationGet (Maybe Text)+ngSource = lens _ngSource (\ s a -> s{_ngSource = a})++instance GoogleRequest NotificationGet where+        type Rs NotificationGet = Notification+        requestClient NotificationGet{..}+          = go (Just _ngNotificationId) _ngLocale _ngSource+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy NotificationGetResource)+                      mempty
+ gen/Network/Google/Resource/Books/Onboarding/ListCategories.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Onboarding.ListCategories+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- List categories for onboarding experience.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.onboarding.listCategories@.+module Network.Google.Resource.Books.Onboarding.ListCategories+    (+    -- * REST Resource+      OnboardingListCategoriesResource++    -- * Creating a Request+    , onboardingListCategories+    , OnboardingListCategories++    -- * Request Lenses+    , olcLocale+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.onboarding.listCategories@ method which the+-- 'OnboardingListCategories' request conforms to.+type OnboardingListCategoriesResource =+     "books" :>+       "v1" :>+         "onboarding" :>+           "listCategories" :>+             QueryParam "locale" Text :>+               QueryParam "alt" AltJSON :> Get '[JSON] Category++-- | List categories for onboarding experience.+--+-- /See:/ 'onboardingListCategories' smart constructor.+newtype OnboardingListCategories = OnboardingListCategories+    { _olcLocale :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OnboardingListCategories' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'olcLocale'+onboardingListCategories+    :: OnboardingListCategories+onboardingListCategories =+    OnboardingListCategories+    { _olcLocale = Nothing+    }++-- | ISO-639-1 language and ISO-3166-1 country code. Default is en-US if+-- unset.+olcLocale :: Lens' OnboardingListCategories (Maybe Text)+olcLocale+  = lens _olcLocale (\ s a -> s{_olcLocale = a})++instance GoogleRequest OnboardingListCategories where+        type Rs OnboardingListCategories = Category+        requestClient OnboardingListCategories{..}+          = go _olcLocale (Just AltJSON) booksService+          where go+                  = buildClient+                      (Proxy :: Proxy OnboardingListCategoriesResource)+                      mempty
+ gen/Network/Google/Resource/Books/Onboarding/ListCategoryVolumes.hs view
@@ -0,0 +1,144 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Onboarding.ListCategoryVolumes+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- List available volumes under categories for onboarding experience.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.onboarding.listCategoryVolumes@.+module Network.Google.Resource.Books.Onboarding.ListCategoryVolumes+    (+    -- * REST Resource+      OnboardingListCategoryVolumesResource++    -- * Creating a Request+    , onboardingListCategoryVolumes+    , OnboardingListCategoryVolumes++    -- * Request Lenses+    , olcvLocale+    , olcvMaxAllowedMaturityRating+    , olcvCategoryId+    , olcvPageToken+    , olcvPageSize+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.onboarding.listCategoryVolumes@ method which the+-- 'OnboardingListCategoryVolumes' 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++-- | List available volumes under categories for onboarding experience.+--+-- /See:/ 'onboardingListCategoryVolumes' smart constructor.+data OnboardingListCategoryVolumes = OnboardingListCategoryVolumes+    { _olcvLocale                   :: !(Maybe Text)+    , _olcvMaxAllowedMaturityRating :: !(Maybe OnboardingListCategoryVolumesMaxAllowedMaturityRating)+    , _olcvCategoryId               :: !(Maybe [Text])+    , _olcvPageToken                :: !(Maybe Text)+    , _olcvPageSize                 :: !(Maybe (Textual Word32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OnboardingListCategoryVolumes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'olcvLocale'+--+-- * 'olcvMaxAllowedMaturityRating'+--+-- * 'olcvCategoryId'+--+-- * 'olcvPageToken'+--+-- * 'olcvPageSize'+onboardingListCategoryVolumes+    :: OnboardingListCategoryVolumes+onboardingListCategoryVolumes =+    OnboardingListCategoryVolumes+    { _olcvLocale = Nothing+    , _olcvMaxAllowedMaturityRating = Nothing+    , _olcvCategoryId = Nothing+    , _olcvPageToken = Nothing+    , _olcvPageSize = Nothing+    }++-- | ISO-639-1 language and ISO-3166-1 country code. Default is en-US if+-- unset.+olcvLocale :: Lens' OnboardingListCategoryVolumes (Maybe Text)+olcvLocale+  = lens _olcvLocale (\ s a -> s{_olcvLocale = a})++-- | The maximum allowed maturity rating of returned volumes. Books with a+-- higher maturity rating are filtered out.+olcvMaxAllowedMaturityRating :: Lens' OnboardingListCategoryVolumes (Maybe OnboardingListCategoryVolumesMaxAllowedMaturityRating)+olcvMaxAllowedMaturityRating+  = lens _olcvMaxAllowedMaturityRating+      (\ s a -> s{_olcvMaxAllowedMaturityRating = a})++-- | List of category ids requested.+olcvCategoryId :: Lens' OnboardingListCategoryVolumes [Text]+olcvCategoryId+  = lens _olcvCategoryId+      (\ s a -> s{_olcvCategoryId = a})+      . _Default+      . _Coerce++-- | The value of the nextToken from the previous page.+olcvPageToken :: Lens' OnboardingListCategoryVolumes (Maybe Text)+olcvPageToken+  = lens _olcvPageToken+      (\ s a -> s{_olcvPageToken = a})++-- | Number of maximum results per page to be included in the response.+olcvPageSize :: Lens' OnboardingListCategoryVolumes (Maybe Word32)+olcvPageSize+  = lens _olcvPageSize (\ s a -> s{_olcvPageSize = a})+      . mapping _Coerce++instance GoogleRequest OnboardingListCategoryVolumes+         where+        type Rs OnboardingListCategoryVolumes = Volume2+        requestClient OnboardingListCategoryVolumes{..}+          = go _olcvLocale _olcvMaxAllowedMaturityRating+              (_olcvCategoryId ^. _Default)+              _olcvPageToken+              _olcvPageSize+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy OnboardingListCategoryVolumesResource)+                      mempty
+ gen/Network/Google/Resource/Books/Personalizedstream/Get.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Personalizedstream.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a stream of personalized book clusters+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.personalizedstream.get@.+module Network.Google.Resource.Books.Personalizedstream.Get+    (+    -- * REST Resource+      PersonalizedstreamGetResource++    -- * Creating a Request+    , personalizedstreamGet+    , PersonalizedstreamGet++    -- * Request Lenses+    , pgLocale+    , pgMaxAllowedMaturityRating+    , pgSource+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.personalizedstream.get@ method which the+-- 'PersonalizedstreamGet' request conforms to.+type PersonalizedstreamGetResource =+     "books" :>+       "v1" :>+         "personalizedstream" :>+           "get" :>+             QueryParam "locale" Text :>+               QueryParam "maxAllowedMaturityRating"+                 PersonalizedstreamGetMaxAllowedMaturityRating+                 :>+                 QueryParam "source" Text :>+                   QueryParam "alt" AltJSON :>+                     Get '[JSON] Discoveryclusters++-- | Returns a stream of personalized book clusters+--+-- /See:/ 'personalizedstreamGet' smart constructor.+data PersonalizedstreamGet = PersonalizedstreamGet+    { _pgLocale                   :: !(Maybe Text)+    , _pgMaxAllowedMaturityRating :: !(Maybe PersonalizedstreamGetMaxAllowedMaturityRating)+    , _pgSource                   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PersonalizedstreamGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pgLocale'+--+-- * 'pgMaxAllowedMaturityRating'+--+-- * 'pgSource'+personalizedstreamGet+    :: PersonalizedstreamGet+personalizedstreamGet =+    PersonalizedstreamGet+    { _pgLocale = Nothing+    , _pgMaxAllowedMaturityRating = Nothing+    , _pgSource = Nothing+    }++-- | ISO-639-1 language and ISO-3166-1 country code. Ex: \'en_US\'. Used for+-- generating recommendations.+pgLocale :: Lens' PersonalizedstreamGet (Maybe Text)+pgLocale = lens _pgLocale (\ s a -> s{_pgLocale = a})++-- | The maximum allowed maturity rating of returned recommendations. Books+-- with a higher maturity rating are filtered out.+pgMaxAllowedMaturityRating :: Lens' PersonalizedstreamGet (Maybe PersonalizedstreamGetMaxAllowedMaturityRating)+pgMaxAllowedMaturityRating+  = lens _pgMaxAllowedMaturityRating+      (\ s a -> s{_pgMaxAllowedMaturityRating = a})++-- | String to identify the originator of this request.+pgSource :: Lens' PersonalizedstreamGet (Maybe Text)+pgSource = lens _pgSource (\ s a -> s{_pgSource = a})++instance GoogleRequest PersonalizedstreamGet where+        type Rs PersonalizedstreamGet = Discoveryclusters+        requestClient PersonalizedstreamGet{..}+          = go _pgLocale _pgMaxAllowedMaturityRating _pgSource+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy PersonalizedstreamGetResource)+                      mempty
+ gen/Network/Google/Resource/Books/PromoOffer/Accept.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.PromoOffer.Accept+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- -- |+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.promooffer.accept@.+module Network.Google.Resource.Books.PromoOffer.Accept+    (+    -- * REST Resource+      PromoOfferAcceptResource++    -- * Creating a Request+    , promoOfferAccept+    , PromoOfferAccept++    -- * Request Lenses+    , poaManufacturer+    , poaSerial+    , poaDevice+    , poaModel+    , poaVolumeId+    , poaOfferId+    , poaProduct+    , poaAndroidId+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.promooffer.accept@ method which the+-- 'PromoOfferAccept' 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] ()++-- |+--+-- /See:/ 'promoOfferAccept' smart constructor.+data PromoOfferAccept = PromoOfferAccept+    { _poaManufacturer :: !(Maybe Text)+    , _poaSerial       :: !(Maybe Text)+    , _poaDevice       :: !(Maybe Text)+    , _poaModel        :: !(Maybe Text)+    , _poaVolumeId     :: !(Maybe Text)+    , _poaOfferId      :: !(Maybe Text)+    , _poaProduct      :: !(Maybe Text)+    , _poaAndroidId    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PromoOfferAccept' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'poaManufacturer'+--+-- * 'poaSerial'+--+-- * 'poaDevice'+--+-- * 'poaModel'+--+-- * 'poaVolumeId'+--+-- * 'poaOfferId'+--+-- * 'poaProduct'+--+-- * 'poaAndroidId'+promoOfferAccept+    :: PromoOfferAccept+promoOfferAccept =+    PromoOfferAccept+    { _poaManufacturer = Nothing+    , _poaSerial = Nothing+    , _poaDevice = Nothing+    , _poaModel = Nothing+    , _poaVolumeId = Nothing+    , _poaOfferId = Nothing+    , _poaProduct = Nothing+    , _poaAndroidId = Nothing+    }++-- | device manufacturer+poaManufacturer :: Lens' PromoOfferAccept (Maybe Text)+poaManufacturer+  = lens _poaManufacturer+      (\ s a -> s{_poaManufacturer = a})++-- | device serial+poaSerial :: Lens' PromoOfferAccept (Maybe Text)+poaSerial+  = lens _poaSerial (\ s a -> s{_poaSerial = a})++-- | device device+poaDevice :: Lens' PromoOfferAccept (Maybe Text)+poaDevice+  = lens _poaDevice (\ s a -> s{_poaDevice = a})++-- | device model+poaModel :: Lens' PromoOfferAccept (Maybe Text)+poaModel = lens _poaModel (\ s a -> s{_poaModel = a})++-- | Volume id to exercise the offer+poaVolumeId :: Lens' PromoOfferAccept (Maybe Text)+poaVolumeId+  = lens _poaVolumeId (\ s a -> s{_poaVolumeId = a})++poaOfferId :: Lens' PromoOfferAccept (Maybe Text)+poaOfferId+  = lens _poaOfferId (\ s a -> s{_poaOfferId = a})++-- | device product+poaProduct :: Lens' PromoOfferAccept (Maybe Text)+poaProduct+  = lens _poaProduct (\ s a -> s{_poaProduct = a})++-- | device android_id+poaAndroidId :: Lens' PromoOfferAccept (Maybe Text)+poaAndroidId+  = lens _poaAndroidId (\ s a -> s{_poaAndroidId = a})++instance GoogleRequest PromoOfferAccept where+        type Rs PromoOfferAccept = ()+        requestClient PromoOfferAccept{..}+          = go _poaManufacturer _poaSerial _poaDevice _poaModel+              _poaVolumeId+              _poaOfferId+              _poaProduct+              _poaAndroidId+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy PromoOfferAcceptResource)+                      mempty
+ gen/Network/Google/Resource/Books/PromoOffer/Dismiss.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.PromoOffer.Dismiss+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- -- |+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.promooffer.dismiss@.+module Network.Google.Resource.Books.PromoOffer.Dismiss+    (+    -- * REST Resource+      PromoOfferDismissResource++    -- * Creating a Request+    , promoOfferDismiss+    , PromoOfferDismiss++    -- * Request Lenses+    , podManufacturer+    , podSerial+    , podDevice+    , podModel+    , podOfferId+    , podProduct+    , podAndroidId+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.promooffer.dismiss@ method which the+-- 'PromoOfferDismiss' 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] ()++-- |+--+-- /See:/ 'promoOfferDismiss' smart constructor.+data PromoOfferDismiss = PromoOfferDismiss+    { _podManufacturer :: !(Maybe Text)+    , _podSerial       :: !(Maybe Text)+    , _podDevice       :: !(Maybe Text)+    , _podModel        :: !(Maybe Text)+    , _podOfferId      :: !(Maybe Text)+    , _podProduct      :: !(Maybe Text)+    , _podAndroidId    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PromoOfferDismiss' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'podManufacturer'+--+-- * 'podSerial'+--+-- * 'podDevice'+--+-- * 'podModel'+--+-- * 'podOfferId'+--+-- * 'podProduct'+--+-- * 'podAndroidId'+promoOfferDismiss+    :: PromoOfferDismiss+promoOfferDismiss =+    PromoOfferDismiss+    { _podManufacturer = Nothing+    , _podSerial = Nothing+    , _podDevice = Nothing+    , _podModel = Nothing+    , _podOfferId = Nothing+    , _podProduct = Nothing+    , _podAndroidId = Nothing+    }++-- | device manufacturer+podManufacturer :: Lens' PromoOfferDismiss (Maybe Text)+podManufacturer+  = lens _podManufacturer+      (\ s a -> s{_podManufacturer = a})++-- | device serial+podSerial :: Lens' PromoOfferDismiss (Maybe Text)+podSerial+  = lens _podSerial (\ s a -> s{_podSerial = a})++-- | device device+podDevice :: Lens' PromoOfferDismiss (Maybe Text)+podDevice+  = lens _podDevice (\ s a -> s{_podDevice = a})++-- | device model+podModel :: Lens' PromoOfferDismiss (Maybe Text)+podModel = lens _podModel (\ s a -> s{_podModel = a})++-- | Offer to dimiss+podOfferId :: Lens' PromoOfferDismiss (Maybe Text)+podOfferId+  = lens _podOfferId (\ s a -> s{_podOfferId = a})++-- | device product+podProduct :: Lens' PromoOfferDismiss (Maybe Text)+podProduct+  = lens _podProduct (\ s a -> s{_podProduct = a})++-- | device android_id+podAndroidId :: Lens' PromoOfferDismiss (Maybe Text)+podAndroidId+  = lens _podAndroidId (\ s a -> s{_podAndroidId = a})++instance GoogleRequest PromoOfferDismiss where+        type Rs PromoOfferDismiss = ()+        requestClient PromoOfferDismiss{..}+          = go _podManufacturer _podSerial _podDevice _podModel+              _podOfferId+              _podProduct+              _podAndroidId+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy PromoOfferDismissResource)+                      mempty
+ gen/Network/Google/Resource/Books/PromoOffer/Get.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.PromoOffer.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of promo offers available to the user+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.promooffer.get@.+module Network.Google.Resource.Books.PromoOffer.Get+    (+    -- * REST Resource+      PromoOfferGetResource++    -- * Creating a Request+    , promoOfferGet+    , PromoOfferGet++    -- * Request Lenses+    , pogManufacturer+    , pogSerial+    , pogDevice+    , pogModel+    , pogProduct+    , pogAndroidId+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.promooffer.get@ method which the+-- 'PromoOfferGet' 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++-- | Returns a list of promo offers available to the user+--+-- /See:/ 'promoOfferGet' smart constructor.+data PromoOfferGet = PromoOfferGet+    { _pogManufacturer :: !(Maybe Text)+    , _pogSerial       :: !(Maybe Text)+    , _pogDevice       :: !(Maybe Text)+    , _pogModel        :: !(Maybe Text)+    , _pogProduct      :: !(Maybe Text)+    , _pogAndroidId    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PromoOfferGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pogManufacturer'+--+-- * 'pogSerial'+--+-- * 'pogDevice'+--+-- * 'pogModel'+--+-- * 'pogProduct'+--+-- * 'pogAndroidId'+promoOfferGet+    :: PromoOfferGet+promoOfferGet =+    PromoOfferGet+    { _pogManufacturer = Nothing+    , _pogSerial = Nothing+    , _pogDevice = Nothing+    , _pogModel = Nothing+    , _pogProduct = Nothing+    , _pogAndroidId = Nothing+    }++-- | device manufacturer+pogManufacturer :: Lens' PromoOfferGet (Maybe Text)+pogManufacturer+  = lens _pogManufacturer+      (\ s a -> s{_pogManufacturer = a})++-- | device serial+pogSerial :: Lens' PromoOfferGet (Maybe Text)+pogSerial+  = lens _pogSerial (\ s a -> s{_pogSerial = a})++-- | device device+pogDevice :: Lens' PromoOfferGet (Maybe Text)+pogDevice+  = lens _pogDevice (\ s a -> s{_pogDevice = a})++-- | device model+pogModel :: Lens' PromoOfferGet (Maybe Text)+pogModel = lens _pogModel (\ s a -> s{_pogModel = a})++-- | device product+pogProduct :: Lens' PromoOfferGet (Maybe Text)+pogProduct+  = lens _pogProduct (\ s a -> s{_pogProduct = a})++-- | device android_id+pogAndroidId :: Lens' PromoOfferGet (Maybe Text)+pogAndroidId+  = lens _pogAndroidId (\ s a -> s{_pogAndroidId = a})++instance GoogleRequest PromoOfferGet where+        type Rs PromoOfferGet = Offers+        requestClient PromoOfferGet{..}+          = go _pogManufacturer _pogSerial _pogDevice _pogModel+              _pogProduct+              _pogAndroidId+              (Just AltJSON)+              booksService+          where go+                  = buildClient (Proxy :: Proxy PromoOfferGetResource)+                      mempty
+ gen/Network/Google/Resource/Books/Volumes/Associated/List.hs view
@@ -0,0 +1,140 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Volumes.Associated.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Return a list of associated books.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.volumes.associated.list@.+module Network.Google.Resource.Books.Volumes.Associated.List+    (+    -- * REST Resource+      VolumesAssociatedListResource++    -- * Creating a Request+    , volumesAssociatedList+    , VolumesAssociatedList++    -- * Request Lenses+    , valLocale+    , valMaxAllowedMaturityRating+    , valVolumeId+    , valSource+    , valAssociation+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.volumes.associated.list@ method which the+-- 'VolumesAssociatedList' 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++-- | Return a list of associated books.+--+-- /See:/ 'volumesAssociatedList' smart constructor.+data VolumesAssociatedList = VolumesAssociatedList+    { _valLocale                   :: !(Maybe Text)+    , _valMaxAllowedMaturityRating :: !(Maybe VolumesAssociatedListMaxAllowedMaturityRating)+    , _valVolumeId                 :: !Text+    , _valSource                   :: !(Maybe Text)+    , _valAssociation              :: !(Maybe VolumesAssociatedListAssociation)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumesAssociatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'valLocale'+--+-- * 'valMaxAllowedMaturityRating'+--+-- * 'valVolumeId'+--+-- * 'valSource'+--+-- * 'valAssociation'+volumesAssociatedList+    :: Text -- ^ 'valVolumeId'+    -> VolumesAssociatedList+volumesAssociatedList pValVolumeId_ =+    VolumesAssociatedList+    { _valLocale = Nothing+    , _valMaxAllowedMaturityRating = Nothing+    , _valVolumeId = pValVolumeId_+    , _valSource = Nothing+    , _valAssociation = Nothing+    }++-- | ISO-639-1 language and ISO-3166-1 country code. Ex: \'en_US\'. Used for+-- generating recommendations.+valLocale :: Lens' VolumesAssociatedList (Maybe Text)+valLocale+  = lens _valLocale (\ s a -> s{_valLocale = a})++-- | The maximum allowed maturity rating of returned recommendations. Books+-- with a higher maturity rating are filtered out.+valMaxAllowedMaturityRating :: Lens' VolumesAssociatedList (Maybe VolumesAssociatedListMaxAllowedMaturityRating)+valMaxAllowedMaturityRating+  = lens _valMaxAllowedMaturityRating+      (\ s a -> s{_valMaxAllowedMaturityRating = a})++-- | ID of the source volume.+valVolumeId :: Lens' VolumesAssociatedList Text+valVolumeId+  = lens _valVolumeId (\ s a -> s{_valVolumeId = a})++-- | String to identify the originator of this request.+valSource :: Lens' VolumesAssociatedList (Maybe Text)+valSource+  = lens _valSource (\ s a -> s{_valSource = a})++-- | Association type.+valAssociation :: Lens' VolumesAssociatedList (Maybe VolumesAssociatedListAssociation)+valAssociation+  = lens _valAssociation+      (\ s a -> s{_valAssociation = a})++instance GoogleRequest VolumesAssociatedList where+        type Rs VolumesAssociatedList = Volumes+        requestClient VolumesAssociatedList{..}+          = go _valVolumeId _valLocale+              _valMaxAllowedMaturityRating+              _valSource+              _valAssociation+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy VolumesAssociatedListResource)+                      mempty
+ gen/Network/Google/Resource/Books/Volumes/Get.hs view
@@ -0,0 +1,140 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Volumes.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets volume information for a single volume.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.volumes.get@.+module Network.Google.Resource.Books.Volumes.Get+    (+    -- * REST Resource+      VolumesGetResource++    -- * Creating a Request+    , volumesGet+    , VolumesGet++    -- * Request Lenses+    , vgCountry+    , vgPartner+    , vgVolumeId+    , vgSource+    , vgProjection+    , vgUserLibraryConsistentRead+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.volumes.get@ method which the+-- 'VolumesGet' request conforms to.+type VolumesGetResource =+     "books" :>+       "v1" :>+         "volumes" :>+           Capture "volumeId" Text :>+             QueryParam "country" Text :>+               QueryParam "partner" Text :>+                 QueryParam "source" Text :>+                   QueryParam "projection" VolumesGetProjection :>+                     QueryParam "user_library_consistent_read" Bool :>+                       QueryParam "alt" AltJSON :> Get '[JSON] Volume++-- | Gets volume information for a single volume.+--+-- /See:/ 'volumesGet' smart constructor.+data VolumesGet = VolumesGet+    { _vgCountry                   :: !(Maybe Text)+    , _vgPartner                   :: !(Maybe Text)+    , _vgVolumeId                  :: !Text+    , _vgSource                    :: !(Maybe Text)+    , _vgProjection                :: !(Maybe VolumesGetProjection)+    , _vgUserLibraryConsistentRead :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vgCountry'+--+-- * 'vgPartner'+--+-- * 'vgVolumeId'+--+-- * 'vgSource'+--+-- * 'vgProjection'+--+-- * 'vgUserLibraryConsistentRead'+volumesGet+    :: Text -- ^ 'vgVolumeId'+    -> VolumesGet+volumesGet pVgVolumeId_ =+    VolumesGet+    { _vgCountry = Nothing+    , _vgPartner = Nothing+    , _vgVolumeId = pVgVolumeId_+    , _vgSource = Nothing+    , _vgProjection = Nothing+    , _vgUserLibraryConsistentRead = Nothing+    }++-- | ISO-3166-1 code to override the IP-based location.+vgCountry :: Lens' VolumesGet (Maybe Text)+vgCountry+  = lens _vgCountry (\ s a -> s{_vgCountry = a})++-- | Brand results for partner ID.+vgPartner :: Lens' VolumesGet (Maybe Text)+vgPartner+  = lens _vgPartner (\ s a -> s{_vgPartner = a})++-- | ID of volume to retrieve.+vgVolumeId :: Lens' VolumesGet Text+vgVolumeId+  = lens _vgVolumeId (\ s a -> s{_vgVolumeId = a})++-- | String to identify the originator of this request.+vgSource :: Lens' VolumesGet (Maybe Text)+vgSource = lens _vgSource (\ s a -> s{_vgSource = a})++-- | Restrict information returned to a set of selected fields.+vgProjection :: Lens' VolumesGet (Maybe VolumesGetProjection)+vgProjection+  = lens _vgProjection (\ s a -> s{_vgProjection = a})++vgUserLibraryConsistentRead :: Lens' VolumesGet (Maybe Bool)+vgUserLibraryConsistentRead+  = lens _vgUserLibraryConsistentRead+      (\ s a -> s{_vgUserLibraryConsistentRead = a})++instance GoogleRequest VolumesGet where+        type Rs VolumesGet = Volume+        requestClient VolumesGet{..}+          = go _vgVolumeId _vgCountry _vgPartner _vgSource+              _vgProjection+              _vgUserLibraryConsistentRead+              (Just AltJSON)+              booksService+          where go+                  = buildClient (Proxy :: Proxy VolumesGetResource)+                      mempty
+ gen/Network/Google/Resource/Books/Volumes/List.hs view
@@ -0,0 +1,232 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Volumes.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Performs a book search.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.volumes.list@.+module Network.Google.Resource.Books.Volumes.List+    (+    -- * REST Resource+      VolumesListResource++    -- * Creating a Request+    , volumesList+    , VolumesList++    -- * Request Lenses+    , vlOrderBy+    , vlLibraryRestrict+    , vlPartner+    , vlQ+    , vlDownload+    , vlSource+    , vlProjection+    , vlFilter+    , vlLangRestrict+    , vlStartIndex+    , vlMaxResults+    , vlShowPreOrders+    , vlPrintType+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.volumes.list@ method which the+-- 'VolumesList' request conforms to.+type VolumesListResource =+     "books" :>+       "v1" :>+         "volumes" :>+           QueryParam "q" Text :>+             QueryParam "orderBy" VolumesListOrderBy :>+               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++-- | Performs a book search.+--+-- /See:/ 'volumesList' smart constructor.+data VolumesList = VolumesList+    { _vlOrderBy         :: !(Maybe VolumesListOrderBy)+    , _vlLibraryRestrict :: !(Maybe VolumesListLibraryRestrict)+    , _vlPartner         :: !(Maybe Text)+    , _vlQ               :: !Text+    , _vlDownload        :: !(Maybe VolumesListDownload)+    , _vlSource          :: !(Maybe Text)+    , _vlProjection      :: !(Maybe VolumesListProjection)+    , _vlFilter          :: !(Maybe VolumesListFilter)+    , _vlLangRestrict    :: !(Maybe Text)+    , _vlStartIndex      :: !(Maybe (Textual Word32))+    , _vlMaxResults      :: !(Maybe (Textual Word32))+    , _vlShowPreOrders   :: !(Maybe Bool)+    , _vlPrintType       :: !(Maybe VolumesListPrintType)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vlOrderBy'+--+-- * 'vlLibraryRestrict'+--+-- * 'vlPartner'+--+-- * 'vlQ'+--+-- * 'vlDownload'+--+-- * 'vlSource'+--+-- * 'vlProjection'+--+-- * 'vlFilter'+--+-- * 'vlLangRestrict'+--+-- * 'vlStartIndex'+--+-- * 'vlMaxResults'+--+-- * 'vlShowPreOrders'+--+-- * 'vlPrintType'+volumesList+    :: Text -- ^ 'vlQ'+    -> VolumesList+volumesList pVlQ_ =+    VolumesList+    { _vlOrderBy = Nothing+    , _vlLibraryRestrict = Nothing+    , _vlPartner = Nothing+    , _vlQ = pVlQ_+    , _vlDownload = Nothing+    , _vlSource = Nothing+    , _vlProjection = Nothing+    , _vlFilter = Nothing+    , _vlLangRestrict = Nothing+    , _vlStartIndex = Nothing+    , _vlMaxResults = Nothing+    , _vlShowPreOrders = Nothing+    , _vlPrintType = Nothing+    }++-- | Sort search results.+vlOrderBy :: Lens' VolumesList (Maybe VolumesListOrderBy)+vlOrderBy+  = lens _vlOrderBy (\ s a -> s{_vlOrderBy = a})++-- | Restrict search to this user\'s library.+vlLibraryRestrict :: Lens' VolumesList (Maybe VolumesListLibraryRestrict)+vlLibraryRestrict+  = lens _vlLibraryRestrict+      (\ s a -> s{_vlLibraryRestrict = a})++-- | Restrict and brand results for partner ID.+vlPartner :: Lens' VolumesList (Maybe Text)+vlPartner+  = lens _vlPartner (\ s a -> s{_vlPartner = a})++-- | Full-text search query string.+vlQ :: Lens' VolumesList Text+vlQ = lens _vlQ (\ s a -> s{_vlQ = a})++-- | Restrict to volumes by download availability.+vlDownload :: Lens' VolumesList (Maybe VolumesListDownload)+vlDownload+  = lens _vlDownload (\ s a -> s{_vlDownload = a})++-- | String to identify the originator of this request.+vlSource :: Lens' VolumesList (Maybe Text)+vlSource = lens _vlSource (\ s a -> s{_vlSource = a})++-- | Restrict information returned to a set of selected fields.+vlProjection :: Lens' VolumesList (Maybe VolumesListProjection)+vlProjection+  = lens _vlProjection (\ s a -> s{_vlProjection = a})++-- | Filter search results.+vlFilter :: Lens' VolumesList (Maybe VolumesListFilter)+vlFilter = lens _vlFilter (\ s a -> s{_vlFilter = a})++-- | Restrict results to books with this language code.+vlLangRestrict :: Lens' VolumesList (Maybe Text)+vlLangRestrict+  = lens _vlLangRestrict+      (\ s a -> s{_vlLangRestrict = a})++-- | Index of the first result to return (starts at 0)+vlStartIndex :: Lens' VolumesList (Maybe Word32)+vlStartIndex+  = lens _vlStartIndex (\ s a -> s{_vlStartIndex = a})+      . mapping _Coerce++-- | Maximum number of results to return.+vlMaxResults :: Lens' VolumesList (Maybe Word32)+vlMaxResults+  = lens _vlMaxResults (\ s a -> s{_vlMaxResults = a})+      . mapping _Coerce++-- | Set to true to show books available for preorder. Defaults to false.+vlShowPreOrders :: Lens' VolumesList (Maybe Bool)+vlShowPreOrders+  = lens _vlShowPreOrders+      (\ s a -> s{_vlShowPreOrders = a})++-- | Restrict to books or magazines.+vlPrintType :: Lens' VolumesList (Maybe VolumesListPrintType)+vlPrintType+  = lens _vlPrintType (\ s a -> s{_vlPrintType = a})++instance GoogleRequest VolumesList where+        type Rs VolumesList = Volumes+        requestClient VolumesList{..}+          = go (Just _vlQ) _vlOrderBy _vlLibraryRestrict+              _vlPartner+              _vlDownload+              _vlSource+              _vlProjection+              _vlFilter+              _vlLangRestrict+              _vlStartIndex+              _vlMaxResults+              _vlShowPreOrders+              _vlPrintType+              (Just AltJSON)+              booksService+          where go+                  = buildClient (Proxy :: Proxy VolumesListResource)+                      mempty
+ gen/Network/Google/Resource/Books/Volumes/Mybooks/List.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Volumes.Mybooks.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Return a list of books in My Library.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.volumes.mybooks.list@.+module Network.Google.Resource.Books.Volumes.Mybooks.List+    (+    -- * REST Resource+      VolumesMybooksListResource++    -- * Creating a Request+    , volumesMybooksList+    , VolumesMybooksList++    -- * Request Lenses+    , vmlProcessingState+    , vmlAcquireMethod+    , vmlLocale+    , vmlSource+    , vmlStartIndex+    , vmlMaxResults+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.volumes.mybooks.list@ method which the+-- 'VolumesMybooksList' request conforms to.+type VolumesMybooksListResource =+     "books" :>+       "v1" :>+         "volumes" :>+           "mybooks" :>+             QueryParams "processingState"+               VolumesMybooksListProcessingState+               :>+               QueryParams "acquireMethod"+                 VolumesMybooksListAcquireMethod+                 :>+                 QueryParam "locale" Text :>+                   QueryParam "source" Text :>+                     QueryParam "startIndex" (Textual Word32) :>+                       QueryParam "maxResults" (Textual Word32) :>+                         QueryParam "alt" AltJSON :> Get '[JSON] Volumes++-- | Return a list of books in My Library.+--+-- /See:/ 'volumesMybooksList' smart constructor.+data VolumesMybooksList = VolumesMybooksList+    { _vmlProcessingState :: !(Maybe [VolumesMybooksListProcessingState])+    , _vmlAcquireMethod   :: !(Maybe [VolumesMybooksListAcquireMethod])+    , _vmlLocale          :: !(Maybe Text)+    , _vmlSource          :: !(Maybe Text)+    , _vmlStartIndex      :: !(Maybe (Textual Word32))+    , _vmlMaxResults      :: !(Maybe (Textual Word32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumesMybooksList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vmlProcessingState'+--+-- * 'vmlAcquireMethod'+--+-- * 'vmlLocale'+--+-- * 'vmlSource'+--+-- * 'vmlStartIndex'+--+-- * 'vmlMaxResults'+volumesMybooksList+    :: VolumesMybooksList+volumesMybooksList =+    VolumesMybooksList+    { _vmlProcessingState = Nothing+    , _vmlAcquireMethod = Nothing+    , _vmlLocale = Nothing+    , _vmlSource = Nothing+    , _vmlStartIndex = Nothing+    , _vmlMaxResults = Nothing+    }++-- | 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]+vmlProcessingState+  = lens _vmlProcessingState+      (\ s a -> s{_vmlProcessingState = a})+      . _Default+      . _Coerce++-- | How the book was aquired+vmlAcquireMethod :: Lens' VolumesMybooksList [VolumesMybooksListAcquireMethod]+vmlAcquireMethod+  = lens _vmlAcquireMethod+      (\ s a -> s{_vmlAcquireMethod = a})+      . _Default+      . _Coerce++-- | ISO-639-1 language and ISO-3166-1 country code. Ex:\'en_US\'. Used for+-- generating recommendations.+vmlLocale :: Lens' VolumesMybooksList (Maybe Text)+vmlLocale+  = lens _vmlLocale (\ s a -> s{_vmlLocale = a})++-- | String to identify the originator of this request.+vmlSource :: Lens' VolumesMybooksList (Maybe Text)+vmlSource+  = lens _vmlSource (\ s a -> s{_vmlSource = a})++-- | Index of the first result to return (starts at 0)+vmlStartIndex :: Lens' VolumesMybooksList (Maybe Word32)+vmlStartIndex+  = lens _vmlStartIndex+      (\ s a -> s{_vmlStartIndex = a})+      . mapping _Coerce++-- | Maximum number of results to return.+vmlMaxResults :: Lens' VolumesMybooksList (Maybe Word32)+vmlMaxResults+  = lens _vmlMaxResults+      (\ s a -> s{_vmlMaxResults = a})+      . mapping _Coerce++instance GoogleRequest VolumesMybooksList where+        type Rs VolumesMybooksList = Volumes+        requestClient VolumesMybooksList{..}+          = go (_vmlProcessingState ^. _Default)+              (_vmlAcquireMethod ^. _Default)+              _vmlLocale+              _vmlSource+              _vmlStartIndex+              _vmlMaxResults+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy VolumesMybooksListResource)+                      mempty
+ gen/Network/Google/Resource/Books/Volumes/Recommended/List.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Volumes.Recommended.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Return a list of recommended books for the current user.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.volumes.recommended.list@.+module Network.Google.Resource.Books.Volumes.Recommended.List+    (+    -- * REST Resource+      VolumesRecommendedListResource++    -- * Creating a Request+    , volumesRecommendedList+    , VolumesRecommendedList++    -- * Request Lenses+    , vrlLocale+    , vrlMaxAllowedMaturityRating+    , vrlSource+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.volumes.recommended.list@ method which the+-- 'VolumesRecommendedList' request conforms to.+type VolumesRecommendedListResource =+     "books" :>+       "v1" :>+         "volumes" :>+           "recommended" :>+             QueryParam "locale" Text :>+               QueryParam "maxAllowedMaturityRating"+                 VolumesRecommendedListMaxAllowedMaturityRating+                 :>+                 QueryParam "source" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Volumes++-- | Return a list of recommended books for the current user.+--+-- /See:/ 'volumesRecommendedList' smart constructor.+data VolumesRecommendedList = VolumesRecommendedList+    { _vrlLocale                   :: !(Maybe Text)+    , _vrlMaxAllowedMaturityRating :: !(Maybe VolumesRecommendedListMaxAllowedMaturityRating)+    , _vrlSource                   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumesRecommendedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vrlLocale'+--+-- * 'vrlMaxAllowedMaturityRating'+--+-- * 'vrlSource'+volumesRecommendedList+    :: VolumesRecommendedList+volumesRecommendedList =+    VolumesRecommendedList+    { _vrlLocale = Nothing+    , _vrlMaxAllowedMaturityRating = Nothing+    , _vrlSource = Nothing+    }++-- | ISO-639-1 language and ISO-3166-1 country code. Ex: \'en_US\'. Used for+-- generating recommendations.+vrlLocale :: Lens' VolumesRecommendedList (Maybe Text)+vrlLocale+  = lens _vrlLocale (\ s a -> s{_vrlLocale = a})++-- | The maximum allowed maturity rating of returned recommendations. Books+-- with a higher maturity rating are filtered out.+vrlMaxAllowedMaturityRating :: Lens' VolumesRecommendedList (Maybe VolumesRecommendedListMaxAllowedMaturityRating)+vrlMaxAllowedMaturityRating+  = lens _vrlMaxAllowedMaturityRating+      (\ s a -> s{_vrlMaxAllowedMaturityRating = a})++-- | String to identify the originator of this request.+vrlSource :: Lens' VolumesRecommendedList (Maybe Text)+vrlSource+  = lens _vrlSource (\ s a -> s{_vrlSource = a})++instance GoogleRequest VolumesRecommendedList where+        type Rs VolumesRecommendedList = Volumes+        requestClient VolumesRecommendedList{..}+          = go _vrlLocale _vrlMaxAllowedMaturityRating+              _vrlSource+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy VolumesRecommendedListResource)+                      mempty
+ gen/Network/Google/Resource/Books/Volumes/Recommended/Rate.hs view
@@ -0,0 +1,125 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Volumes.Recommended.Rate+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Rate a recommended book for the current user.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.volumes.recommended.rate@.+module Network.Google.Resource.Books.Volumes.Recommended.Rate+    (+    -- * REST Resource+      VolumesRecommendedRateResource++    -- * Creating a Request+    , volumesRecommendedRate+    , VolumesRecommendedRate++    -- * Request Lenses+    , vrrRating+    , vrrLocale+    , vrrVolumeId+    , vrrSource+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.volumes.recommended.rate@ method which the+-- 'VolumesRecommendedRate' 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++-- | Rate a recommended book for the current user.+--+-- /See:/ 'volumesRecommendedRate' smart constructor.+data VolumesRecommendedRate = VolumesRecommendedRate+    { _vrrRating   :: !VolumesRecommendedRateRating+    , _vrrLocale   :: !(Maybe Text)+    , _vrrVolumeId :: !Text+    , _vrrSource   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumesRecommendedRate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vrrRating'+--+-- * 'vrrLocale'+--+-- * 'vrrVolumeId'+--+-- * 'vrrSource'+volumesRecommendedRate+    :: VolumesRecommendedRateRating -- ^ 'vrrRating'+    -> Text -- ^ 'vrrVolumeId'+    -> VolumesRecommendedRate+volumesRecommendedRate pVrrRating_ pVrrVolumeId_ =+    VolumesRecommendedRate+    { _vrrRating = pVrrRating_+    , _vrrLocale = Nothing+    , _vrrVolumeId = pVrrVolumeId_+    , _vrrSource = Nothing+    }++-- | Rating to be given to the volume.+vrrRating :: Lens' VolumesRecommendedRate VolumesRecommendedRateRating+vrrRating+  = lens _vrrRating (\ s a -> s{_vrrRating = a})++-- | ISO-639-1 language and ISO-3166-1 country code. Ex: \'en_US\'. Used for+-- generating recommendations.+vrrLocale :: Lens' VolumesRecommendedRate (Maybe Text)+vrrLocale+  = lens _vrrLocale (\ s a -> s{_vrrLocale = a})++-- | ID of the source volume.+vrrVolumeId :: Lens' VolumesRecommendedRate Text+vrrVolumeId+  = lens _vrrVolumeId (\ s a -> s{_vrrVolumeId = a})++-- | String to identify the originator of this request.+vrrSource :: Lens' VolumesRecommendedRate (Maybe Text)+vrrSource+  = lens _vrrSource (\ s a -> s{_vrrSource = a})++instance GoogleRequest VolumesRecommendedRate where+        type Rs VolumesRecommendedRate =+             BooksVolumesRecommendedRateResponse+        requestClient VolumesRecommendedRate{..}+          = go (Just _vrrRating) (Just _vrrVolumeId) _vrrLocale+              _vrrSource+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy VolumesRecommendedRateResource)+                      mempty
+ gen/Network/Google/Resource/Books/Volumes/UserUploaded/List.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Books.Volumes.UserUploaded.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Return a list of books uploaded by the current user.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.volumes.useruploaded.list@.+module Network.Google.Resource.Books.Volumes.UserUploaded.List+    (+    -- * REST Resource+      VolumesUserUploadedListResource++    -- * Creating a Request+    , volumesUserUploadedList+    , VolumesUserUploadedList++    -- * Request Lenses+    , vuulProcessingState+    , vuulLocale+    , vuulVolumeId+    , vuulSource+    , vuulStartIndex+    , vuulMaxResults+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.volumes.useruploaded.list@ method which the+-- 'VolumesUserUploadedList' 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++-- | Return a list of books uploaded by the current user.+--+-- /See:/ 'volumesUserUploadedList' smart constructor.+data VolumesUserUploadedList = VolumesUserUploadedList+    { _vuulProcessingState :: !(Maybe [VolumesUserUploadedListProcessingState])+    , _vuulLocale          :: !(Maybe Text)+    , _vuulVolumeId        :: !(Maybe [Text])+    , _vuulSource          :: !(Maybe Text)+    , _vuulStartIndex      :: !(Maybe (Textual Word32))+    , _vuulMaxResults      :: !(Maybe (Textual Word32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumesUserUploadedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vuulProcessingState'+--+-- * 'vuulLocale'+--+-- * 'vuulVolumeId'+--+-- * 'vuulSource'+--+-- * 'vuulStartIndex'+--+-- * 'vuulMaxResults'+volumesUserUploadedList+    :: VolumesUserUploadedList+volumesUserUploadedList =+    VolumesUserUploadedList+    { _vuulProcessingState = Nothing+    , _vuulLocale = Nothing+    , _vuulVolumeId = Nothing+    , _vuulSource = Nothing+    , _vuulStartIndex = Nothing+    , _vuulMaxResults = Nothing+    }++-- | The processing state of the user uploaded volumes to be returned.+vuulProcessingState :: Lens' VolumesUserUploadedList [VolumesUserUploadedListProcessingState]+vuulProcessingState+  = lens _vuulProcessingState+      (\ s a -> s{_vuulProcessingState = a})+      . _Default+      . _Coerce++-- | ISO-639-1 language and ISO-3166-1 country code. Ex: \'en_US\'. Used for+-- generating recommendations.+vuulLocale :: Lens' VolumesUserUploadedList (Maybe Text)+vuulLocale+  = lens _vuulLocale (\ s a -> s{_vuulLocale = a})++-- | The ids of the volumes to be returned. If not specified all that match+-- the processingState are returned.+vuulVolumeId :: Lens' VolumesUserUploadedList [Text]+vuulVolumeId+  = lens _vuulVolumeId (\ s a -> s{_vuulVolumeId = a})+      . _Default+      . _Coerce++-- | String to identify the originator of this request.+vuulSource :: Lens' VolumesUserUploadedList (Maybe Text)+vuulSource+  = lens _vuulSource (\ s a -> s{_vuulSource = a})++-- | Index of the first result to return (starts at 0)+vuulStartIndex :: Lens' VolumesUserUploadedList (Maybe Word32)+vuulStartIndex+  = lens _vuulStartIndex+      (\ s a -> s{_vuulStartIndex = a})+      . mapping _Coerce++-- | Maximum number of results to return.+vuulMaxResults :: Lens' VolumesUserUploadedList (Maybe Word32)+vuulMaxResults+  = lens _vuulMaxResults+      (\ s a -> s{_vuulMaxResults = a})+      . mapping _Coerce++instance GoogleRequest VolumesUserUploadedList where+        type Rs VolumesUserUploadedList = Volumes+        requestClient VolumesUserUploadedList{..}+          = go (_vuulProcessingState ^. _Default) _vuulLocale+              (_vuulVolumeId ^. _Default)+              _vuulSource+              _vuulStartIndex+              _vuulMaxResults+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy VolumesUserUploadedListResource)+                      mempty
+ gogol-books.cabal view
@@ -0,0 +1,91 @@+name:                  gogol-books+version:               0.0.1+synopsis:              Google Books SDK.+homepage:              https://github.com/brendanhay/gogol+bug-reports:           https://github.com/brendanhay/gogol/issues+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2015 Brendan Hay+category:              Network, Google, Cloud+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md++description:+    Lets you search for books and manage your Google Books library.+    .+    /Warning:/ 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 @v1@+    of the API.++source-repository head+    type:     git+    location: git://github.com/brendanhay/gogol.git++library+    default-language:  Haskell2010+    hs-source-dirs:    src gen++    ghc-options:       -Wall++    exposed-modules:+          Network.Google.Books+        , Network.Google.Books.Types+        , Network.Google.Resource.Books.Bookshelves.Get+        , Network.Google.Resource.Books.Bookshelves.List+        , Network.Google.Resource.Books.Bookshelves.Volumes.List+        , Network.Google.Resource.Books.CloudLoading.AddBook+        , Network.Google.Resource.Books.CloudLoading.DeleteBook+        , Network.Google.Resource.Books.CloudLoading.UpdateBook+        , Network.Google.Resource.Books.Dictionary.ListOfflineMetadata+        , Network.Google.Resource.Books.Layers.AnnotationData.Get+        , Network.Google.Resource.Books.Layers.AnnotationData.List+        , Network.Google.Resource.Books.Layers.Get+        , Network.Google.Resource.Books.Layers.List+        , Network.Google.Resource.Books.Layers.VolumeAnnotations.Get+        , Network.Google.Resource.Books.Layers.VolumeAnnotations.List+        , Network.Google.Resource.Books.MyConfig.GetUserSettings+        , Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess+        , Network.Google.Resource.Books.MyConfig.RequestAccess+        , Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses+        , Network.Google.Resource.Books.MyConfig.UpdateUserSettings+        , Network.Google.Resource.Books.MyLibrary.Annotations.Delete+        , Network.Google.Resource.Books.MyLibrary.Annotations.Insert+        , Network.Google.Resource.Books.MyLibrary.Annotations.List+        , Network.Google.Resource.Books.MyLibrary.Annotations.Summary+        , Network.Google.Resource.Books.MyLibrary.Annotations.Update+        , Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume+        , Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes+        , Network.Google.Resource.Books.MyLibrary.Bookshelves.Get+        , Network.Google.Resource.Books.MyLibrary.Bookshelves.List+        , Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume+        , Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume+        , Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List+        , Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get+        , Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition+        , Network.Google.Resource.Books.Notification.Get+        , Network.Google.Resource.Books.Onboarding.ListCategories+        , Network.Google.Resource.Books.Onboarding.ListCategoryVolumes+        , Network.Google.Resource.Books.Personalizedstream.Get+        , Network.Google.Resource.Books.PromoOffer.Accept+        , Network.Google.Resource.Books.PromoOffer.Dismiss+        , Network.Google.Resource.Books.PromoOffer.Get+        , Network.Google.Resource.Books.Volumes.Associated.List+        , Network.Google.Resource.Books.Volumes.Get+        , Network.Google.Resource.Books.Volumes.List+        , Network.Google.Resource.Books.Volumes.Mybooks.List+        , Network.Google.Resource.Books.Volumes.Recommended.List+        , Network.Google.Resource.Books.Volumes.Recommended.Rate+        , Network.Google.Resource.Books.Volumes.UserUploaded.List++    other-modules:+          Network.Google.Books.Types.Product+        , Network.Google.Books.Types.Sum++    build-depends:+          gogol-core == 0.0.1.*+        , base       >= 4.7 && < 5