packages feed

gogol-books 0.0.1 → 0.1.0

raw patch · 54 files changed

+8514/−7410 lines, 54 filesdep ~gogol-corePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: gogol-core

API changes (from Hackage documentation)

- Network.Google.Books: nLinkURL :: Lens' Notification (Maybe Text)
- Network.Google.Books.Types: nLinkURL :: Lens' Notification (Maybe Text)
- Network.Google.Resource.Books.Bookshelves.Get: instance GHC.Generics.Constructor Network.Google.Resource.Books.Bookshelves.Get.C1_0BookshelvesGet
- Network.Google.Resource.Books.Bookshelves.Get: instance GHC.Generics.Datatype Network.Google.Resource.Books.Bookshelves.Get.D1BookshelvesGet
- Network.Google.Resource.Books.Bookshelves.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Bookshelves.Get.S1_0_0BookshelvesGet
- Network.Google.Resource.Books.Bookshelves.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Bookshelves.Get.S1_0_1BookshelvesGet
- Network.Google.Resource.Books.Bookshelves.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Bookshelves.Get.S1_0_2BookshelvesGet
- Network.Google.Resource.Books.Bookshelves.List: instance GHC.Generics.Constructor Network.Google.Resource.Books.Bookshelves.List.C1_0BookshelvesList
- Network.Google.Resource.Books.Bookshelves.List: instance GHC.Generics.Datatype Network.Google.Resource.Books.Bookshelves.List.D1BookshelvesList
- Network.Google.Resource.Books.Bookshelves.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Bookshelves.List.S1_0_0BookshelvesList
- Network.Google.Resource.Books.Bookshelves.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Bookshelves.List.S1_0_1BookshelvesList
- Network.Google.Resource.Books.Bookshelves.Volumes.List: instance GHC.Generics.Constructor Network.Google.Resource.Books.Bookshelves.Volumes.List.C1_0BookshelvesVolumesList
- Network.Google.Resource.Books.Bookshelves.Volumes.List: instance GHC.Generics.Datatype Network.Google.Resource.Books.Bookshelves.Volumes.List.D1BookshelvesVolumesList
- Network.Google.Resource.Books.Bookshelves.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Bookshelves.Volumes.List.S1_0_0BookshelvesVolumesList
- Network.Google.Resource.Books.Bookshelves.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Bookshelves.Volumes.List.S1_0_1BookshelvesVolumesList
- Network.Google.Resource.Books.Bookshelves.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Bookshelves.Volumes.List.S1_0_2BookshelvesVolumesList
- Network.Google.Resource.Books.Bookshelves.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Bookshelves.Volumes.List.S1_0_3BookshelvesVolumesList
- Network.Google.Resource.Books.Bookshelves.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Bookshelves.Volumes.List.S1_0_4BookshelvesVolumesList
- Network.Google.Resource.Books.Bookshelves.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Bookshelves.Volumes.List.S1_0_5BookshelvesVolumesList
- Network.Google.Resource.Books.CloudLoading.AddBook: instance GHC.Generics.Constructor Network.Google.Resource.Books.CloudLoading.AddBook.C1_0CloudLoadingAddBook
- Network.Google.Resource.Books.CloudLoading.AddBook: instance GHC.Generics.Datatype Network.Google.Resource.Books.CloudLoading.AddBook.D1CloudLoadingAddBook
- Network.Google.Resource.Books.CloudLoading.AddBook: instance GHC.Generics.Selector Network.Google.Resource.Books.CloudLoading.AddBook.S1_0_0CloudLoadingAddBook
- Network.Google.Resource.Books.CloudLoading.AddBook: instance GHC.Generics.Selector Network.Google.Resource.Books.CloudLoading.AddBook.S1_0_1CloudLoadingAddBook
- Network.Google.Resource.Books.CloudLoading.AddBook: instance GHC.Generics.Selector Network.Google.Resource.Books.CloudLoading.AddBook.S1_0_2CloudLoadingAddBook
- Network.Google.Resource.Books.CloudLoading.AddBook: instance GHC.Generics.Selector Network.Google.Resource.Books.CloudLoading.AddBook.S1_0_3CloudLoadingAddBook
- Network.Google.Resource.Books.CloudLoading.DeleteBook: instance GHC.Generics.Constructor Network.Google.Resource.Books.CloudLoading.DeleteBook.C1_0CloudLoadingDeleteBook
- Network.Google.Resource.Books.CloudLoading.DeleteBook: instance GHC.Generics.Datatype Network.Google.Resource.Books.CloudLoading.DeleteBook.D1CloudLoadingDeleteBook
- Network.Google.Resource.Books.CloudLoading.DeleteBook: instance GHC.Generics.Selector Network.Google.Resource.Books.CloudLoading.DeleteBook.S1_0_0CloudLoadingDeleteBook
- Network.Google.Resource.Books.CloudLoading.UpdateBook: instance GHC.Generics.Constructor Network.Google.Resource.Books.CloudLoading.UpdateBook.C1_0CloudLoadingUpdateBook
- Network.Google.Resource.Books.CloudLoading.UpdateBook: instance GHC.Generics.Datatype Network.Google.Resource.Books.CloudLoading.UpdateBook.D1CloudLoadingUpdateBook
- Network.Google.Resource.Books.CloudLoading.UpdateBook: instance GHC.Generics.Selector Network.Google.Resource.Books.CloudLoading.UpdateBook.S1_0_0CloudLoadingUpdateBook
- Network.Google.Resource.Books.Dictionary.ListOfflineMetadata: instance GHC.Generics.Constructor Network.Google.Resource.Books.Dictionary.ListOfflineMetadata.C1_0DictionaryListOfflineMetadata
- Network.Google.Resource.Books.Dictionary.ListOfflineMetadata: instance GHC.Generics.Datatype Network.Google.Resource.Books.Dictionary.ListOfflineMetadata.D1DictionaryListOfflineMetadata
- Network.Google.Resource.Books.Dictionary.ListOfflineMetadata: instance GHC.Generics.Selector Network.Google.Resource.Books.Dictionary.ListOfflineMetadata.S1_0_0DictionaryListOfflineMetadata
- Network.Google.Resource.Books.Layers.AnnotationData.Get: instance GHC.Generics.Constructor Network.Google.Resource.Books.Layers.AnnotationData.Get.C1_0LayersAnnotationDataGet
- Network.Google.Resource.Books.Layers.AnnotationData.Get: instance GHC.Generics.Datatype Network.Google.Resource.Books.Layers.AnnotationData.Get.D1LayersAnnotationDataGet
- Network.Google.Resource.Books.Layers.AnnotationData.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.Get.S1_0_0LayersAnnotationDataGet
- Network.Google.Resource.Books.Layers.AnnotationData.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.Get.S1_0_1LayersAnnotationDataGet
- Network.Google.Resource.Books.Layers.AnnotationData.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.Get.S1_0_2LayersAnnotationDataGet
- Network.Google.Resource.Books.Layers.AnnotationData.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.Get.S1_0_3LayersAnnotationDataGet
- Network.Google.Resource.Books.Layers.AnnotationData.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.Get.S1_0_4LayersAnnotationDataGet
- Network.Google.Resource.Books.Layers.AnnotationData.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.Get.S1_0_5LayersAnnotationDataGet
- Network.Google.Resource.Books.Layers.AnnotationData.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.Get.S1_0_6LayersAnnotationDataGet
- Network.Google.Resource.Books.Layers.AnnotationData.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.Get.S1_0_7LayersAnnotationDataGet
- Network.Google.Resource.Books.Layers.AnnotationData.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.Get.S1_0_8LayersAnnotationDataGet
- Network.Google.Resource.Books.Layers.AnnotationData.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.Get.S1_0_9LayersAnnotationDataGet
- Network.Google.Resource.Books.Layers.AnnotationData.List: instance GHC.Generics.Constructor Network.Google.Resource.Books.Layers.AnnotationData.List.C1_0LayersAnnotationDataList
- Network.Google.Resource.Books.Layers.AnnotationData.List: instance GHC.Generics.Datatype Network.Google.Resource.Books.Layers.AnnotationData.List.D1LayersAnnotationDataList
- Network.Google.Resource.Books.Layers.AnnotationData.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.List.S1_0_0LayersAnnotationDataList
- Network.Google.Resource.Books.Layers.AnnotationData.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.List.S1_0_10LayersAnnotationDataList
- Network.Google.Resource.Books.Layers.AnnotationData.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.List.S1_0_11LayersAnnotationDataList
- Network.Google.Resource.Books.Layers.AnnotationData.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.List.S1_0_12LayersAnnotationDataList
- Network.Google.Resource.Books.Layers.AnnotationData.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.List.S1_0_1LayersAnnotationDataList
- Network.Google.Resource.Books.Layers.AnnotationData.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.List.S1_0_2LayersAnnotationDataList
- Network.Google.Resource.Books.Layers.AnnotationData.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.List.S1_0_3LayersAnnotationDataList
- Network.Google.Resource.Books.Layers.AnnotationData.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.List.S1_0_4LayersAnnotationDataList
- Network.Google.Resource.Books.Layers.AnnotationData.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.List.S1_0_5LayersAnnotationDataList
- Network.Google.Resource.Books.Layers.AnnotationData.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.List.S1_0_6LayersAnnotationDataList
- Network.Google.Resource.Books.Layers.AnnotationData.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.List.S1_0_7LayersAnnotationDataList
- Network.Google.Resource.Books.Layers.AnnotationData.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.List.S1_0_8LayersAnnotationDataList
- Network.Google.Resource.Books.Layers.AnnotationData.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.AnnotationData.List.S1_0_9LayersAnnotationDataList
- Network.Google.Resource.Books.Layers.Get: instance GHC.Generics.Constructor Network.Google.Resource.Books.Layers.Get.C1_0LayersGet
- Network.Google.Resource.Books.Layers.Get: instance GHC.Generics.Datatype Network.Google.Resource.Books.Layers.Get.D1LayersGet
- Network.Google.Resource.Books.Layers.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.Get.S1_0_0LayersGet
- Network.Google.Resource.Books.Layers.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.Get.S1_0_1LayersGet
- Network.Google.Resource.Books.Layers.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.Get.S1_0_2LayersGet
- Network.Google.Resource.Books.Layers.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.Get.S1_0_3LayersGet
- Network.Google.Resource.Books.Layers.List: instance GHC.Generics.Constructor Network.Google.Resource.Books.Layers.List.C1_0LayersList
- Network.Google.Resource.Books.Layers.List: instance GHC.Generics.Datatype Network.Google.Resource.Books.Layers.List.D1LayersList
- Network.Google.Resource.Books.Layers.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.List.S1_0_0LayersList
- Network.Google.Resource.Books.Layers.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.List.S1_0_1LayersList
- Network.Google.Resource.Books.Layers.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.List.S1_0_2LayersList
- Network.Google.Resource.Books.Layers.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.List.S1_0_3LayersList
- Network.Google.Resource.Books.Layers.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.List.S1_0_4LayersList
- Network.Google.Resource.Books.Layers.VolumeAnnotations.Get: instance GHC.Generics.Constructor Network.Google.Resource.Books.Layers.VolumeAnnotations.Get.C1_0LayersVolumeAnnotationsGet
- Network.Google.Resource.Books.Layers.VolumeAnnotations.Get: instance GHC.Generics.Datatype Network.Google.Resource.Books.Layers.VolumeAnnotations.Get.D1LayersVolumeAnnotationsGet
- Network.Google.Resource.Books.Layers.VolumeAnnotations.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.Get.S1_0_0LayersVolumeAnnotationsGet
- Network.Google.Resource.Books.Layers.VolumeAnnotations.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.Get.S1_0_1LayersVolumeAnnotationsGet
- Network.Google.Resource.Books.Layers.VolumeAnnotations.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.Get.S1_0_2LayersVolumeAnnotationsGet
- Network.Google.Resource.Books.Layers.VolumeAnnotations.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.Get.S1_0_3LayersVolumeAnnotationsGet
- Network.Google.Resource.Books.Layers.VolumeAnnotations.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.Get.S1_0_4LayersVolumeAnnotationsGet
- Network.Google.Resource.Books.Layers.VolumeAnnotations.List: instance GHC.Generics.Constructor Network.Google.Resource.Books.Layers.VolumeAnnotations.List.C1_0LayersVolumeAnnotationsList
- Network.Google.Resource.Books.Layers.VolumeAnnotations.List: instance GHC.Generics.Datatype Network.Google.Resource.Books.Layers.VolumeAnnotations.List.D1LayersVolumeAnnotationsList
- Network.Google.Resource.Books.Layers.VolumeAnnotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.List.S1_0_0LayersVolumeAnnotationsList
- Network.Google.Resource.Books.Layers.VolumeAnnotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.List.S1_0_10LayersVolumeAnnotationsList
- Network.Google.Resource.Books.Layers.VolumeAnnotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.List.S1_0_11LayersVolumeAnnotationsList
- Network.Google.Resource.Books.Layers.VolumeAnnotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.List.S1_0_12LayersVolumeAnnotationsList
- Network.Google.Resource.Books.Layers.VolumeAnnotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.List.S1_0_13LayersVolumeAnnotationsList
- Network.Google.Resource.Books.Layers.VolumeAnnotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.List.S1_0_14LayersVolumeAnnotationsList
- Network.Google.Resource.Books.Layers.VolumeAnnotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.List.S1_0_1LayersVolumeAnnotationsList
- Network.Google.Resource.Books.Layers.VolumeAnnotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.List.S1_0_2LayersVolumeAnnotationsList
- Network.Google.Resource.Books.Layers.VolumeAnnotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.List.S1_0_3LayersVolumeAnnotationsList
- Network.Google.Resource.Books.Layers.VolumeAnnotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.List.S1_0_4LayersVolumeAnnotationsList
- Network.Google.Resource.Books.Layers.VolumeAnnotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.List.S1_0_5LayersVolumeAnnotationsList
- Network.Google.Resource.Books.Layers.VolumeAnnotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.List.S1_0_6LayersVolumeAnnotationsList
- Network.Google.Resource.Books.Layers.VolumeAnnotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.List.S1_0_7LayersVolumeAnnotationsList
- Network.Google.Resource.Books.Layers.VolumeAnnotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.List.S1_0_8LayersVolumeAnnotationsList
- Network.Google.Resource.Books.Layers.VolumeAnnotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Layers.VolumeAnnotations.List.S1_0_9LayersVolumeAnnotationsList
- Network.Google.Resource.Books.MyConfig.GetUserSettings: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyConfig.GetUserSettings.C1_0MyConfigGetUserSettings
- Network.Google.Resource.Books.MyConfig.GetUserSettings: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyConfig.GetUserSettings.D1MyConfigGetUserSettings
- Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess.C1_0MyConfigReleaseDownloadAccess
- Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess.D1MyConfigReleaseDownloadAccess
- Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess: instance GHC.Generics.Selector Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess.S1_0_0MyConfigReleaseDownloadAccess
- Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess: instance GHC.Generics.Selector Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess.S1_0_1MyConfigReleaseDownloadAccess
- Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess: instance GHC.Generics.Selector Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess.S1_0_2MyConfigReleaseDownloadAccess
- Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess: instance GHC.Generics.Selector Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess.S1_0_3MyConfigReleaseDownloadAccess
- Network.Google.Resource.Books.MyConfig.RequestAccess: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyConfig.RequestAccess.C1_0MyConfigRequestAccess
- Network.Google.Resource.Books.MyConfig.RequestAccess: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyConfig.RequestAccess.D1MyConfigRequestAccess
- Network.Google.Resource.Books.MyConfig.RequestAccess: instance GHC.Generics.Selector Network.Google.Resource.Books.MyConfig.RequestAccess.S1_0_0MyConfigRequestAccess
- Network.Google.Resource.Books.MyConfig.RequestAccess: instance GHC.Generics.Selector Network.Google.Resource.Books.MyConfig.RequestAccess.S1_0_1MyConfigRequestAccess
- Network.Google.Resource.Books.MyConfig.RequestAccess: instance GHC.Generics.Selector Network.Google.Resource.Books.MyConfig.RequestAccess.S1_0_2MyConfigRequestAccess
- Network.Google.Resource.Books.MyConfig.RequestAccess: instance GHC.Generics.Selector Network.Google.Resource.Books.MyConfig.RequestAccess.S1_0_3MyConfigRequestAccess
- Network.Google.Resource.Books.MyConfig.RequestAccess: instance GHC.Generics.Selector Network.Google.Resource.Books.MyConfig.RequestAccess.S1_0_4MyConfigRequestAccess
- Network.Google.Resource.Books.MyConfig.RequestAccess: instance GHC.Generics.Selector Network.Google.Resource.Books.MyConfig.RequestAccess.S1_0_5MyConfigRequestAccess
- Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses.C1_0MyConfigSyncVolumeLicenses
- Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses.D1MyConfigSyncVolumeLicenses
- Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses: instance GHC.Generics.Selector Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses.S1_0_0MyConfigSyncVolumeLicenses
- Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses: instance GHC.Generics.Selector Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses.S1_0_1MyConfigSyncVolumeLicenses
- Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses: instance GHC.Generics.Selector Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses.S1_0_2MyConfigSyncVolumeLicenses
- Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses: instance GHC.Generics.Selector Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses.S1_0_3MyConfigSyncVolumeLicenses
- Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses: instance GHC.Generics.Selector Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses.S1_0_4MyConfigSyncVolumeLicenses
- Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses: instance GHC.Generics.Selector Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses.S1_0_5MyConfigSyncVolumeLicenses
- Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses: instance GHC.Generics.Selector Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses.S1_0_6MyConfigSyncVolumeLicenses
- Network.Google.Resource.Books.MyConfig.UpdateUserSettings: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyConfig.UpdateUserSettings.C1_0MyConfigUpdateUserSettings
- Network.Google.Resource.Books.MyConfig.UpdateUserSettings: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyConfig.UpdateUserSettings.D1MyConfigUpdateUserSettings
- Network.Google.Resource.Books.MyConfig.UpdateUserSettings: instance GHC.Generics.Selector Network.Google.Resource.Books.MyConfig.UpdateUserSettings.S1_0_0MyConfigUpdateUserSettings
- Network.Google.Resource.Books.MyLibrary.Annotations.Delete: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyLibrary.Annotations.Delete.C1_0MyLibraryAnnotationsDelete
- Network.Google.Resource.Books.MyLibrary.Annotations.Delete: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyLibrary.Annotations.Delete.D1MyLibraryAnnotationsDelete
- Network.Google.Resource.Books.MyLibrary.Annotations.Delete: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.Delete.S1_0_0MyLibraryAnnotationsDelete
- Network.Google.Resource.Books.MyLibrary.Annotations.Delete: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.Delete.S1_0_1MyLibraryAnnotationsDelete
- Network.Google.Resource.Books.MyLibrary.Annotations.Insert: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyLibrary.Annotations.Insert.C1_0MyLibraryAnnotationsInsert
- Network.Google.Resource.Books.MyLibrary.Annotations.Insert: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyLibrary.Annotations.Insert.D1MyLibraryAnnotationsInsert
- Network.Google.Resource.Books.MyLibrary.Annotations.Insert: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.Insert.S1_0_0MyLibraryAnnotationsInsert
- Network.Google.Resource.Books.MyLibrary.Annotations.Insert: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.Insert.S1_0_1MyLibraryAnnotationsInsert
- Network.Google.Resource.Books.MyLibrary.Annotations.Insert: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.Insert.S1_0_2MyLibraryAnnotationsInsert
- Network.Google.Resource.Books.MyLibrary.Annotations.Insert: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.Insert.S1_0_3MyLibraryAnnotationsInsert
- Network.Google.Resource.Books.MyLibrary.Annotations.List: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyLibrary.Annotations.List.C1_0MyLibraryAnnotationsList
- Network.Google.Resource.Books.MyLibrary.Annotations.List: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyLibrary.Annotations.List.D1MyLibraryAnnotationsList
- Network.Google.Resource.Books.MyLibrary.Annotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.List.S1_0_0MyLibraryAnnotationsList
- Network.Google.Resource.Books.MyLibrary.Annotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.List.S1_0_1MyLibraryAnnotationsList
- Network.Google.Resource.Books.MyLibrary.Annotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.List.S1_0_2MyLibraryAnnotationsList
- Network.Google.Resource.Books.MyLibrary.Annotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.List.S1_0_3MyLibraryAnnotationsList
- Network.Google.Resource.Books.MyLibrary.Annotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.List.S1_0_4MyLibraryAnnotationsList
- Network.Google.Resource.Books.MyLibrary.Annotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.List.S1_0_5MyLibraryAnnotationsList
- Network.Google.Resource.Books.MyLibrary.Annotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.List.S1_0_6MyLibraryAnnotationsList
- Network.Google.Resource.Books.MyLibrary.Annotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.List.S1_0_7MyLibraryAnnotationsList
- Network.Google.Resource.Books.MyLibrary.Annotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.List.S1_0_8MyLibraryAnnotationsList
- Network.Google.Resource.Books.MyLibrary.Annotations.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.List.S1_0_9MyLibraryAnnotationsList
- Network.Google.Resource.Books.MyLibrary.Annotations.Summary: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyLibrary.Annotations.Summary.C1_0MyLibraryAnnotationsSummary
- Network.Google.Resource.Books.MyLibrary.Annotations.Summary: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyLibrary.Annotations.Summary.D1MyLibraryAnnotationsSummary
- Network.Google.Resource.Books.MyLibrary.Annotations.Summary: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.Summary.S1_0_0MyLibraryAnnotationsSummary
- Network.Google.Resource.Books.MyLibrary.Annotations.Summary: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.Summary.S1_0_1MyLibraryAnnotationsSummary
- Network.Google.Resource.Books.MyLibrary.Annotations.Update: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyLibrary.Annotations.Update.C1_0MyLibraryAnnotationsUpdate
- Network.Google.Resource.Books.MyLibrary.Annotations.Update: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyLibrary.Annotations.Update.D1MyLibraryAnnotationsUpdate
- Network.Google.Resource.Books.MyLibrary.Annotations.Update: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.Update.S1_0_0MyLibraryAnnotationsUpdate
- Network.Google.Resource.Books.MyLibrary.Annotations.Update: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.Update.S1_0_1MyLibraryAnnotationsUpdate
- Network.Google.Resource.Books.MyLibrary.Annotations.Update: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Annotations.Update.S1_0_2MyLibraryAnnotationsUpdate
- Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume.C1_0MyLibraryBookshelvesAddVolume
- Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume.D1MyLibraryBookshelvesAddVolume
- Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume.S1_0_0MyLibraryBookshelvesAddVolume
- Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume.S1_0_1MyLibraryBookshelvesAddVolume
- Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume.S1_0_2MyLibraryBookshelvesAddVolume
- Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume.S1_0_3MyLibraryBookshelvesAddVolume
- Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes.C1_0MyLibraryBookshelvesClearVolumes
- Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes.D1MyLibraryBookshelvesClearVolumes
- Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes.S1_0_0MyLibraryBookshelvesClearVolumes
- Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes.S1_0_1MyLibraryBookshelvesClearVolumes
- Network.Google.Resource.Books.MyLibrary.Bookshelves.Get: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyLibrary.Bookshelves.Get.C1_0MyLibraryBookshelvesGet
- Network.Google.Resource.Books.MyLibrary.Bookshelves.Get: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyLibrary.Bookshelves.Get.D1MyLibraryBookshelvesGet
- Network.Google.Resource.Books.MyLibrary.Bookshelves.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.Get.S1_0_0MyLibraryBookshelvesGet
- Network.Google.Resource.Books.MyLibrary.Bookshelves.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.Get.S1_0_1MyLibraryBookshelvesGet
- Network.Google.Resource.Books.MyLibrary.Bookshelves.List: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyLibrary.Bookshelves.List.C1_0MyLibraryBookshelvesList
- Network.Google.Resource.Books.MyLibrary.Bookshelves.List: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyLibrary.Bookshelves.List.D1MyLibraryBookshelvesList
- Network.Google.Resource.Books.MyLibrary.Bookshelves.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.List.S1_0_0MyLibraryBookshelvesList
- Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume.C1_0MyLibraryBookshelvesMoveVolume
- Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume.D1MyLibraryBookshelvesMoveVolume
- Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume.S1_0_0MyLibraryBookshelvesMoveVolume
- Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume.S1_0_1MyLibraryBookshelvesMoveVolume
- Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume.S1_0_2MyLibraryBookshelvesMoveVolume
- Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume.S1_0_3MyLibraryBookshelvesMoveVolume
- Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume.C1_0MyLibraryBookshelvesRemoveVolume
- Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume.D1MyLibraryBookshelvesRemoveVolume
- Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume.S1_0_0MyLibraryBookshelvesRemoveVolume
- Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume.S1_0_1MyLibraryBookshelvesRemoveVolume
- Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume.S1_0_2MyLibraryBookshelvesRemoveVolume
- Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume.S1_0_3MyLibraryBookshelvesRemoveVolume
- Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List.C1_0MyLibraryBookshelvesVolumesList
- Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List.D1MyLibraryBookshelvesVolumesList
- Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List.S1_0_0MyLibraryBookshelvesVolumesList
- Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List.S1_0_1MyLibraryBookshelvesVolumesList
- Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List.S1_0_2MyLibraryBookshelvesVolumesList
- Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List.S1_0_3MyLibraryBookshelvesVolumesList
- Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List.S1_0_4MyLibraryBookshelvesVolumesList
- Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List.S1_0_5MyLibraryBookshelvesVolumesList
- Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List.S1_0_6MyLibraryBookshelvesVolumesList
- Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List.S1_0_7MyLibraryBookshelvesVolumesList
- Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get.C1_0MyLibraryReadingPositionsGet
- Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get.D1MyLibraryReadingPositionsGet
- Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get.S1_0_0MyLibraryReadingPositionsGet
- Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get.S1_0_1MyLibraryReadingPositionsGet
- Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get.S1_0_2MyLibraryReadingPositionsGet
- Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition: instance GHC.Generics.Constructor Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition.C1_0MyLibraryReadingPositionsSetPosition
- Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition: instance GHC.Generics.Datatype Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition.D1MyLibraryReadingPositionsSetPosition
- Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition.S1_0_0MyLibraryReadingPositionsSetPosition
- Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition.S1_0_1MyLibraryReadingPositionsSetPosition
- Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition.S1_0_2MyLibraryReadingPositionsSetPosition
- Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition.S1_0_3MyLibraryReadingPositionsSetPosition
- Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition.S1_0_4MyLibraryReadingPositionsSetPosition
- Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition.S1_0_5MyLibraryReadingPositionsSetPosition
- Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition: instance GHC.Generics.Selector Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition.S1_0_6MyLibraryReadingPositionsSetPosition
- Network.Google.Resource.Books.Notification.Get: instance GHC.Generics.Constructor Network.Google.Resource.Books.Notification.Get.C1_0NotificationGet
- Network.Google.Resource.Books.Notification.Get: instance GHC.Generics.Datatype Network.Google.Resource.Books.Notification.Get.D1NotificationGet
- Network.Google.Resource.Books.Notification.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Notification.Get.S1_0_0NotificationGet
- Network.Google.Resource.Books.Notification.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Notification.Get.S1_0_1NotificationGet
- Network.Google.Resource.Books.Notification.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Notification.Get.S1_0_2NotificationGet
- Network.Google.Resource.Books.Onboarding.ListCategories: instance GHC.Generics.Constructor Network.Google.Resource.Books.Onboarding.ListCategories.C1_0OnboardingListCategories
- Network.Google.Resource.Books.Onboarding.ListCategories: instance GHC.Generics.Datatype Network.Google.Resource.Books.Onboarding.ListCategories.D1OnboardingListCategories
- Network.Google.Resource.Books.Onboarding.ListCategories: instance GHC.Generics.Selector Network.Google.Resource.Books.Onboarding.ListCategories.S1_0_0OnboardingListCategories
- Network.Google.Resource.Books.Onboarding.ListCategoryVolumes: instance GHC.Generics.Constructor Network.Google.Resource.Books.Onboarding.ListCategoryVolumes.C1_0OnboardingListCategoryVolumes
- Network.Google.Resource.Books.Onboarding.ListCategoryVolumes: instance GHC.Generics.Datatype Network.Google.Resource.Books.Onboarding.ListCategoryVolumes.D1OnboardingListCategoryVolumes
- Network.Google.Resource.Books.Onboarding.ListCategoryVolumes: instance GHC.Generics.Selector Network.Google.Resource.Books.Onboarding.ListCategoryVolumes.S1_0_0OnboardingListCategoryVolumes
- Network.Google.Resource.Books.Onboarding.ListCategoryVolumes: instance GHC.Generics.Selector Network.Google.Resource.Books.Onboarding.ListCategoryVolumes.S1_0_1OnboardingListCategoryVolumes
- Network.Google.Resource.Books.Onboarding.ListCategoryVolumes: instance GHC.Generics.Selector Network.Google.Resource.Books.Onboarding.ListCategoryVolumes.S1_0_2OnboardingListCategoryVolumes
- Network.Google.Resource.Books.Onboarding.ListCategoryVolumes: instance GHC.Generics.Selector Network.Google.Resource.Books.Onboarding.ListCategoryVolumes.S1_0_3OnboardingListCategoryVolumes
- Network.Google.Resource.Books.Onboarding.ListCategoryVolumes: instance GHC.Generics.Selector Network.Google.Resource.Books.Onboarding.ListCategoryVolumes.S1_0_4OnboardingListCategoryVolumes
- Network.Google.Resource.Books.Personalizedstream.Get: instance GHC.Generics.Constructor Network.Google.Resource.Books.Personalizedstream.Get.C1_0PersonalizedstreamGet
- Network.Google.Resource.Books.Personalizedstream.Get: instance GHC.Generics.Datatype Network.Google.Resource.Books.Personalizedstream.Get.D1PersonalizedstreamGet
- Network.Google.Resource.Books.Personalizedstream.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Personalizedstream.Get.S1_0_0PersonalizedstreamGet
- Network.Google.Resource.Books.Personalizedstream.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Personalizedstream.Get.S1_0_1PersonalizedstreamGet
- Network.Google.Resource.Books.Personalizedstream.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Personalizedstream.Get.S1_0_2PersonalizedstreamGet
- Network.Google.Resource.Books.PromoOffer.Accept: instance GHC.Generics.Constructor Network.Google.Resource.Books.PromoOffer.Accept.C1_0PromoOfferAccept
- Network.Google.Resource.Books.PromoOffer.Accept: instance GHC.Generics.Datatype Network.Google.Resource.Books.PromoOffer.Accept.D1PromoOfferAccept
- Network.Google.Resource.Books.PromoOffer.Accept: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Accept.S1_0_0PromoOfferAccept
- Network.Google.Resource.Books.PromoOffer.Accept: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Accept.S1_0_1PromoOfferAccept
- Network.Google.Resource.Books.PromoOffer.Accept: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Accept.S1_0_2PromoOfferAccept
- Network.Google.Resource.Books.PromoOffer.Accept: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Accept.S1_0_3PromoOfferAccept
- Network.Google.Resource.Books.PromoOffer.Accept: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Accept.S1_0_4PromoOfferAccept
- Network.Google.Resource.Books.PromoOffer.Accept: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Accept.S1_0_5PromoOfferAccept
- Network.Google.Resource.Books.PromoOffer.Accept: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Accept.S1_0_6PromoOfferAccept
- Network.Google.Resource.Books.PromoOffer.Accept: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Accept.S1_0_7PromoOfferAccept
- Network.Google.Resource.Books.PromoOffer.Dismiss: instance GHC.Generics.Constructor Network.Google.Resource.Books.PromoOffer.Dismiss.C1_0PromoOfferDismiss
- Network.Google.Resource.Books.PromoOffer.Dismiss: instance GHC.Generics.Datatype Network.Google.Resource.Books.PromoOffer.Dismiss.D1PromoOfferDismiss
- Network.Google.Resource.Books.PromoOffer.Dismiss: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Dismiss.S1_0_0PromoOfferDismiss
- Network.Google.Resource.Books.PromoOffer.Dismiss: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Dismiss.S1_0_1PromoOfferDismiss
- Network.Google.Resource.Books.PromoOffer.Dismiss: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Dismiss.S1_0_2PromoOfferDismiss
- Network.Google.Resource.Books.PromoOffer.Dismiss: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Dismiss.S1_0_3PromoOfferDismiss
- Network.Google.Resource.Books.PromoOffer.Dismiss: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Dismiss.S1_0_4PromoOfferDismiss
- Network.Google.Resource.Books.PromoOffer.Dismiss: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Dismiss.S1_0_5PromoOfferDismiss
- Network.Google.Resource.Books.PromoOffer.Dismiss: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Dismiss.S1_0_6PromoOfferDismiss
- Network.Google.Resource.Books.PromoOffer.Get: instance GHC.Generics.Constructor Network.Google.Resource.Books.PromoOffer.Get.C1_0PromoOfferGet
- Network.Google.Resource.Books.PromoOffer.Get: instance GHC.Generics.Datatype Network.Google.Resource.Books.PromoOffer.Get.D1PromoOfferGet
- Network.Google.Resource.Books.PromoOffer.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Get.S1_0_0PromoOfferGet
- Network.Google.Resource.Books.PromoOffer.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Get.S1_0_1PromoOfferGet
- Network.Google.Resource.Books.PromoOffer.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Get.S1_0_2PromoOfferGet
- Network.Google.Resource.Books.PromoOffer.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Get.S1_0_3PromoOfferGet
- Network.Google.Resource.Books.PromoOffer.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Get.S1_0_4PromoOfferGet
- Network.Google.Resource.Books.PromoOffer.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.PromoOffer.Get.S1_0_5PromoOfferGet
- Network.Google.Resource.Books.Volumes.Associated.List: instance GHC.Generics.Constructor Network.Google.Resource.Books.Volumes.Associated.List.C1_0VolumesAssociatedList
- Network.Google.Resource.Books.Volumes.Associated.List: instance GHC.Generics.Datatype Network.Google.Resource.Books.Volumes.Associated.List.D1VolumesAssociatedList
- Network.Google.Resource.Books.Volumes.Associated.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Associated.List.S1_0_0VolumesAssociatedList
- Network.Google.Resource.Books.Volumes.Associated.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Associated.List.S1_0_1VolumesAssociatedList
- Network.Google.Resource.Books.Volumes.Associated.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Associated.List.S1_0_2VolumesAssociatedList
- Network.Google.Resource.Books.Volumes.Associated.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Associated.List.S1_0_3VolumesAssociatedList
- Network.Google.Resource.Books.Volumes.Associated.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Associated.List.S1_0_4VolumesAssociatedList
- Network.Google.Resource.Books.Volumes.Get: instance GHC.Generics.Constructor Network.Google.Resource.Books.Volumes.Get.C1_0VolumesGet
- Network.Google.Resource.Books.Volumes.Get: instance GHC.Generics.Datatype Network.Google.Resource.Books.Volumes.Get.D1VolumesGet
- Network.Google.Resource.Books.Volumes.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Get.S1_0_0VolumesGet
- Network.Google.Resource.Books.Volumes.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Get.S1_0_1VolumesGet
- Network.Google.Resource.Books.Volumes.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Get.S1_0_2VolumesGet
- Network.Google.Resource.Books.Volumes.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Get.S1_0_3VolumesGet
- Network.Google.Resource.Books.Volumes.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Get.S1_0_4VolumesGet
- Network.Google.Resource.Books.Volumes.Get: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Get.S1_0_5VolumesGet
- Network.Google.Resource.Books.Volumes.List: instance GHC.Generics.Constructor Network.Google.Resource.Books.Volumes.List.C1_0VolumesList
- Network.Google.Resource.Books.Volumes.List: instance GHC.Generics.Datatype Network.Google.Resource.Books.Volumes.List.D1VolumesList
- Network.Google.Resource.Books.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.List.S1_0_0VolumesList
- Network.Google.Resource.Books.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.List.S1_0_10VolumesList
- Network.Google.Resource.Books.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.List.S1_0_11VolumesList
- Network.Google.Resource.Books.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.List.S1_0_12VolumesList
- Network.Google.Resource.Books.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.List.S1_0_1VolumesList
- Network.Google.Resource.Books.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.List.S1_0_2VolumesList
- Network.Google.Resource.Books.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.List.S1_0_3VolumesList
- Network.Google.Resource.Books.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.List.S1_0_4VolumesList
- Network.Google.Resource.Books.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.List.S1_0_5VolumesList
- Network.Google.Resource.Books.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.List.S1_0_6VolumesList
- Network.Google.Resource.Books.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.List.S1_0_7VolumesList
- Network.Google.Resource.Books.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.List.S1_0_8VolumesList
- Network.Google.Resource.Books.Volumes.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.List.S1_0_9VolumesList
- Network.Google.Resource.Books.Volumes.Mybooks.List: instance GHC.Generics.Constructor Network.Google.Resource.Books.Volumes.Mybooks.List.C1_0VolumesMybooksList
- Network.Google.Resource.Books.Volumes.Mybooks.List: instance GHC.Generics.Datatype Network.Google.Resource.Books.Volumes.Mybooks.List.D1VolumesMybooksList
- Network.Google.Resource.Books.Volumes.Mybooks.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Mybooks.List.S1_0_0VolumesMybooksList
- Network.Google.Resource.Books.Volumes.Mybooks.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Mybooks.List.S1_0_1VolumesMybooksList
- Network.Google.Resource.Books.Volumes.Mybooks.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Mybooks.List.S1_0_2VolumesMybooksList
- Network.Google.Resource.Books.Volumes.Mybooks.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Mybooks.List.S1_0_3VolumesMybooksList
- Network.Google.Resource.Books.Volumes.Mybooks.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Mybooks.List.S1_0_4VolumesMybooksList
- Network.Google.Resource.Books.Volumes.Mybooks.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Mybooks.List.S1_0_5VolumesMybooksList
- Network.Google.Resource.Books.Volumes.Recommended.List: instance GHC.Generics.Constructor Network.Google.Resource.Books.Volumes.Recommended.List.C1_0VolumesRecommendedList
- Network.Google.Resource.Books.Volumes.Recommended.List: instance GHC.Generics.Datatype Network.Google.Resource.Books.Volumes.Recommended.List.D1VolumesRecommendedList
- Network.Google.Resource.Books.Volumes.Recommended.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Recommended.List.S1_0_0VolumesRecommendedList
- Network.Google.Resource.Books.Volumes.Recommended.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Recommended.List.S1_0_1VolumesRecommendedList
- Network.Google.Resource.Books.Volumes.Recommended.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Recommended.List.S1_0_2VolumesRecommendedList
- Network.Google.Resource.Books.Volumes.Recommended.Rate: instance GHC.Generics.Constructor Network.Google.Resource.Books.Volumes.Recommended.Rate.C1_0VolumesRecommendedRate
- Network.Google.Resource.Books.Volumes.Recommended.Rate: instance GHC.Generics.Datatype Network.Google.Resource.Books.Volumes.Recommended.Rate.D1VolumesRecommendedRate
- Network.Google.Resource.Books.Volumes.Recommended.Rate: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Recommended.Rate.S1_0_0VolumesRecommendedRate
- Network.Google.Resource.Books.Volumes.Recommended.Rate: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Recommended.Rate.S1_0_1VolumesRecommendedRate
- Network.Google.Resource.Books.Volumes.Recommended.Rate: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Recommended.Rate.S1_0_2VolumesRecommendedRate
- Network.Google.Resource.Books.Volumes.Recommended.Rate: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.Recommended.Rate.S1_0_3VolumesRecommendedRate
- Network.Google.Resource.Books.Volumes.UserUploaded.List: instance GHC.Generics.Constructor Network.Google.Resource.Books.Volumes.UserUploaded.List.C1_0VolumesUserUploadedList
- Network.Google.Resource.Books.Volumes.UserUploaded.List: instance GHC.Generics.Datatype Network.Google.Resource.Books.Volumes.UserUploaded.List.D1VolumesUserUploadedList
- Network.Google.Resource.Books.Volumes.UserUploaded.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.UserUploaded.List.S1_0_0VolumesUserUploadedList
- Network.Google.Resource.Books.Volumes.UserUploaded.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.UserUploaded.List.S1_0_1VolumesUserUploadedList
- Network.Google.Resource.Books.Volumes.UserUploaded.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.UserUploaded.List.S1_0_2VolumesUserUploadedList
- Network.Google.Resource.Books.Volumes.UserUploaded.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.UserUploaded.List.S1_0_3VolumesUserUploadedList
- Network.Google.Resource.Books.Volumes.UserUploaded.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.UserUploaded.List.S1_0_4VolumesUserUploadedList
- Network.Google.Resource.Books.Volumes.UserUploaded.List: instance GHC.Generics.Selector Network.Google.Resource.Books.Volumes.UserUploaded.List.S1_0_5VolumesUserUploadedList
+ Network.Google.Books: booksScope :: Proxy '["https://www.googleapis.com/auth/books"]
+ Network.Google.Books: data Series
+ Network.Google.Books: data SeriesSeriesItem
+ Network.Google.Books: data Seriesmembership
+ Network.Google.Books: data VolumeUserInfoFamilySharing
+ Network.Google.Books: data VolumeseriesInfo
+ Network.Google.Books: data VolumeseriesInfoVolumeSeriesItem
+ Network.Google.Books: data VolumeseriesInfoVolumeSeriesItemIssueItem
+ Network.Google.Books: nCrmExperimentIds :: Lens' Notification [Int64]
+ Network.Google.Books: nDocId :: Lens' Notification (Maybe Text)
+ Network.Google.Books: nDocType :: Lens' Notification (Maybe Text)
+ Network.Google.Books: nDontShowNotification :: Lens' Notification (Maybe Bool)
+ Network.Google.Books: nNotificationType :: Lens' Notification (Maybe Text)
+ Network.Google.Books: nPcampaignId :: Lens' Notification (Maybe Text)
+ Network.Google.Books: nReason :: Lens' Notification (Maybe Text)
+ Network.Google.Books: nShowNotificationSettingsAction :: Lens' Notification (Maybe Bool)
+ Network.Google.Books: nTargetURL :: Lens' Notification (Maybe Text)
+ Network.Google.Books: sKind :: Lens' Series Text
+ Network.Google.Books: sSeries :: Lens' Series [SeriesSeriesItem]
+ Network.Google.Books: serKind :: Lens' Seriesmembership Text
+ Network.Google.Books: serMember :: Lens' Seriesmembership [Volume]
+ Network.Google.Books: serNextPageToken :: Lens' Seriesmembership (Maybe Text)
+ Network.Google.Books: series :: Series
+ Network.Google.Books: seriesSeriesItem :: SeriesSeriesItem
+ Network.Google.Books: seriesmembership :: Seriesmembership
+ Network.Google.Books: ssiBannerImageURL :: Lens' SeriesSeriesItem (Maybe Text)
+ Network.Google.Books: ssiImageURL :: Lens' SeriesSeriesItem (Maybe Text)
+ Network.Google.Books: ssiSeriesId :: Lens' SeriesSeriesItem (Maybe Text)
+ Network.Google.Books: ssiSeriesType :: Lens' SeriesSeriesItem (Maybe Text)
+ Network.Google.Books: ssiTitle :: Lens' SeriesSeriesItem (Maybe Text)
+ Network.Google.Books: viBookDisplayNumber :: Lens' VolumeseriesInfo (Maybe Text)
+ Network.Google.Books: viKind :: Lens' VolumeseriesInfo Text
+ Network.Google.Books: viShortSeriesBookTitle :: Lens' VolumeseriesInfo (Maybe Text)
+ Network.Google.Books: viVolumeSeries :: Lens' VolumeseriesInfo [VolumeseriesInfoVolumeSeriesItem]
+ Network.Google.Books: vivsiIssue :: Lens' VolumeseriesInfoVolumeSeriesItem [VolumeseriesInfoVolumeSeriesItemIssueItem]
+ Network.Google.Books: vivsiOrderNumber :: Lens' VolumeseriesInfoVolumeSeriesItem (Maybe Int32)
+ Network.Google.Books: vivsiSeriesBookType :: Lens' VolumeseriesInfoVolumeSeriesItem (Maybe Text)
+ Network.Google.Books: vivsiSeriesId :: Lens' VolumeseriesInfoVolumeSeriesItem (Maybe Text)
+ Network.Google.Books: vivsiiiIssueDisplayNumber :: Lens' VolumeseriesInfoVolumeSeriesItemIssueItem (Maybe Text)
+ Network.Google.Books: vivsiiiIssueOrderNumber :: Lens' VolumeseriesInfoVolumeSeriesItemIssueItem (Maybe Int32)
+ Network.Google.Books: volumeUserInfoFamilySharing :: VolumeUserInfoFamilySharing
+ Network.Google.Books: volumeseriesInfo :: VolumeseriesInfo
+ Network.Google.Books: volumeseriesInfoVolumeSeriesItem :: VolumeseriesInfoVolumeSeriesItem
+ Network.Google.Books: volumeseriesInfoVolumeSeriesItemIssueItem :: VolumeseriesInfoVolumeSeriesItemIssueItem
+ Network.Google.Books: vuiAcquiredTime :: Lens' VolumeUserInfo (Maybe UTCTime)
+ Network.Google.Books: vuiFamilySharing :: Lens' VolumeUserInfo (Maybe VolumeUserInfoFamilySharing)
+ Network.Google.Books: vuiIsFamilySharedFromUser :: Lens' VolumeUserInfo (Maybe Bool)
+ Network.Google.Books: vuiIsFamilySharedToUser :: Lens' VolumeUserInfo (Maybe Bool)
+ Network.Google.Books: vuiIsFamilySharingAllowed :: Lens' VolumeUserInfo (Maybe Bool)
+ Network.Google.Books: vuiIsFamilySharingDisabledByFop :: Lens' VolumeUserInfo (Maybe Bool)
+ Network.Google.Books: vuifsFamilyRole :: Lens' VolumeUserInfoFamilySharing (Maybe Text)
+ Network.Google.Books: vuifsIsSharingAllowed :: Lens' VolumeUserInfoFamilySharing (Maybe Bool)
+ Network.Google.Books: vuifsIsSharingDisabledByFop :: Lens' VolumeUserInfoFamilySharing (Maybe Bool)
+ Network.Google.Books: vviSeriesInfo :: Lens' VolumeVolumeInfo (Maybe VolumeseriesInfo)
+ Network.Google.Books.Types: data Series
+ Network.Google.Books.Types: data SeriesSeriesItem
+ Network.Google.Books.Types: data Seriesmembership
+ Network.Google.Books.Types: data VolumeUserInfoFamilySharing
+ Network.Google.Books.Types: data VolumeseriesInfo
+ Network.Google.Books.Types: data VolumeseriesInfoVolumeSeriesItem
+ Network.Google.Books.Types: data VolumeseriesInfoVolumeSeriesItemIssueItem
+ Network.Google.Books.Types: nCrmExperimentIds :: Lens' Notification [Int64]
+ Network.Google.Books.Types: nDocId :: Lens' Notification (Maybe Text)
+ Network.Google.Books.Types: nDocType :: Lens' Notification (Maybe Text)
+ Network.Google.Books.Types: nDontShowNotification :: Lens' Notification (Maybe Bool)
+ Network.Google.Books.Types: nNotificationType :: Lens' Notification (Maybe Text)
+ Network.Google.Books.Types: nPcampaignId :: Lens' Notification (Maybe Text)
+ Network.Google.Books.Types: nReason :: Lens' Notification (Maybe Text)
+ Network.Google.Books.Types: nShowNotificationSettingsAction :: Lens' Notification (Maybe Bool)
+ Network.Google.Books.Types: nTargetURL :: Lens' Notification (Maybe Text)
+ Network.Google.Books.Types: sKind :: Lens' Series Text
+ Network.Google.Books.Types: sSeries :: Lens' Series [SeriesSeriesItem]
+ Network.Google.Books.Types: serKind :: Lens' Seriesmembership Text
+ Network.Google.Books.Types: serMember :: Lens' Seriesmembership [Volume]
+ Network.Google.Books.Types: serNextPageToken :: Lens' Seriesmembership (Maybe Text)
+ Network.Google.Books.Types: series :: Series
+ Network.Google.Books.Types: seriesSeriesItem :: SeriesSeriesItem
+ Network.Google.Books.Types: seriesmembership :: Seriesmembership
+ Network.Google.Books.Types: ssiBannerImageURL :: Lens' SeriesSeriesItem (Maybe Text)
+ Network.Google.Books.Types: ssiImageURL :: Lens' SeriesSeriesItem (Maybe Text)
+ Network.Google.Books.Types: ssiSeriesId :: Lens' SeriesSeriesItem (Maybe Text)
+ Network.Google.Books.Types: ssiSeriesType :: Lens' SeriesSeriesItem (Maybe Text)
+ Network.Google.Books.Types: ssiTitle :: Lens' SeriesSeriesItem (Maybe Text)
+ Network.Google.Books.Types: viBookDisplayNumber :: Lens' VolumeseriesInfo (Maybe Text)
+ Network.Google.Books.Types: viKind :: Lens' VolumeseriesInfo Text
+ Network.Google.Books.Types: viShortSeriesBookTitle :: Lens' VolumeseriesInfo (Maybe Text)
+ Network.Google.Books.Types: viVolumeSeries :: Lens' VolumeseriesInfo [VolumeseriesInfoVolumeSeriesItem]
+ Network.Google.Books.Types: vivsiIssue :: Lens' VolumeseriesInfoVolumeSeriesItem [VolumeseriesInfoVolumeSeriesItemIssueItem]
+ Network.Google.Books.Types: vivsiOrderNumber :: Lens' VolumeseriesInfoVolumeSeriesItem (Maybe Int32)
+ Network.Google.Books.Types: vivsiSeriesBookType :: Lens' VolumeseriesInfoVolumeSeriesItem (Maybe Text)
+ Network.Google.Books.Types: vivsiSeriesId :: Lens' VolumeseriesInfoVolumeSeriesItem (Maybe Text)
+ Network.Google.Books.Types: vivsiiiIssueDisplayNumber :: Lens' VolumeseriesInfoVolumeSeriesItemIssueItem (Maybe Text)
+ Network.Google.Books.Types: vivsiiiIssueOrderNumber :: Lens' VolumeseriesInfoVolumeSeriesItemIssueItem (Maybe Int32)
+ Network.Google.Books.Types: volumeUserInfoFamilySharing :: VolumeUserInfoFamilySharing
+ Network.Google.Books.Types: volumeseriesInfo :: VolumeseriesInfo
+ Network.Google.Books.Types: volumeseriesInfoVolumeSeriesItem :: VolumeseriesInfoVolumeSeriesItem
+ Network.Google.Books.Types: volumeseriesInfoVolumeSeriesItemIssueItem :: VolumeseriesInfoVolumeSeriesItemIssueItem
+ Network.Google.Books.Types: vuiAcquiredTime :: Lens' VolumeUserInfo (Maybe UTCTime)
+ Network.Google.Books.Types: vuiFamilySharing :: Lens' VolumeUserInfo (Maybe VolumeUserInfoFamilySharing)
+ Network.Google.Books.Types: vuiIsFamilySharedFromUser :: Lens' VolumeUserInfo (Maybe Bool)
+ Network.Google.Books.Types: vuiIsFamilySharedToUser :: Lens' VolumeUserInfo (Maybe Bool)
+ Network.Google.Books.Types: vuiIsFamilySharingAllowed :: Lens' VolumeUserInfo (Maybe Bool)
+ Network.Google.Books.Types: vuiIsFamilySharingDisabledByFop :: Lens' VolumeUserInfo (Maybe Bool)
+ Network.Google.Books.Types: vuifsFamilyRole :: Lens' VolumeUserInfoFamilySharing (Maybe Text)
+ Network.Google.Books.Types: vuifsIsSharingAllowed :: Lens' VolumeUserInfoFamilySharing (Maybe Bool)
+ Network.Google.Books.Types: vuifsIsSharingDisabledByFop :: Lens' VolumeUserInfoFamilySharing (Maybe Bool)
+ Network.Google.Books.Types: vviSeriesInfo :: Lens' VolumeVolumeInfo (Maybe VolumeseriesInfo)
+ Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses: mcsvlIncludeNonComicsSeries :: Lens' MyConfigSyncVolumeLicenses (Maybe Bool)
+ Network.Google.Resource.Books.Series.Get: data SeriesGet
+ Network.Google.Resource.Books.Series.Get: instance Data.Data.Data Network.Google.Resource.Books.Series.Get.SeriesGet
+ Network.Google.Resource.Books.Series.Get: instance GHC.Classes.Eq Network.Google.Resource.Books.Series.Get.SeriesGet
+ Network.Google.Resource.Books.Series.Get: instance GHC.Generics.Generic Network.Google.Resource.Books.Series.Get.SeriesGet
+ Network.Google.Resource.Books.Series.Get: instance GHC.Show.Show Network.Google.Resource.Books.Series.Get.SeriesGet
+ Network.Google.Resource.Books.Series.Get: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Series.Get.SeriesGet
+ Network.Google.Resource.Books.Series.Get: seriesGet :: [Text] -> SeriesGet
+ Network.Google.Resource.Books.Series.Get: sgSeriesId :: Lens' SeriesGet [Text]
+ Network.Google.Resource.Books.Series.Get: type SeriesGetResource = "books" :> ("v1" :> ("series" :> ("get" :> (QueryParams "series_id" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Series)))))
+ Network.Google.Resource.Books.Series.Membership.Get: data SeriesMembershipGet
+ Network.Google.Resource.Books.Series.Membership.Get: instance Data.Data.Data Network.Google.Resource.Books.Series.Membership.Get.SeriesMembershipGet
+ Network.Google.Resource.Books.Series.Membership.Get: instance GHC.Classes.Eq Network.Google.Resource.Books.Series.Membership.Get.SeriesMembershipGet
+ Network.Google.Resource.Books.Series.Membership.Get: instance GHC.Generics.Generic Network.Google.Resource.Books.Series.Membership.Get.SeriesMembershipGet
+ Network.Google.Resource.Books.Series.Membership.Get: instance GHC.Show.Show Network.Google.Resource.Books.Series.Membership.Get.SeriesMembershipGet
+ Network.Google.Resource.Books.Series.Membership.Get: instance Network.Google.Types.GoogleRequest Network.Google.Resource.Books.Series.Membership.Get.SeriesMembershipGet
+ Network.Google.Resource.Books.Series.Membership.Get: seriesMembershipGet :: Text -> SeriesMembershipGet
+ Network.Google.Resource.Books.Series.Membership.Get: smgPageSize :: Lens' SeriesMembershipGet (Maybe Word32)
+ Network.Google.Resource.Books.Series.Membership.Get: smgPageToken :: Lens' SeriesMembershipGet (Maybe Text)
+ Network.Google.Resource.Books.Series.Membership.Get: smgSeriesId :: Lens' SeriesMembershipGet Text
+ Network.Google.Resource.Books.Series.Membership.Get: type SeriesMembershipGetResource = "books" :> ("v1" :> ("series" :> ("membership" :> ("get" :> (QueryParam "series_id" Text :> (QueryParam "page_token" Text :> (QueryParam "page_size" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] Seriesmembership))))))))
+ Network.Google.Resource.Books.Volumes.Get: vgIncludeNonComicsSeries :: Lens' VolumesGet (Maybe Bool)
+ Network.Google.Resource.Books.Volumes.Mybooks.List: vmlCountry :: Lens' VolumesMybooksList (Maybe Text)
- Network.Google.Books: annEncodedData :: Lens' AnnotationData (Maybe Word8)
+ Network.Google.Books: annEncodedData :: Lens' AnnotationData (Maybe ByteString)
- Network.Google.Books: booksService :: Service
+ Network.Google.Books: booksService :: ServiceConfig
- Network.Google.Books: 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))))))))))))))))))))))))))))))))))))))))))))
+ Network.Google.Books: type BooksAPI = NotificationGetResource :<|> (SeriesMembershipGetResource :<|> (SeriesGetResource :<|> (OnboardingListCategoriesResource :<|> (OnboardingListCategoryVolumesResource :<|> (MyLibraryAnnotationsSummaryResource :<|> (MyLibraryAnnotationsInsertResource :<|> (MyLibraryAnnotationsListResource :<|> (MyLibraryAnnotationsDeleteResource :<|> (MyLibraryAnnotationsUpdateResource :<|> (MyLibraryReadingPositionsGetResource :<|> (MyLibraryReadingPositionsSetPositionResource :<|> (MyLibraryBookshelvesVolumesListResource :<|> (MyLibraryBookshelvesClearVolumesResource :<|> (MyLibraryBookshelvesListResource :<|> (MyLibraryBookshelvesGetResource :<|> (MyLibraryBookshelvesRemoveVolumeResource :<|> (MyLibraryBookshelvesAddVolumeResource :<|> (MyLibraryBookshelvesMoveVolumeResource :<|> (PromoOfferAcceptResource :<|> (PromoOfferGetResource :<|> (PromoOfferDismissResource :<|> (CloudLoadingAddBookResource :<|> (CloudLoadingUpdateBookResource :<|> (CloudLoadingDeleteBookResource :<|> (LayersVolumeAnnotationsListResource :<|> (LayersVolumeAnnotationsGetResource :<|> (LayersAnnotationDataListResource :<|> (LayersAnnotationDataGetResource :<|> (LayersListResource :<|> (LayersGetResource :<|> (DictionaryListOfflineMetadataResource :<|> (VolumesUserUploadedListResource :<|> (VolumesRecommendedListResource :<|> (VolumesRecommendedRateResource :<|> (VolumesAssociatedListResource :<|> (VolumesMybooksListResource :<|> (VolumesListResource :<|> (VolumesGetResource :<|> (BookshelvesVolumesListResource :<|> (BookshelvesListResource :<|> (BookshelvesGetResource :<|> (PersonalizedstreamGetResource :<|> (MyConfigSyncVolumeLicensesResource :<|> (MyConfigGetUserSettingsResource :<|> (MyConfigRequestAccessResource :<|> (MyConfigUpdateUserSettingsResource :<|> MyConfigReleaseDownloadAccessResource))))))))))))))))))))))))))))))))))))))))))))))
- Network.Google.Books.Types: annEncodedData :: Lens' AnnotationData (Maybe Word8)
+ Network.Google.Books.Types: annEncodedData :: Lens' AnnotationData (Maybe ByteString)
- Network.Google.Books.Types: booksScope :: OAuthScope
+ Network.Google.Books.Types: booksScope :: Proxy '["https://www.googleapis.com/auth/books"]
- Network.Google.Books.Types: booksService :: Service
+ Network.Google.Books.Types: booksService :: ServiceConfig
- Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses: 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)))))))))))
+ Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses: type MyConfigSyncVolumeLicensesResource = "books" :> ("v1" :> ("myconfig" :> ("syncVolumeLicenses" :> (QueryParam "source" Text :> (QueryParam "nonce" Text :> (QueryParam "cpksver" Text :> (QueryParam "locale" Text :> (QueryParam "includeNonComicsSeries" Bool :> (QueryParams "volumeIds" Text :> (QueryParams "features" MyConfigSyncVolumeLicensesFeatures :> (QueryParam "showPreorders" Bool :> (QueryParam "alt" AltJSON :> Post '[JSON] Volumes))))))))))))
- Network.Google.Resource.Books.Volumes.Get: 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)))))))))
+ Network.Google.Resource.Books.Volumes.Get: type VolumesGetResource = "books" :> ("v1" :> ("volumes" :> (Capture "volumeId" Text :> (QueryParam "country" Text :> (QueryParam "includeNonComicsSeries" Bool :> (QueryParam "partner" Text :> (QueryParam "source" Text :> (QueryParam "projection" VolumesGetProjection :> (QueryParam "user_library_consistent_read" Bool :> (QueryParam "alt" AltJSON :> Get '[JSON] Volume))))))))))
- Network.Google.Resource.Books.Volumes.Mybooks.List: 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))))))))))
+ Network.Google.Resource.Books.Volumes.Mybooks.List: type VolumesMybooksListResource = "books" :> ("v1" :> ("volumes" :> ("mybooks" :> (QueryParams "processingState" VolumesMybooksListProcessingState :> (QueryParams "acquireMethod" VolumesMybooksListAcquireMethod :> (QueryParam "country" Text :> (QueryParam "locale" Text :> (QueryParam "source" Text :> (QueryParam "startIndex" (Textual Word32) :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] Volumes)))))))))))

Files

README.md view
@@ -8,7 +8,7 @@  ## Version -`0.0.1`+`0.1.0`   ## Description@@ -18,9 +18,9 @@  ## Contribute -For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).+For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/gogol/issues). -> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.+> _Note:_ this library is an auto-generated Haskell package. Please see `gogol-gen` for more information.   ## Licence
gen/Network/Google/Books.hs view
@@ -7,7 +7,7 @@  -- | -- Module      : Network.Google.Books--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -21,6 +21,9 @@     -- * Service Configuration       booksService +    -- * OAuth Scopes+    , booksScope+     -- * API Declaration     , BooksAPI @@ -143,6 +146,12 @@     -- ** books.promooffer.get     , module Network.Google.Resource.Books.PromoOffer.Get +    -- ** books.series.get+    , module Network.Google.Resource.Books.Series.Get++    -- ** books.series.membership.get+    , module Network.Google.Resource.Books.Series.Membership.Get+     -- ** books.volumes.associated.list     , module Network.Google.Resource.Books.Volumes.Associated.List @@ -258,6 +267,12 @@     , bclrAuthor     , bclrTitle +    -- ** VolumeseriesInfoVolumeSeriesItemIssueItem+    , VolumeseriesInfoVolumeSeriesItemIssueItem+    , volumeseriesInfoVolumeSeriesItemIssueItem+    , vivsiiiIssueOrderNumber+    , vivsiiiIssueDisplayNumber+     -- ** Annotation     , Annotation     , annotation@@ -293,19 +308,25 @@     -- ** VolumeUserInfo     , VolumeUserInfo     , volumeUserInfo+    , vuiIsFamilySharingAllowed+    , vuiIsFamilySharedToUser     , vuiCopy     , vuiUserUploadedVolumeInfo     , vuiIsPurchased     , vuiEntitlementType     , vuiAcquisitionType+    , vuiAcquiredTime     , vuiRentalState     , vuiIsPreOrdered     , vuiReview+    , vuiIsFamilySharedFromUser     , vuiRentalPeriod     , vuiUpdated     , vuiIsUploaded     , vuiIsInMyBooks     , vuiReadingPosition+    , vuiFamilySharing+    , vuiIsFamilySharingDisabledByFop      -- ** Layersummary     , Layersummary@@ -387,6 +408,14 @@     , booksVolumesRecommendedRateResponse     , bvrrrConsistencyToken +    -- ** VolumeseriesInfo+    , VolumeseriesInfo+    , volumeseriesInfo+    , viBookDisplayNumber+    , viKind+    , viShortSeriesBookTitle+    , viVolumeSeries+     -- ** Bookshelf     , Bookshelf     , bookshelf@@ -404,9 +433,17 @@     -- ** Notification     , Notification     , notification+    , nDocType+    , nTargetURL+    , nShowNotificationSettingsAction+    , nDocId     , nKind     , nBody-    , nLinkURL+    , nCrmExperimentIds+    , nPcampaignId+    , nReason+    , nDontShowNotification+    , nNotificationType     , nIconURL     , nTitle @@ -503,6 +540,12 @@     , gdgbiiLatitude     , gdgbiiLongitude +    -- ** Series+    , Series+    , series+    , sKind+    , sSeries+     -- ** OffersItemsItemItemsItem     , OffersItemsItemItemsItem     , offersItemsItemItemsItem@@ -611,6 +654,13 @@     , dddwisisisURL     , dddwisisisAttribution +    -- ** Seriesmembership+    , Seriesmembership+    , seriesmembership+    , serNextPageToken+    , serKind+    , serMember+     -- ** VolumesListFilter     , VolumesListFilter (..) @@ -731,6 +781,15 @@     -- ** MyLibraryBookshelvesAddVolumeReason     , MyLibraryBookshelvesAddVolumeReason (..) +    -- ** SeriesSeriesItem+    , SeriesSeriesItem+    , seriesSeriesItem+    , ssiSeriesId+    , ssiImageURL+    , ssiBannerImageURL+    , ssiTitle+    , ssiSeriesType+     -- ** Metadata     , Metadata     , metadata@@ -873,6 +932,14 @@     , dTotalClusters     , dClusters +    -- ** VolumeseriesInfoVolumeSeriesItem+    , VolumeseriesInfoVolumeSeriesItem+    , volumeseriesInfoVolumeSeriesItem+    , vivsiSeriesId+    , vivsiSeriesBookType+    , vivsiOrderNumber+    , vivsiIssue+     -- ** UserSettingsNotesExport     , UserSettingsNotesExport     , userSettingsNotesExport@@ -940,6 +1007,7 @@     , vviCanonicalVolumeLink     , vviReadingModes     , vviIndustryIdentifiers+    , vviSeriesInfo     , vviPrintedPageCount     , vviMainCategory     , vviContentVersion@@ -981,6 +1049,13 @@     , vsioirpCurrencyCode     , vsioirpAmountInMicros +    -- ** VolumeUserInfoFamilySharing+    , VolumeUserInfoFamilySharing+    , volumeUserInfoFamilySharing+    , vuifsFamilyRole+    , vuifsIsSharingAllowed+    , vuifsIsSharingDisabledByFop+     -- ** VolumeVolumeInfoIndustryIdentifiersItem     , VolumeVolumeInfoIndustryIdentifiersItem     , volumeVolumeInfoIndustryIdentifiersItem@@ -1044,6 +1119,8 @@ 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.Series.Get+import           Network.Google.Resource.Books.Series.Membership.Get import           Network.Google.Resource.Books.Volumes.Associated.List import           Network.Google.Resource.Books.Volumes.Get import           Network.Google.Resource.Books.Volumes.List@@ -1059,7 +1136,9 @@ -- | Represents the entirety of the methods and resources available for the Books API service. type BooksAPI =      NotificationGetResource :<|>-       OnboardingListCategoriesResource+       SeriesMembershipGetResource+       :<|> SeriesGetResource+       :<|> OnboardingListCategoriesResource        :<|> OnboardingListCategoryVolumesResource        :<|> MyLibraryAnnotationsSummaryResource        :<|> MyLibraryAnnotationsInsertResource
gen/Network/Google/Books/Types.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DataKinds          #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric      #-} {-# LANGUAGE NoImplicitPrelude  #-}@@ -7,7 +8,7 @@  -- | -- Module      : Network.Google.Books.Types--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -113,6 +114,12 @@     , bclrAuthor     , bclrTitle +    -- * VolumeseriesInfoVolumeSeriesItemIssueItem+    , VolumeseriesInfoVolumeSeriesItemIssueItem+    , volumeseriesInfoVolumeSeriesItemIssueItem+    , vivsiiiIssueOrderNumber+    , vivsiiiIssueDisplayNumber+     -- * Annotation     , Annotation     , annotation@@ -148,19 +155,25 @@     -- * VolumeUserInfo     , VolumeUserInfo     , volumeUserInfo+    , vuiIsFamilySharingAllowed+    , vuiIsFamilySharedToUser     , vuiCopy     , vuiUserUploadedVolumeInfo     , vuiIsPurchased     , vuiEntitlementType     , vuiAcquisitionType+    , vuiAcquiredTime     , vuiRentalState     , vuiIsPreOrdered     , vuiReview+    , vuiIsFamilySharedFromUser     , vuiRentalPeriod     , vuiUpdated     , vuiIsUploaded     , vuiIsInMyBooks     , vuiReadingPosition+    , vuiFamilySharing+    , vuiIsFamilySharingDisabledByFop      -- * Layersummary     , Layersummary@@ -242,6 +255,14 @@     , booksVolumesRecommendedRateResponse     , bvrrrConsistencyToken +    -- * VolumeseriesInfo+    , VolumeseriesInfo+    , volumeseriesInfo+    , viBookDisplayNumber+    , viKind+    , viShortSeriesBookTitle+    , viVolumeSeries+     -- * Bookshelf     , Bookshelf     , bookshelf@@ -259,9 +280,17 @@     -- * Notification     , Notification     , notification+    , nDocType+    , nTargetURL+    , nShowNotificationSettingsAction+    , nDocId     , nKind     , nBody-    , nLinkURL+    , nCrmExperimentIds+    , nPcampaignId+    , nReason+    , nDontShowNotification+    , nNotificationType     , nIconURL     , nTitle @@ -358,6 +387,12 @@     , gdgbiiLatitude     , gdgbiiLongitude +    -- * Series+    , Series+    , series+    , sKind+    , sSeries+     -- * OffersItemsItemItemsItem     , OffersItemsItemItemsItem     , offersItemsItemItemsItem@@ -466,6 +501,13 @@     , dddwisisisURL     , dddwisisisAttribution +    -- * Seriesmembership+    , Seriesmembership+    , seriesmembership+    , serNextPageToken+    , serKind+    , serMember+     -- * VolumesListFilter     , VolumesListFilter (..) @@ -586,6 +628,15 @@     -- * MyLibraryBookshelvesAddVolumeReason     , MyLibraryBookshelvesAddVolumeReason (..) +    -- * SeriesSeriesItem+    , SeriesSeriesItem+    , seriesSeriesItem+    , ssiSeriesId+    , ssiImageURL+    , ssiBannerImageURL+    , ssiTitle+    , ssiSeriesType+     -- * Metadata     , Metadata     , metadata@@ -728,6 +779,14 @@     , dTotalClusters     , dClusters +    -- * VolumeseriesInfoVolumeSeriesItem+    , VolumeseriesInfoVolumeSeriesItem+    , volumeseriesInfoVolumeSeriesItem+    , vivsiSeriesId+    , vivsiSeriesBookType+    , vivsiOrderNumber+    , vivsiIssue+     -- * UserSettingsNotesExport     , UserSettingsNotesExport     , userSettingsNotesExport@@ -795,6 +854,7 @@     , vviCanonicalVolumeLink     , vviReadingModes     , vviIndustryIdentifiers+    , vviSeriesInfo     , vviPrintedPageCount     , vviMainCategory     , vviContentVersion@@ -836,6 +896,13 @@     , vsioirpCurrencyCode     , vsioirpAmountInMicros +    -- * VolumeUserInfoFamilySharing+    , VolumeUserInfoFamilySharing+    , volumeUserInfoFamilySharing+    , vuifsFamilyRole+    , vuifsIsSharingAllowed+    , vuifsIsSharingDisabledByFop+     -- * VolumeVolumeInfoIndustryIdentifiersItem     , VolumeVolumeInfoIndustryIdentifiersItem     , volumeVolumeInfoIndustryIdentifiersItem@@ -863,11 +930,11 @@ 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 :: ServiceConfig booksService   = defaultService (ServiceId "books:v1")       "www.googleapis.com"  -- | Manage your books-booksScope :: OAuthScope-booksScope = "https://www.googleapis.com/auth/books";+booksScope :: Proxy '["https://www.googleapis.com/auth/books"]+booksScope = Proxy;
gen/Network/Google/Books/Types/Product.hs view
@@ -9,7002 +9,7628 @@  -- | -- 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{..}+-- Copyright   : (c) 2015-2016 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 Base64)+    , _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 ByteString)+annEncodedData+  = lens _annEncodedData+      (\ s a -> s{_annEncodedData = a})+      . mapping _Base64++-- | 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:/ 'volumeseriesInfoVolumeSeriesItemIssueItem' smart constructor.+data VolumeseriesInfoVolumeSeriesItemIssueItem = VolumeseriesInfoVolumeSeriesItemIssueItem'+    { _vivsiiiIssueOrderNumber   :: !(Maybe (Textual Int32))+    , _vivsiiiIssueDisplayNumber :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeseriesInfoVolumeSeriesItemIssueItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vivsiiiIssueOrderNumber'+--+-- * 'vivsiiiIssueDisplayNumber'+volumeseriesInfoVolumeSeriesItemIssueItem+    :: VolumeseriesInfoVolumeSeriesItemIssueItem+volumeseriesInfoVolumeSeriesItemIssueItem =+    VolumeseriesInfoVolumeSeriesItemIssueItem'+    { _vivsiiiIssueOrderNumber = Nothing+    , _vivsiiiIssueDisplayNumber = Nothing+    }++vivsiiiIssueOrderNumber :: Lens' VolumeseriesInfoVolumeSeriesItemIssueItem (Maybe Int32)+vivsiiiIssueOrderNumber+  = lens _vivsiiiIssueOrderNumber+      (\ s a -> s{_vivsiiiIssueOrderNumber = a})+      . mapping _Coerce++vivsiiiIssueDisplayNumber :: Lens' VolumeseriesInfoVolumeSeriesItemIssueItem (Maybe Text)+vivsiiiIssueDisplayNumber+  = lens _vivsiiiIssueDisplayNumber+      (\ s a -> s{_vivsiiiIssueDisplayNumber = a})++instance FromJSON+         VolumeseriesInfoVolumeSeriesItemIssueItem where+        parseJSON+          = withObject+              "VolumeseriesInfoVolumeSeriesItemIssueItem"+              (\ o ->+                 VolumeseriesInfoVolumeSeriesItemIssueItem' <$>+                   (o .:? "issueOrderNumber") <*>+                     (o .:? "issueDisplayNumber"))++instance ToJSON+         VolumeseriesInfoVolumeSeriesItemIssueItem where+        toJSON VolumeseriesInfoVolumeSeriesItemIssueItem'{..}+          = object+              (catMaybes+                 [("issueOrderNumber" .=) <$>+                    _vivsiiiIssueOrderNumber,+                  ("issueDisplayNumber" .=) <$>+                    _vivsiiiIssueDisplayNumber])++--+-- /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'+    { _vuiIsFamilySharingAllowed       :: !(Maybe Bool)+    , _vuiIsFamilySharedToUser         :: !(Maybe Bool)+    , _vuiCopy                         :: !(Maybe VolumeUserInfoCopy)+    , _vuiUserUploadedVolumeInfo       :: !(Maybe VolumeUserInfoUserUploadedVolumeInfo)+    , _vuiIsPurchased                  :: !(Maybe Bool)+    , _vuiEntitlementType              :: !(Maybe (Textual Int32))+    , _vuiAcquisitionType              :: !(Maybe (Textual Int32))+    , _vuiAcquiredTime                 :: !(Maybe DateTime')+    , _vuiRentalState                  :: !(Maybe Text)+    , _vuiIsPreOrdered                 :: !(Maybe Bool)+    , _vuiReview                       :: !(Maybe Review)+    , _vuiIsFamilySharedFromUser       :: !(Maybe Bool)+    , _vuiRentalPeriod                 :: !(Maybe VolumeUserInfoRentalPeriod)+    , _vuiUpdated                      :: !(Maybe DateTime')+    , _vuiIsUploaded                   :: !(Maybe Bool)+    , _vuiIsInMyBooks                  :: !(Maybe Bool)+    , _vuiReadingPosition              :: !(Maybe ReadingPosition)+    , _vuiFamilySharing                :: !(Maybe VolumeUserInfoFamilySharing)+    , _vuiIsFamilySharingDisabledByFop :: !(Maybe Bool)+    } 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:+--+-- * 'vuiIsFamilySharingAllowed'+--+-- * 'vuiIsFamilySharedToUser'+--+-- * 'vuiCopy'+--+-- * 'vuiUserUploadedVolumeInfo'+--+-- * 'vuiIsPurchased'+--+-- * 'vuiEntitlementType'+--+-- * 'vuiAcquisitionType'+--+-- * 'vuiAcquiredTime'+--+-- * 'vuiRentalState'+--+-- * 'vuiIsPreOrdered'+--+-- * 'vuiReview'+--+-- * 'vuiIsFamilySharedFromUser'+--+-- * 'vuiRentalPeriod'+--+-- * 'vuiUpdated'+--+-- * 'vuiIsUploaded'+--+-- * 'vuiIsInMyBooks'+--+-- * 'vuiReadingPosition'+--+-- * 'vuiFamilySharing'+--+-- * 'vuiIsFamilySharingDisabledByFop'+volumeUserInfo+    :: VolumeUserInfo+volumeUserInfo =+    VolumeUserInfo'+    { _vuiIsFamilySharingAllowed = Nothing+    , _vuiIsFamilySharedToUser = Nothing+    , _vuiCopy = Nothing+    , _vuiUserUploadedVolumeInfo = Nothing+    , _vuiIsPurchased = Nothing+    , _vuiEntitlementType = Nothing+    , _vuiAcquisitionType = Nothing+    , _vuiAcquiredTime = Nothing+    , _vuiRentalState = Nothing+    , _vuiIsPreOrdered = Nothing+    , _vuiReview = Nothing+    , _vuiIsFamilySharedFromUser = Nothing+    , _vuiRentalPeriod = Nothing+    , _vuiUpdated = Nothing+    , _vuiIsUploaded = Nothing+    , _vuiIsInMyBooks = Nothing+    , _vuiReadingPosition = Nothing+    , _vuiFamilySharing = Nothing+    , _vuiIsFamilySharingDisabledByFop = Nothing+    }++-- | Deprecated: Replaced by familySharing.+vuiIsFamilySharingAllowed :: Lens' VolumeUserInfo (Maybe Bool)+vuiIsFamilySharingAllowed+  = lens _vuiIsFamilySharingAllowed+      (\ s a -> s{_vuiIsFamilySharingAllowed = a})++-- | Whether or not the user received this volume through family sharing.+vuiIsFamilySharedToUser :: Lens' VolumeUserInfo (Maybe Bool)+vuiIsFamilySharedToUser+  = lens _vuiIsFamilySharedToUser+      (\ s a -> s{_vuiIsFamilySharedToUser = a})++-- | 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++-- | Timestamp when this volume was acquired by the user. (RFC 3339 UTC+-- date-time format) Acquiring includes purchase, user upload, receiving+-- family sharing, etc.+vuiAcquiredTime :: Lens' VolumeUserInfo (Maybe UTCTime)+vuiAcquiredTime+  = lens _vuiAcquiredTime+      (\ s a -> s{_vuiAcquiredTime = a})+      . mapping _DateTime++-- | 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})++-- | Whether or not the user shared this volume with the family.+vuiIsFamilySharedFromUser :: Lens' VolumeUserInfo (Maybe Bool)+vuiIsFamilySharedFromUser+  = lens _vuiIsFamilySharedFromUser+      (\ s a -> s{_vuiIsFamilySharedFromUser = 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})++-- | Information on the ability to share with the family.+vuiFamilySharing :: Lens' VolumeUserInfo (Maybe VolumeUserInfoFamilySharing)+vuiFamilySharing+  = lens _vuiFamilySharing+      (\ s a -> s{_vuiFamilySharing = a})++-- | Deprecated: Replaced by familySharing.+vuiIsFamilySharingDisabledByFop :: Lens' VolumeUserInfo (Maybe Bool)+vuiIsFamilySharingDisabledByFop+  = lens _vuiIsFamilySharingDisabledByFop+      (\ s a -> s{_vuiIsFamilySharingDisabledByFop = a})++instance FromJSON VolumeUserInfo where+        parseJSON+          = withObject "VolumeUserInfo"+              (\ o ->+                 VolumeUserInfo' <$>+                   (o .:? "isFamilySharingAllowed") <*>+                     (o .:? "isFamilySharedToUser")+                     <*> (o .:? "copy")+                     <*> (o .:? "userUploadedVolumeInfo")+                     <*> (o .:? "isPurchased")+                     <*> (o .:? "entitlementType")+                     <*> (o .:? "acquisitionType")+                     <*> (o .:? "acquiredTime")+                     <*> (o .:? "rentalState")+                     <*> (o .:? "isPreordered")+                     <*> (o .:? "review")+                     <*> (o .:? "isFamilySharedFromUser")+                     <*> (o .:? "rentalPeriod")+                     <*> (o .:? "updated")+                     <*> (o .:? "isUploaded")+                     <*> (o .:? "isInMyBooks")+                     <*> (o .:? "readingPosition")+                     <*> (o .:? "familySharing")+                     <*> (o .:? "isFamilySharingDisabledByFop"))++instance ToJSON VolumeUserInfo where+        toJSON VolumeUserInfo'{..}+          = object+              (catMaybes+                 [("isFamilySharingAllowed" .=) <$>+                    _vuiIsFamilySharingAllowed,+                  ("isFamilySharedToUser" .=) <$>+                    _vuiIsFamilySharedToUser,+                  ("copy" .=) <$> _vuiCopy,+                  ("userUploadedVolumeInfo" .=) <$>+                    _vuiUserUploadedVolumeInfo,+                  ("isPurchased" .=) <$> _vuiIsPurchased,+                  ("entitlementType" .=) <$> _vuiEntitlementType,+                  ("acquisitionType" .=) <$> _vuiAcquisitionType,+                  ("acquiredTime" .=) <$> _vuiAcquiredTime,+                  ("rentalState" .=) <$> _vuiRentalState,+                  ("isPreordered" .=) <$> _vuiIsPreOrdered,+                  ("review" .=) <$> _vuiReview,+                  ("isFamilySharedFromUser" .=) <$>+                    _vuiIsFamilySharedFromUser,+                  ("rentalPeriod" .=) <$> _vuiRentalPeriod,+                  ("updated" .=) <$> _vuiUpdated,+                  ("isUploaded" .=) <$> _vuiIsUploaded,+                  ("isInMyBooks" .=) <$> _vuiIsInMyBooks,+                  ("readingPosition" .=) <$> _vuiReadingPosition,+                  ("familySharing" .=) <$> _vuiFamilySharing,+                  ("isFamilySharingDisabledByFop" .=) <$>+                    _vuiIsFamilySharingDisabledByFop])++--+-- /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:/ 'volumeseriesInfo' smart constructor.+data VolumeseriesInfo = VolumeseriesInfo'+    { _viBookDisplayNumber    :: !(Maybe Text)+    , _viKind                 :: !Text+    , _viShortSeriesBookTitle :: !(Maybe Text)+    , _viVolumeSeries         :: !(Maybe [VolumeseriesInfoVolumeSeriesItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeseriesInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'viBookDisplayNumber'+--+-- * 'viKind'+--+-- * 'viShortSeriesBookTitle'+--+-- * 'viVolumeSeries'+volumeseriesInfo+    :: VolumeseriesInfo+volumeseriesInfo =+    VolumeseriesInfo'+    { _viBookDisplayNumber = Nothing+    , _viKind = "books#volume_series_info"+    , _viShortSeriesBookTitle = Nothing+    , _viVolumeSeries = Nothing+    }++-- | The display number string. This should be used only for display purposes+-- and the actual sequence should be inferred from the below orderNumber.+viBookDisplayNumber :: Lens' VolumeseriesInfo (Maybe Text)+viBookDisplayNumber+  = lens _viBookDisplayNumber+      (\ s a -> s{_viBookDisplayNumber = a})++-- | Resource type.+viKind :: Lens' VolumeseriesInfo Text+viKind = lens _viKind (\ s a -> s{_viKind = a})++-- | Short book title in the context of the series.+viShortSeriesBookTitle :: Lens' VolumeseriesInfo (Maybe Text)+viShortSeriesBookTitle+  = lens _viShortSeriesBookTitle+      (\ s a -> s{_viShortSeriesBookTitle = a})++viVolumeSeries :: Lens' VolumeseriesInfo [VolumeseriesInfoVolumeSeriesItem]+viVolumeSeries+  = lens _viVolumeSeries+      (\ s a -> s{_viVolumeSeries = a})+      . _Default+      . _Coerce++instance FromJSON VolumeseriesInfo where+        parseJSON+          = withObject "VolumeseriesInfo"+              (\ o ->+                 VolumeseriesInfo' <$>+                   (o .:? "bookDisplayNumber") <*>+                     (o .:? "kind" .!= "books#volume_series_info")+                     <*> (o .:? "shortSeriesBookTitle")+                     <*> (o .:? "volumeSeries" .!= mempty))++instance ToJSON VolumeseriesInfo where+        toJSON VolumeseriesInfo'{..}+          = object+              (catMaybes+                 [("bookDisplayNumber" .=) <$> _viBookDisplayNumber,+                  Just ("kind" .= _viKind),+                  ("shortSeriesBookTitle" .=) <$>+                    _viShortSeriesBookTitle,+                  ("volumeSeries" .=) <$> _viVolumeSeries])++--+-- /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'+    { _nDocType                        :: !(Maybe Text)+    , _nTargetURL                      :: !(Maybe Text)+    , _nShowNotificationSettingsAction :: !(Maybe Bool)+    , _nDocId                          :: !(Maybe Text)+    , _nKind                           :: !Text+    , _nBody                           :: !(Maybe Text)+    , _nCrmExperimentIds               :: !(Maybe [Textual Int64])+    , _nPcampaignId                    :: !(Maybe Text)+    , _nReason                         :: !(Maybe Text)+    , _nDontShowNotification           :: !(Maybe Bool)+    , _nNotificationType               :: !(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:+--+-- * 'nDocType'+--+-- * 'nTargetURL'+--+-- * 'nShowNotificationSettingsAction'+--+-- * 'nDocId'+--+-- * 'nKind'+--+-- * 'nBody'+--+-- * 'nCrmExperimentIds'+--+-- * 'nPcampaignId'+--+-- * 'nReason'+--+-- * 'nDontShowNotification'+--+-- * 'nNotificationType'+--+-- * 'nIconURL'+--+-- * 'nTitle'+notification+    :: Notification+notification =+    Notification'+    { _nDocType = Nothing+    , _nTargetURL = Nothing+    , _nShowNotificationSettingsAction = Nothing+    , _nDocId = Nothing+    , _nKind = "books#notification"+    , _nBody = Nothing+    , _nCrmExperimentIds = Nothing+    , _nPcampaignId = Nothing+    , _nReason = Nothing+    , _nDontShowNotification = Nothing+    , _nNotificationType = Nothing+    , _nIconURL = Nothing+    , _nTitle = Nothing+    }++nDocType :: Lens' Notification (Maybe Text)+nDocType = lens _nDocType (\ s a -> s{_nDocType = a})++nTargetURL :: Lens' Notification (Maybe Text)+nTargetURL+  = lens _nTargetURL (\ s a -> s{_nTargetURL = a})++nShowNotificationSettingsAction :: Lens' Notification (Maybe Bool)+nShowNotificationSettingsAction+  = lens _nShowNotificationSettingsAction+      (\ s a -> s{_nShowNotificationSettingsAction = a})++nDocId :: Lens' Notification (Maybe Text)+nDocId = lens _nDocId (\ s a -> s{_nDocId = a})++-- | 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})++-- | The list of crm experiment ids.+nCrmExperimentIds :: Lens' Notification [Int64]+nCrmExperimentIds+  = lens _nCrmExperimentIds+      (\ s a -> s{_nCrmExperimentIds = a})+      . _Default+      . _Coerce++nPcampaignId :: Lens' Notification (Maybe Text)+nPcampaignId+  = lens _nPcampaignId (\ s a -> s{_nPcampaignId = a})++nReason :: Lens' Notification (Maybe Text)+nReason = lens _nReason (\ s a -> s{_nReason = a})++nDontShowNotification :: Lens' Notification (Maybe Bool)+nDontShowNotification+  = lens _nDontShowNotification+      (\ s a -> s{_nDontShowNotification = a})++nNotificationType :: Lens' Notification (Maybe Text)+nNotificationType+  = lens _nNotificationType+      (\ s a -> s{_nNotificationType = 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 .:? "doc_type") <*> (o .:? "targetUrl") <*>+                     (o .:? "show_notification_settings_action")+                     <*> (o .:? "doc_id")+                     <*> (o .:? "kind" .!= "books#notification")+                     <*> (o .:? "body")+                     <*> (o .:? "crmExperimentIds" .!= mempty)+                     <*> (o .:? "pcampaign_id")+                     <*> (o .:? "reason")+                     <*> (o .:? "dont_show_notification")+                     <*> (o .:? "notification_type")+                     <*> (o .:? "iconUrl")+                     <*> (o .:? "title"))++instance ToJSON Notification where+        toJSON Notification'{..}+          = object+              (catMaybes+                 [("doc_type" .=) <$> _nDocType,+                  ("targetUrl" .=) <$> _nTargetURL,+                  ("show_notification_settings_action" .=) <$>+                    _nShowNotificationSettingsAction,+                  ("doc_id" .=) <$> _nDocId, Just ("kind" .= _nKind),+                  ("body" .=) <$> _nBody,+                  ("crmExperimentIds" .=) <$> _nCrmExperimentIds,+                  ("pcampaign_id" .=) <$> _nPcampaignId,+                  ("reason" .=) <$> _nReason,+                  ("dont_show_notification" .=) <$>+                    _nDontShowNotification,+                  ("notification_type" .=) <$> _nNotificationType,+                  ("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:/ 'series' smart constructor.+data Series = Series'+    { _sKind   :: !Text+    , _sSeries :: !(Maybe [SeriesSeriesItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Series' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sKind'+--+-- * 'sSeries'+series+    :: Series+series =+    Series'+    { _sKind = "books#series"+    , _sSeries = Nothing+    }++-- | Resource type.+sKind :: Lens' Series Text+sKind = lens _sKind (\ s a -> s{_sKind = a})++sSeries :: Lens' Series [SeriesSeriesItem]+sSeries+  = lens _sSeries (\ s a -> s{_sSeries = a}) . _Default+      . _Coerce++instance FromJSON Series where+        parseJSON+          = withObject "Series"+              (\ o ->+                 Series' <$>+                   (o .:? "kind" .!= "books#series") <*>+                     (o .:? "series" .!= mempty))++instance ToJSON Series where+        toJSON Series'{..}+          = object+              (catMaybes+                 [Just ("kind" .= _sKind),+                  ("series" .=) <$> _sSeries])++--+-- /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:/ 'seriesmembership' smart constructor.+data Seriesmembership = Seriesmembership'+    { _serNextPageToken :: !(Maybe Text)+    , _serKind          :: !Text+    , _serMember        :: !(Maybe [Volume])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Seriesmembership' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'serNextPageToken'+--+-- * 'serKind'+--+-- * 'serMember'+seriesmembership+    :: Seriesmembership+seriesmembership =+    Seriesmembership'+    { _serNextPageToken = Nothing+    , _serKind = "books#series#membership"+    , _serMember = Nothing+    }++serNextPageToken :: Lens' Seriesmembership (Maybe Text)+serNextPageToken+  = lens _serNextPageToken+      (\ s a -> s{_serNextPageToken = a})++-- | Resorce type.+serKind :: Lens' Seriesmembership Text+serKind = lens _serKind (\ s a -> s{_serKind = a})++serMember :: Lens' Seriesmembership [Volume]+serMember+  = lens _serMember (\ s a -> s{_serMember = a}) .+      _Default+      . _Coerce++instance FromJSON Seriesmembership where+        parseJSON+          = withObject "Seriesmembership"+              (\ o ->+                 Seriesmembership' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "books#series#membership")+                     <*> (o .:? "member" .!= mempty))++instance ToJSON Seriesmembership where+        toJSON Seriesmembership'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _serNextPageToken,+                  Just ("kind" .= _serKind),+                  ("member" .=) <$> _serMember])++--+-- /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:/ 'seriesSeriesItem' smart constructor.+data SeriesSeriesItem = SeriesSeriesItem'+    { _ssiSeriesId       :: !(Maybe Text)+    , _ssiImageURL       :: !(Maybe Text)+    , _ssiBannerImageURL :: !(Maybe Text)+    , _ssiTitle          :: !(Maybe Text)+    , _ssiSeriesType     :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SeriesSeriesItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ssiSeriesId'+--+-- * 'ssiImageURL'+--+-- * 'ssiBannerImageURL'+--+-- * 'ssiTitle'+--+-- * 'ssiSeriesType'+seriesSeriesItem+    :: SeriesSeriesItem+seriesSeriesItem =+    SeriesSeriesItem'+    { _ssiSeriesId = Nothing+    , _ssiImageURL = Nothing+    , _ssiBannerImageURL = Nothing+    , _ssiTitle = Nothing+    , _ssiSeriesType = Nothing+    }++ssiSeriesId :: Lens' SeriesSeriesItem (Maybe Text)+ssiSeriesId+  = lens _ssiSeriesId (\ s a -> s{_ssiSeriesId = a})++ssiImageURL :: Lens' SeriesSeriesItem (Maybe Text)+ssiImageURL+  = lens _ssiImageURL (\ s a -> s{_ssiImageURL = a})++ssiBannerImageURL :: Lens' SeriesSeriesItem (Maybe Text)+ssiBannerImageURL+  = lens _ssiBannerImageURL+      (\ s a -> s{_ssiBannerImageURL = a})++ssiTitle :: Lens' SeriesSeriesItem (Maybe Text)+ssiTitle = lens _ssiTitle (\ s a -> s{_ssiTitle = a})++ssiSeriesType :: Lens' SeriesSeriesItem (Maybe Text)+ssiSeriesType+  = lens _ssiSeriesType+      (\ s a -> s{_ssiSeriesType = a})++instance FromJSON SeriesSeriesItem where+        parseJSON+          = withObject "SeriesSeriesItem"+              (\ o ->+                 SeriesSeriesItem' <$>+                   (o .:? "seriesId") <*> (o .:? "imageUrl") <*>+                     (o .:? "bannerImageUrl")+                     <*> (o .:? "title")+                     <*> (o .:? "seriesType"))++instance ToJSON SeriesSeriesItem where+        toJSON SeriesSeriesItem'{..}+          = object+              (catMaybes+                 [("seriesId" .=) <$> _ssiSeriesId,+                  ("imageUrl" .=) <$> _ssiImageURL,+                  ("bannerImageUrl" .=) <$> _ssiBannerImageURL,+                  ("title" .=) <$> _ssiTitle,+                  ("seriesType" .=) <$> _ssiSeriesType])++--+-- /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])++--+-- /See:/ 'volumeseriesInfoVolumeSeriesItem' smart constructor.+data VolumeseriesInfoVolumeSeriesItem = VolumeseriesInfoVolumeSeriesItem'+    { _vivsiSeriesId       :: !(Maybe Text)+    , _vivsiSeriesBookType :: !(Maybe Text)+    , _vivsiOrderNumber    :: !(Maybe (Textual Int32))+    , _vivsiIssue          :: !(Maybe [VolumeseriesInfoVolumeSeriesItemIssueItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeseriesInfoVolumeSeriesItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vivsiSeriesId'+--+-- * 'vivsiSeriesBookType'+--+-- * 'vivsiOrderNumber'+--+-- * 'vivsiIssue'+volumeseriesInfoVolumeSeriesItem+    :: VolumeseriesInfoVolumeSeriesItem+volumeseriesInfoVolumeSeriesItem =+    VolumeseriesInfoVolumeSeriesItem'+    { _vivsiSeriesId = Nothing+    , _vivsiSeriesBookType = Nothing+    , _vivsiOrderNumber = Nothing+    , _vivsiIssue = Nothing+    }++-- | The series id.+vivsiSeriesId :: Lens' VolumeseriesInfoVolumeSeriesItem (Maybe Text)+vivsiSeriesId+  = lens _vivsiSeriesId+      (\ s a -> s{_vivsiSeriesId = a})++-- | The book type in the context of series. Examples - Single Issue,+-- Collection Edition, etc.+vivsiSeriesBookType :: Lens' VolumeseriesInfoVolumeSeriesItem (Maybe Text)+vivsiSeriesBookType+  = lens _vivsiSeriesBookType+      (\ s a -> s{_vivsiSeriesBookType = a})++-- | The book order number in the series.+vivsiOrderNumber :: Lens' VolumeseriesInfoVolumeSeriesItem (Maybe Int32)+vivsiOrderNumber+  = lens _vivsiOrderNumber+      (\ s a -> s{_vivsiOrderNumber = a})+      . mapping _Coerce++-- | List of issues. Applicable only for Collection Edition and Omnibus.+vivsiIssue :: Lens' VolumeseriesInfoVolumeSeriesItem [VolumeseriesInfoVolumeSeriesItemIssueItem]+vivsiIssue+  = lens _vivsiIssue (\ s a -> s{_vivsiIssue = a}) .+      _Default+      . _Coerce++instance FromJSON VolumeseriesInfoVolumeSeriesItem+         where+        parseJSON+          = withObject "VolumeseriesInfoVolumeSeriesItem"+              (\ o ->+                 VolumeseriesInfoVolumeSeriesItem' <$>+                   (o .:? "seriesId") <*> (o .:? "seriesBookType") <*>+                     (o .:? "orderNumber")+                     <*> (o .:? "issue" .!= mempty))++instance ToJSON VolumeseriesInfoVolumeSeriesItem+         where+        toJSON VolumeseriesInfoVolumeSeriesItem'{..}+          = object+              (catMaybes+                 [("seriesId" .=) <$> _vivsiSeriesId,+                  ("seriesBookType" .=) <$> _vivsiSeriesBookType,+                  ("orderNumber" .=) <$> _vivsiOrderNumber,+                  ("issue" .=) <$> _vivsiIssue])++-- | 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])+    , _vviSeriesInfo          :: !(Maybe VolumeseriesInfo)+    , _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'+--+-- * 'vviSeriesInfo'+--+-- * '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+    , _vviSeriesInfo = 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++vviSeriesInfo :: Lens' VolumeVolumeInfo (Maybe VolumeseriesInfo)+vviSeriesInfo+  = lens _vviSeriesInfo+      (\ s a -> s{_vviSeriesInfo = a})++-- | 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 .:? "seriesInfo")+                     <*> (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,+                  ("seriesInfo" .=) <$> _vviSeriesInfo,+                  ("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])++-- | Information on the ability to share with the family.+--+-- /See:/ 'volumeUserInfoFamilySharing' smart constructor.+data VolumeUserInfoFamilySharing = VolumeUserInfoFamilySharing'+    { _vuifsFamilyRole             :: !(Maybe Text)+    , _vuifsIsSharingAllowed       :: !(Maybe Bool)+    , _vuifsIsSharingDisabledByFop :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeUserInfoFamilySharing' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vuifsFamilyRole'+--+-- * 'vuifsIsSharingAllowed'+--+-- * 'vuifsIsSharingDisabledByFop'+volumeUserInfoFamilySharing+    :: VolumeUserInfoFamilySharing+volumeUserInfoFamilySharing =+    VolumeUserInfoFamilySharing'+    { _vuifsFamilyRole = Nothing+    , _vuifsIsSharingAllowed = Nothing+    , _vuifsIsSharingDisabledByFop = Nothing+    }++-- | The role of the user in the family.+vuifsFamilyRole :: Lens' VolumeUserInfoFamilySharing (Maybe Text)+vuifsFamilyRole+  = lens _vuifsFamilyRole+      (\ s a -> s{_vuifsFamilyRole = a})++-- | Whether or not this volume can be shared with the family by the user.+-- This includes sharing eligibility of both the volume and the user. If+-- the value is true, the user can initiate a family sharing action.+vuifsIsSharingAllowed :: Lens' VolumeUserInfoFamilySharing (Maybe Bool)+vuifsIsSharingAllowed+  = lens _vuifsIsSharingAllowed+      (\ s a -> s{_vuifsIsSharingAllowed = a})++-- | Whether or not sharing this volume is temporarily disabled due to issues+-- with the Family Wallet.+vuifsIsSharingDisabledByFop :: Lens' VolumeUserInfoFamilySharing (Maybe Bool)+vuifsIsSharingDisabledByFop+  = lens _vuifsIsSharingDisabledByFop+      (\ s a -> s{_vuifsIsSharingDisabledByFop = a})++instance FromJSON VolumeUserInfoFamilySharing where+        parseJSON+          = withObject "VolumeUserInfoFamilySharing"+              (\ o ->+                 VolumeUserInfoFamilySharing' <$>+                   (o .:? "familyRole") <*> (o .:? "isSharingAllowed")+                     <*> (o .:? "isSharingDisabledByFop"))++instance ToJSON VolumeUserInfoFamilySharing where+        toJSON VolumeUserInfoFamilySharing'{..}+          = object+              (catMaybes+                 [("familyRole" .=) <$> _vuifsFamilyRole,+                  ("isSharingAllowed" .=) <$> _vuifsIsSharingAllowed,+                  ("isSharingDisabledByFop" .=) <$>+                    _vuifsIsSharingDisabledByFop])++--+-- /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,
gen/Network/Google/Books/Types/Sum.hs view
@@ -8,7 +8,7 @@  -- | -- Module      : Network.Google.Books.Types.Sum--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -26,18 +26,18 @@     | Lite       -- ^ @lite@       -- Includes a subset of fields in volumeInfo and accessInfo.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData VolumesListProjection where+    parseQueryParam = \case+        "full" -> Right Full+        "lite" -> Right Lite+        x -> Left ("Unable to parse VolumesListProjection from: " <> x) -instance ToText VolumesListProjection where-    toText = \case+instance ToHttpApiData VolumesListProjection where+    toQueryParam = \case         Full -> "full"         Lite -> "lite" @@ -55,18 +55,18 @@     | MLBVLPLite       -- ^ @lite@       -- Includes a subset of fields in volumeInfo and accessInfo.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData MyLibraryBookshelvesVolumesListProjection where+    parseQueryParam = \case+        "full" -> Right MLBVLPFull+        "lite" -> Right MLBVLPLite+        x -> Left ("Unable to parse MyLibraryBookshelvesVolumesListProjection from: " <> x) -instance ToText MyLibraryBookshelvesVolumesListProjection where-    toText = \case+instance ToHttpApiData MyLibraryBookshelvesVolumesListProjection where+    toQueryParam = \case         MLBVLPFull -> "full"         MLBVLPLite -> "lite" @@ -84,18 +84,18 @@     | Relevance       -- ^ @relevance@       -- Relevance to search terms.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData VolumesListOrderBy where+    parseQueryParam = \case+        "newest" -> Right Newest+        "relevance" -> Right Relevance+        x -> Left ("Unable to parse VolumesListOrderBy from: " <> x) -instance ToText VolumesListOrderBy where-    toText = \case+instance ToHttpApiData VolumesListOrderBy where+    toQueryParam = \case         Newest -> "newest"         Relevance -> "relevance" @@ -113,18 +113,18 @@     | NoRestrict       -- ^ @no-restrict@       -- Do not restrict based on user\'s library.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData VolumesListLibraryRestrict where+    parseQueryParam = \case+        "my-library" -> Right MyLibrary+        "no-restrict" -> Right NoRestrict+        x -> Left ("Unable to parse VolumesListLibraryRestrict from: " <> x) -instance ToText VolumesListLibraryRestrict where-    toText = \case+instance ToHttpApiData VolumesListLibraryRestrict where+    toQueryParam = \case         MyLibrary -> "my-library"         NoRestrict -> "no-restrict" @@ -139,17 +139,17 @@     = Onboarding       -- ^ @ONBOARDING@       -- Samples removed from the Onboarding flow.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)  instance Hashable MyLibraryBookshelvesRemoveVolumeReason -instance FromText MyLibraryBookshelvesRemoveVolumeReason where-    fromText = \case-        "ONBOARDING" -> Just Onboarding-        _ -> Nothing+instance FromHttpApiData MyLibraryBookshelvesRemoveVolumeReason where+    parseQueryParam = \case+        "ONBOARDING" -> Right Onboarding+        x -> Left ("Unable to parse MyLibraryBookshelvesRemoveVolumeReason from: " <> x) -instance ToText MyLibraryBookshelvesRemoveVolumeReason where-    toText = \case+instance ToHttpApiData MyLibraryBookshelvesRemoveVolumeReason where+    toQueryParam = \case         Onboarding -> "ONBOARDING"  instance FromJSON MyLibraryBookshelvesRemoveVolumeReason where@@ -167,18 +167,18 @@     | NotMature       -- ^ @not-mature@       -- Show books which are rated not mature.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData OnboardingListCategoryVolumesMaxAllowedMaturityRating where+    parseQueryParam = \case+        "mature" -> Right Mature+        "not-mature" -> Right NotMature+        x -> Left ("Unable to parse OnboardingListCategoryVolumesMaxAllowedMaturityRating from: " <> x) -instance ToText OnboardingListCategoryVolumesMaxAllowedMaturityRating where-    toText = \case+instance ToHttpApiData OnboardingListCategoryVolumesMaxAllowedMaturityRating where+    toQueryParam = \case         Mature -> "mature"         NotMature -> "not-mature" @@ -193,17 +193,17 @@     = Epub       -- ^ @epub@       -- All volumes with epub.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)  instance Hashable VolumesListDownload -instance FromText VolumesListDownload where-    fromText = \case-        "epub" -> Just Epub-        _ -> Nothing+instance FromHttpApiData VolumesListDownload where+    parseQueryParam = \case+        "epub" -> Right Epub+        x -> Left ("Unable to parse VolumesListDownload from: " <> x) -instance ToText VolumesListDownload where-    toText = \case+instance ToHttpApiData VolumesListDownload where+    toQueryParam = \case         Epub -> "epub"  instance FromJSON VolumesListDownload where@@ -220,18 +220,18 @@     | VGPLite       -- ^ @lite@       -- Includes a subset of fields in volumeInfo and accessInfo.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData VolumesGetProjection where+    parseQueryParam = \case+        "full" -> Right VGPFull+        "lite" -> Right VGPLite+        x -> Left ("Unable to parse VolumesGetProjection from: " <> x) -instance ToText VolumesGetProjection where-    toText = \case+instance ToHttpApiData VolumesGetProjection where+    toQueryParam = \case         VGPFull -> "full"         VGPLite -> "lite" @@ -252,19 +252,19 @@     | RelatedForPlay       -- ^ @related-for-play@       -- Related volumes for Play Store.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData VolumesAssociatedListAssociation where+    parseQueryParam = \case+        "end-of-sample" -> Right EndOfSample+        "end-of-volume" -> Right EndOfVolume+        "related-for-play" -> Right RelatedForPlay+        x -> Left ("Unable to parse VolumesAssociatedListAssociation from: " <> x) -instance ToText VolumesAssociatedListAssociation where-    toText = \case+instance ToHttpApiData VolumesAssociatedListAssociation where+    toQueryParam = \case         EndOfSample -> "end-of-sample"         EndOfVolume -> "end-of-volume"         RelatedForPlay -> "related-for-play"@@ -283,18 +283,18 @@     | NotInterested       -- ^ @NOT_INTERESTED@       -- Rating indicating a negative dismissal of a volume.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData VolumesRecommendedRateRating where+    parseQueryParam = \case+        "HAVE_IT" -> Right HaveIt+        "NOT_INTERESTED" -> Right NotInterested+        x -> Left ("Unable to parse VolumesRecommendedRateRating from: " <> x) -instance ToText VolumesRecommendedRateRating where-    toText = \case+instance ToHttpApiData VolumesRecommendedRateRating where+    toQueryParam = \case         HaveIt -> "HAVE_IT"         NotInterested -> "NOT_INTERESTED" @@ -315,19 +315,19 @@     | Running       -- ^ @RUNNING@       -- The volume processing is not completed.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData VolumesUserUploadedListProcessingState where+    parseQueryParam = \case+        "COMPLETED_FAILED" -> Right CompletedFailed+        "COMPLETED_SUCCESS" -> Right CompletedSuccess+        "RUNNING" -> Right Running+        x -> Left ("Unable to parse VolumesUserUploadedListProcessingState from: " <> x) -instance ToText VolumesUserUploadedListProcessingState where-    toText = \case+instance ToHttpApiData VolumesUserUploadedListProcessingState where+    toQueryParam = \case         CompletedFailed -> "COMPLETED_FAILED"         CompletedSuccess -> "COMPLETED_SUCCESS"         Running -> "RUNNING"@@ -343,17 +343,17 @@     = Rentals       -- ^ @RENTALS@       -- Client supports rentals.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)  instance Hashable MyConfigSyncVolumeLicensesFeatures -instance FromText MyConfigSyncVolumeLicensesFeatures where-    fromText = \case-        "RENTALS" -> Just Rentals-        _ -> Nothing+instance FromHttpApiData MyConfigSyncVolumeLicensesFeatures where+    parseQueryParam = \case+        "RENTALS" -> Right Rentals+        x -> Left ("Unable to parse MyConfigSyncVolumeLicensesFeatures from: " <> x) -instance ToText MyConfigSyncVolumeLicensesFeatures where-    toText = \case+instance ToHttpApiData MyConfigSyncVolumeLicensesFeatures where+    toQueryParam = \case         Rentals -> "RENTALS"  instance FromJSON MyConfigSyncVolumeLicensesFeatures where@@ -371,18 +371,18 @@     | VALMAMRNotMature       -- ^ @not-mature@       -- Show books which are rated not mature.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData VolumesAssociatedListMaxAllowedMaturityRating where+    parseQueryParam = \case+        "mature" -> Right VALMAMRMature+        "not-mature" -> Right VALMAMRNotMature+        x -> Left ("Unable to parse VolumesAssociatedListMaxAllowedMaturityRating from: " <> x) -instance ToText VolumesAssociatedListMaxAllowedMaturityRating where-    toText = \case+instance ToHttpApiData VolumesAssociatedListMaxAllowedMaturityRating where+    toQueryParam = \case         VALMAMRMature -> "mature"         VALMAMRNotMature -> "not-mature" @@ -409,21 +409,21 @@     | VLFPartial       -- ^ @partial@       -- Public able to see parts of text.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData VolumesListFilter where+    parseQueryParam = \case+        "ebooks" -> Right VLFEbooks+        "free-ebooks" -> Right VLFFreeEbooks+        "full" -> Right VLFFull+        "paid-ebooks" -> Right VLFPaidEbooks+        "partial" -> Right VLFPartial+        x -> Left ("Unable to parse VolumesListFilter from: " <> x) -instance ToText VolumesListFilter where-    toText = \case+instance ToHttpApiData VolumesListFilter where+    toQueryParam = \case         VLFEbooks -> "ebooks"         VLFFreeEbooks -> "free-ebooks"         VLFFull -> "full"@@ -445,18 +445,18 @@     | VRLMAMRNotMature       -- ^ @not-mature@       -- Show books which are rated not mature.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData VolumesRecommendedListMaxAllowedMaturityRating where+    parseQueryParam = \case+        "mature" -> Right VRLMAMRMature+        "not-mature" -> Right VRLMAMRNotMature+        x -> Left ("Unable to parse VolumesRecommendedListMaxAllowedMaturityRating from: " <> x) -instance ToText VolumesRecommendedListMaxAllowedMaturityRating where-    toText = \case+instance ToHttpApiData VolumesRecommendedListMaxAllowedMaturityRating where+    toQueryParam = \case         VRLMAMRMature -> "mature"         VRLMAMRNotMature -> "not-mature" @@ -477,19 +477,19 @@     | MLBAVROnboarding       -- ^ @ONBOARDING@       -- Volumes added from the Onboarding flow.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData MyLibraryBookshelvesAddVolumeReason where+    parseQueryParam = \case+        "IOS_PREX" -> Right MLBAVRIosPrex+        "IOS_SEARCH" -> Right MLBAVRIosSearch+        "ONBOARDING" -> Right MLBAVROnboarding+        x -> Left ("Unable to parse MyLibraryBookshelvesAddVolumeReason from: " <> x) -instance ToText MyLibraryBookshelvesAddVolumeReason where-    toText = \case+instance ToHttpApiData MyLibraryBookshelvesAddVolumeReason where+    toQueryParam = \case         MLBAVRIosPrex -> "IOS_PREX"         MLBAVRIosSearch -> "IOS_SEARCH"         MLBAVROnboarding -> "ONBOARDING"@@ -523,23 +523,23 @@     | Uploaded       -- ^ @UPLOADED@       -- User uploaded books-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData VolumesMybooksListAcquireMethod where+    parseQueryParam = \case+        "PREORDERED" -> Right PreOrdered+        "PREVIOUSLY_RENTED" -> Right PreviouslyRented+        "PUBLIC_DOMAIN" -> Right PublicDomain+        "PURCHASED" -> Right Purchased+        "RENTED" -> Right Rented+        "SAMPLE" -> Right Sample+        "UPLOADED" -> Right Uploaded+        x -> Left ("Unable to parse VolumesMybooksListAcquireMethod from: " <> x) -instance ToText VolumesMybooksListAcquireMethod where-    toText = \case+instance ToHttpApiData VolumesMybooksListAcquireMethod where+    toQueryParam = \case         PreOrdered -> "PREORDERED"         PreviouslyRented -> "PREVIOUSLY_RENTED"         PublicDomain -> "PUBLIC_DOMAIN"@@ -563,18 +563,18 @@     | PGMAMRNotMature       -- ^ @not-mature@       -- Show books which are rated not mature.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData PersonalizedstreamGetMaxAllowedMaturityRating where+    parseQueryParam = \case+        "mature" -> Right PGMAMRMature+        "not-mature" -> Right PGMAMRNotMature+        x -> Left ("Unable to parse PersonalizedstreamGetMaxAllowedMaturityRating from: " <> x) -instance ToText PersonalizedstreamGetMaxAllowedMaturityRating where-    toText = \case+instance ToHttpApiData PersonalizedstreamGetMaxAllowedMaturityRating where+    toQueryParam = \case         PGMAMRMature -> "mature"         PGMAMRNotMature -> "not-mature" @@ -595,19 +595,19 @@     | Magazines       -- ^ @magazines@       -- Just magazines.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData VolumesListPrintType where+    parseQueryParam = \case+        "all" -> Right All+        "books" -> Right Books+        "magazines" -> Right Magazines+        x -> Left ("Unable to parse VolumesListPrintType from: " <> x) -instance ToText VolumesListPrintType where-    toText = \case+instance ToHttpApiData VolumesListPrintType where+    toQueryParam = \case         All -> "all"         Books -> "books"         Magazines -> "magazines"@@ -630,19 +630,19 @@     | VMLPSRunning       -- ^ @RUNNING@       -- The volume processing is not completed.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData VolumesMybooksListProcessingState where+    parseQueryParam = \case+        "COMPLETED_FAILED" -> Right VMLPSCompletedFailed+        "COMPLETED_SUCCESS" -> Right VMLPSCompletedSuccess+        "RUNNING" -> Right VMLPSRunning+        x -> Left ("Unable to parse VolumesMybooksListProcessingState from: " <> x) -instance ToText VolumesMybooksListProcessingState where-    toText = \case+instance ToHttpApiData VolumesMybooksListProcessingState where+    toQueryParam = \case         VMLPSCompletedFailed -> "COMPLETED_FAILED"         VMLPSCompletedSuccess -> "COMPLETED_SUCCESS"         VMLPSRunning -> "RUNNING"@@ -665,19 +665,19 @@     | Download       -- ^ @DOWNLOAD@       -- Offline download access license.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData MyConfigRequestAccessLicenseTypes where+    parseQueryParam = \case+        "BOTH" -> Right Both+        "CONCURRENT" -> Right Concurrent+        "DOWNLOAD" -> Right Download+        x -> Left ("Unable to parse MyConfigRequestAccessLicenseTypes from: " <> x) -instance ToText MyConfigRequestAccessLicenseTypes where-    toText = \case+instance ToHttpApiData MyConfigRequestAccessLicenseTypes where+    toQueryParam = \case         Both -> "BOTH"         Concurrent -> "CONCURRENT"         Download -> "DOWNLOAD"@@ -708,22 +708,22 @@     | Search       -- ^ @search@       -- User chose search results within volume.-      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)+      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 FromHttpApiData MyLibraryReadingPositionsSetPositionAction where+    parseQueryParam = \case+        "bookmark" -> Right Bookmark+        "chapter" -> Right Chapter+        "next-page" -> Right NextPage+        "prev-page" -> Right PrevPage+        "scroll" -> Right Scroll+        "search" -> Right Search+        x -> Left ("Unable to parse MyLibraryReadingPositionsSetPositionAction from: " <> x) -instance ToText MyLibraryReadingPositionsSetPositionAction where-    toText = \case+instance ToHttpApiData MyLibraryReadingPositionsSetPositionAction where+    toQueryParam = \case         Bookmark -> "bookmark"         Chapter -> "chapter"         NextPage -> "next-page"
gen/Network/Google/Resource/Books/Bookshelves/Get.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Bookshelves.Get--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -56,7 +56,7 @@ -- | Retrieves metadata for a specific bookshelf for the specified user. -- -- /See:/ 'bookshelvesGet' smart constructor.-data BookshelvesGet = BookshelvesGet+data BookshelvesGet = BookshelvesGet'     { _bgUserId :: !Text     , _bgShelf  :: !Text     , _bgSource :: !(Maybe Text)@@ -76,7 +76,7 @@     -> Text -- ^ 'bgShelf'     -> BookshelvesGet bookshelvesGet pBgUserId_ pBgShelf_ =-    BookshelvesGet+    BookshelvesGet'     { _bgUserId = pBgUserId_     , _bgShelf = pBgShelf_     , _bgSource = Nothing@@ -96,7 +96,9 @@  instance GoogleRequest BookshelvesGet where         type Rs BookshelvesGet = Bookshelf-        requestClient BookshelvesGet{..}+        type Scopes BookshelvesGet =+             '["https://www.googleapis.com/auth/books"]+        requestClient BookshelvesGet'{..}           = go _bgUserId _bgShelf _bgSource (Just AltJSON)               booksService           where go
gen/Network/Google/Resource/Books/Bookshelves/List.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Bookshelves.List--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -54,7 +54,7 @@ -- | Retrieves a list of public bookshelves for the specified user. -- -- /See:/ 'bookshelvesList' smart constructor.-data BookshelvesList = BookshelvesList+data BookshelvesList = BookshelvesList'     { _blUserId :: !Text     , _blSource :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic)@@ -70,7 +70,7 @@     :: Text -- ^ 'blUserId'     -> BookshelvesList bookshelvesList pBlUserId_ =-    BookshelvesList+    BookshelvesList'     { _blUserId = pBlUserId_     , _blSource = Nothing     }@@ -85,7 +85,9 @@  instance GoogleRequest BookshelvesList where         type Rs BookshelvesList = Bookshelves-        requestClient BookshelvesList{..}+        type Scopes BookshelvesList =+             '["https://www.googleapis.com/auth/books"]+        requestClient BookshelvesList'{..}           = go _blUserId _blSource (Just AltJSON) booksService           where go                   = buildClient
gen/Network/Google/Resource/Books/Bookshelves/Volumes/List.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Bookshelves.Volumes.List--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -63,7 +63,7 @@ -- | Retrieves volumes in a specific bookshelf for the specified user. -- -- /See:/ 'bookshelvesVolumesList' smart constructor.-data BookshelvesVolumesList = BookshelvesVolumesList+data BookshelvesVolumesList = BookshelvesVolumesList'     { _bvlUserId        :: !Text     , _bvlShelf         :: !Text     , _bvlSource        :: !(Maybe Text)@@ -92,7 +92,7 @@     -> Text -- ^ 'bvlShelf'     -> BookshelvesVolumesList bookshelvesVolumesList pBvlUserId_ pBvlShelf_ =-    BookshelvesVolumesList+    BookshelvesVolumesList'     { _bvlUserId = pBvlUserId_     , _bvlShelf = pBvlShelf_     , _bvlSource = Nothing@@ -137,7 +137,9 @@  instance GoogleRequest BookshelvesVolumesList where         type Rs BookshelvesVolumesList = Volumes-        requestClient BookshelvesVolumesList{..}+        type Scopes BookshelvesVolumesList =+             '["https://www.googleapis.com/auth/books"]+        requestClient BookshelvesVolumesList'{..}           = go _bvlUserId _bvlShelf _bvlSource _bvlStartIndex               _bvlMaxResults               _bvlShowPreOrders
gen/Network/Google/Resource/Books/CloudLoading/AddBook.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.CloudLoading.AddBook--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -59,7 +59,7 @@ -- | -- -- /See:/ 'cloudLoadingAddBook' smart constructor.-data CloudLoadingAddBook = CloudLoadingAddBook+data CloudLoadingAddBook = CloudLoadingAddBook'     { _clabMimeType          :: !(Maybe Text)     , _clabUploadClientToken :: !(Maybe Text)     , _clabName              :: !(Maybe Text)@@ -80,7 +80,7 @@ cloudLoadingAddBook     :: CloudLoadingAddBook cloudLoadingAddBook =-    CloudLoadingAddBook+    CloudLoadingAddBook'     { _clabMimeType = Nothing     , _clabUploadClientToken = Nothing     , _clabName = Nothing@@ -111,7 +111,9 @@ instance GoogleRequest CloudLoadingAddBook where         type Rs CloudLoadingAddBook =              BooksCloudLoadingResource-        requestClient CloudLoadingAddBook{..}+        type Scopes CloudLoadingAddBook =+             '["https://www.googleapis.com/auth/books"]+        requestClient CloudLoadingAddBook'{..}           = go _clabMimeType _clabUploadClientToken _clabName               _clabDriveDocumentId               (Just AltJSON)
gen/Network/Google/Resource/Books/CloudLoading/DeleteBook.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.CloudLoading.DeleteBook--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -52,7 +52,7 @@ -- | Remove the book and its contents -- -- /See:/ 'cloudLoadingDeleteBook' smart constructor.-newtype CloudLoadingDeleteBook = CloudLoadingDeleteBook+newtype CloudLoadingDeleteBook = CloudLoadingDeleteBook'     { _cldbVolumeId :: Text     } deriving (Eq,Show,Data,Typeable,Generic) @@ -65,7 +65,7 @@     :: Text -- ^ 'cldbVolumeId'     -> CloudLoadingDeleteBook cloudLoadingDeleteBook pCldbVolumeId_ =-    CloudLoadingDeleteBook+    CloudLoadingDeleteBook'     { _cldbVolumeId = pCldbVolumeId_     } @@ -76,7 +76,9 @@  instance GoogleRequest CloudLoadingDeleteBook where         type Rs CloudLoadingDeleteBook = ()-        requestClient CloudLoadingDeleteBook{..}+        type Scopes CloudLoadingDeleteBook =+             '["https://www.googleapis.com/auth/books"]+        requestClient CloudLoadingDeleteBook'{..}           = go (Just _cldbVolumeId) (Just AltJSON) booksService           where go                   = buildClient
gen/Network/Google/Resource/Books/CloudLoading/UpdateBook.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.CloudLoading.UpdateBook--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -53,7 +53,7 @@ -- | -- -- /See:/ 'cloudLoadingUpdateBook' smart constructor.-newtype CloudLoadingUpdateBook = CloudLoadingUpdateBook+newtype CloudLoadingUpdateBook = CloudLoadingUpdateBook'     { _clubPayload :: BooksCloudLoadingResource     } deriving (Eq,Show,Data,Typeable,Generic) @@ -66,7 +66,7 @@     :: BooksCloudLoadingResource -- ^ 'clubPayload'     -> CloudLoadingUpdateBook cloudLoadingUpdateBook pClubPayload_ =-    CloudLoadingUpdateBook+    CloudLoadingUpdateBook'     { _clubPayload = pClubPayload_     } @@ -78,7 +78,9 @@ instance GoogleRequest CloudLoadingUpdateBook where         type Rs CloudLoadingUpdateBook =              BooksCloudLoadingResource-        requestClient CloudLoadingUpdateBook{..}+        type Scopes CloudLoadingUpdateBook =+             '["https://www.googleapis.com/auth/books"]+        requestClient CloudLoadingUpdateBook'{..}           = go (Just AltJSON) _clubPayload booksService           where go                   = buildClient
gen/Network/Google/Resource/Books/Dictionary/ListOfflineMetadata.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Dictionary.ListOfflineMetadata--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -52,7 +52,7 @@ -- | Returns a list of offline dictionary metadata available -- -- /See:/ 'dictionaryListOfflineMetadata' smart constructor.-newtype DictionaryListOfflineMetadata = DictionaryListOfflineMetadata+newtype DictionaryListOfflineMetadata = DictionaryListOfflineMetadata'     { _dlomCpksver :: Text     } deriving (Eq,Show,Data,Typeable,Generic) @@ -65,7 +65,7 @@     :: Text -- ^ 'dlomCpksver'     -> DictionaryListOfflineMetadata dictionaryListOfflineMetadata pDlomCpksver_ =-    DictionaryListOfflineMetadata+    DictionaryListOfflineMetadata'     { _dlomCpksver = pDlomCpksver_     } @@ -77,7 +77,9 @@ instance GoogleRequest DictionaryListOfflineMetadata          where         type Rs DictionaryListOfflineMetadata = Metadata-        requestClient DictionaryListOfflineMetadata{..}+        type Scopes DictionaryListOfflineMetadata =+             '["https://www.googleapis.com/auth/books"]+        requestClient DictionaryListOfflineMetadata'{..}           = go (Just _dlomCpksver) (Just AltJSON) booksService           where go                   = buildClient
gen/Network/Google/Resource/Books/Layers/AnnotationData/Get.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Layers.AnnotationData.Get--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -72,7 +72,7 @@ -- | Gets the annotation data. -- -- /See:/ 'layersAnnotationDataGet' smart constructor.-data LayersAnnotationDataGet = LayersAnnotationDataGet+data LayersAnnotationDataGet = LayersAnnotationDataGet'     { _ladgW                   :: !(Maybe (Textual Int32))     , _ladgScale               :: !(Maybe (Textual Int32))     , _ladgLocale              :: !(Maybe Text)@@ -115,7 +115,7 @@     -> Text -- ^ 'ladgLayerId'     -> LayersAnnotationDataGet layersAnnotationDataGet pLadgContentVersion_ pLadgAnnotationDataId_ pLadgVolumeId_ pLadgLayerId_ =-    LayersAnnotationDataGet+    LayersAnnotationDataGet'     { _ladgW = Nothing     , _ladgScale = Nothing     , _ladgLocale = Nothing@@ -189,7 +189,9 @@  instance GoogleRequest LayersAnnotationDataGet where         type Rs LayersAnnotationDataGet = AnnotationData-        requestClient LayersAnnotationDataGet{..}+        type Scopes LayersAnnotationDataGet =+             '["https://www.googleapis.com/auth/books"]+        requestClient LayersAnnotationDataGet'{..}           = go _ladgVolumeId _ladgLayerId _ladgAnnotationDataId               (Just _ladgContentVersion)               _ladgW
gen/Network/Google/Resource/Books/Layers/AnnotationData/List.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Layers.AnnotationData.List--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -79,7 +79,7 @@ -- | Gets the annotation data for a volume and layer. -- -- /See:/ 'layersAnnotationDataList' smart constructor.-data LayersAnnotationDataList = LayersAnnotationDataList+data LayersAnnotationDataList = LayersAnnotationDataList'     { _ladlW                :: !(Maybe (Textual Int32))     , _ladlScale            :: !(Maybe (Textual Int32))     , _ladlLocale           :: !(Maybe Text)@@ -130,7 +130,7 @@     -> Text -- ^ 'ladlLayerId'     -> LayersAnnotationDataList layersAnnotationDataList pLadlContentVersion_ pLadlVolumeId_ pLadlLayerId_ =-    LayersAnnotationDataList+    LayersAnnotationDataList'     { _ladlW = Nothing     , _ladlScale = Nothing     , _ladlLocale = Nothing@@ -231,7 +231,9 @@  instance GoogleRequest LayersAnnotationDataList where         type Rs LayersAnnotationDataList = AnnotationsData-        requestClient LayersAnnotationDataList{..}+        type Scopes LayersAnnotationDataList =+             '["https://www.googleapis.com/auth/books"]+        requestClient LayersAnnotationDataList'{..}           = go _ladlVolumeId _ladlLayerId               (Just _ladlContentVersion)               _ladlW
gen/Network/Google/Resource/Books/Layers/Get.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Layers.Get--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -58,7 +58,7 @@ -- | Gets the layer summary for a volume. -- -- /See:/ 'layersGet' smart constructor.-data LayersGet = LayersGet+data LayersGet = LayersGet'     { _lgContentVersion :: !(Maybe Text)     , _lgVolumeId       :: !Text     , _lgSource         :: !(Maybe Text)@@ -81,7 +81,7 @@     -> Text -- ^ 'lgSummaryId'     -> LayersGet layersGet pLgVolumeId_ pLgSummaryId_ =-    LayersGet+    LayersGet'     { _lgContentVersion = Nothing     , _lgVolumeId = pLgVolumeId_     , _lgSource = Nothing@@ -110,7 +110,9 @@  instance GoogleRequest LayersGet where         type Rs LayersGet = Layersummary-        requestClient LayersGet{..}+        type Scopes LayersGet =+             '["https://www.googleapis.com/auth/books"]+        requestClient LayersGet'{..}           = go _lgVolumeId _lgSummaryId _lgContentVersion               _lgSource               (Just AltJSON)
gen/Network/Google/Resource/Books/Layers/List.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Layers.List--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -61,7 +61,7 @@ -- | List the layer summaries for a volume. -- -- /See:/ 'layersList' smart constructor.-data LayersList = LayersList+data LayersList = LayersList'     { _llContentVersion :: !(Maybe Text)     , _llVolumeId       :: !Text     , _llSource         :: !(Maybe Text)@@ -86,7 +86,7 @@     :: Text -- ^ 'llVolumeId'     -> LayersList layersList pLlVolumeId_ =-    LayersList+    LayersList'     { _llContentVersion = Nothing     , _llVolumeId = pLlVolumeId_     , _llSource = Nothing@@ -122,7 +122,9 @@  instance GoogleRequest LayersList where         type Rs LayersList = Layersummaries-        requestClient LayersList{..}+        type Scopes LayersList =+             '["https://www.googleapis.com/auth/books"]+        requestClient LayersList'{..}           = go _llVolumeId _llContentVersion _llSource               _llPageToken               _llMaxResults
gen/Network/Google/Resource/Books/Layers/VolumeAnnotations/Get.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Layers.VolumeAnnotations.Get--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -62,7 +62,7 @@ -- | Gets the volume annotation. -- -- /See:/ 'layersVolumeAnnotationsGet' smart constructor.-data LayersVolumeAnnotationsGet = LayersVolumeAnnotationsGet+data LayersVolumeAnnotationsGet = LayersVolumeAnnotationsGet'     { _lvagLocale       :: !(Maybe Text)     , _lvagAnnotationId :: !Text     , _lvagVolumeId     :: !Text@@ -89,7 +89,7 @@     -> Text -- ^ 'lvagLayerId'     -> LayersVolumeAnnotationsGet layersVolumeAnnotationsGet pLvagAnnotationId_ pLvagVolumeId_ pLvagLayerId_ =-    LayersVolumeAnnotationsGet+    LayersVolumeAnnotationsGet'     { _lvagLocale = Nothing     , _lvagAnnotationId = pLvagAnnotationId_     , _lvagVolumeId = pLvagVolumeId_@@ -127,7 +127,9 @@ instance GoogleRequest LayersVolumeAnnotationsGet          where         type Rs LayersVolumeAnnotationsGet = Volumeannotation-        requestClient LayersVolumeAnnotationsGet{..}+        type Scopes LayersVolumeAnnotationsGet =+             '["https://www.googleapis.com/auth/books"]+        requestClient LayersVolumeAnnotationsGet'{..}           = go _lvagVolumeId _lvagLayerId _lvagAnnotationId               _lvagLocale               _lvagSource
gen/Network/Google/Resource/Books/Layers/VolumeAnnotations/List.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Layers.VolumeAnnotations.List--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -82,7 +82,7 @@ -- | Gets the volume annotations for a volume and layer. -- -- /See:/ 'layersVolumeAnnotationsList' smart constructor.-data LayersVolumeAnnotationsList = LayersVolumeAnnotationsList+data LayersVolumeAnnotationsList = LayersVolumeAnnotationsList'     { _lvalStartOffSet              :: !(Maybe Text)     , _lvalLocale                   :: !(Maybe Text)     , _lvalContentVersion           :: !Text@@ -139,7 +139,7 @@     -> Text -- ^ 'lvalLayerId'     -> LayersVolumeAnnotationsList layersVolumeAnnotationsList pLvalContentVersion_ pLvalVolumeId_ pLvalLayerId_ =-    LayersVolumeAnnotationsList+    LayersVolumeAnnotationsList'     { _lvalStartOffSet = Nothing     , _lvalLocale = Nothing     , _lvalContentVersion = pLvalContentVersion_@@ -252,7 +252,9 @@          where         type Rs LayersVolumeAnnotationsList =              Volumeannotations-        requestClient LayersVolumeAnnotationsList{..}+        type Scopes LayersVolumeAnnotationsList =+             '["https://www.googleapis.com/auth/books"]+        requestClient LayersVolumeAnnotationsList'{..}           = go _lvalVolumeId _lvalLayerId               (Just _lvalContentVersion)               _lvalStartOffSet
gen/Network/Google/Resource/Books/MyConfig/GetUserSettings.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyConfig.GetUserSettings--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -50,18 +50,20 @@ -- -- /See:/ 'myConfigGetUserSettings' smart constructor. data MyConfigGetUserSettings =-    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+myConfigGetUserSettings = MyConfigGetUserSettings'  instance GoogleRequest MyConfigGetUserSettings where         type Rs MyConfigGetUserSettings = UserSettings-        requestClient MyConfigGetUserSettings{}+        type Scopes MyConfigGetUserSettings =+             '["https://www.googleapis.com/auth/books"]+        requestClient MyConfigGetUserSettings'{}           = go (Just AltJSON) booksService           where go                   = buildClient
gen/Network/Google/Resource/Books/MyConfig/ReleaseDownloadAccess.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyConfig.ReleaseDownloadAccess--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -59,7 +59,7 @@ -- | Release downloaded content access restriction. -- -- /See:/ 'myConfigReleaseDownloadAccess' smart constructor.-data MyConfigReleaseDownloadAccess = MyConfigReleaseDownloadAccess+data MyConfigReleaseDownloadAccess = MyConfigReleaseDownloadAccess'     { _mcrdaCpksver   :: !Text     , _mcrdaLocale    :: !(Maybe Text)     , _mcrdaVolumeIds :: ![Text]@@ -82,7 +82,7 @@     -> [Text] -- ^ 'mcrdaVolumeIds'     -> MyConfigReleaseDownloadAccess myConfigReleaseDownloadAccess pMcrdaCpksver_ pMcrdaVolumeIds_ =-    MyConfigReleaseDownloadAccess+    MyConfigReleaseDownloadAccess'     { _mcrdaCpksver = pMcrdaCpksver_     , _mcrdaLocale = Nothing     , _mcrdaVolumeIds = _Coerce # pMcrdaVolumeIds_@@ -115,7 +115,9 @@          where         type Rs MyConfigReleaseDownloadAccess =              DownloadAccesses-        requestClient MyConfigReleaseDownloadAccess{..}+        type Scopes MyConfigReleaseDownloadAccess =+             '["https://www.googleapis.com/auth/books"]+        requestClient MyConfigReleaseDownloadAccess'{..}           = go _mcrdaVolumeIds (Just _mcrdaCpksver)               _mcrdaLocale               _mcrdaSource
gen/Network/Google/Resource/Books/MyConfig/RequestAccess.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyConfig.RequestAccess--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -65,7 +65,7 @@ -- | Request concurrent and download access restrictions. -- -- /See:/ 'myConfigRequestAccess' smart constructor.-data MyConfigRequestAccess = MyConfigRequestAccess+data MyConfigRequestAccess = MyConfigRequestAccess'     { _mcraCpksver      :: !Text     , _mcraLocale       :: !(Maybe Text)     , _mcraLicenseTypes :: !(Maybe MyConfigRequestAccessLicenseTypes)@@ -96,7 +96,7 @@     -> Text -- ^ 'mcraNonce'     -> MyConfigRequestAccess myConfigRequestAccess pMcraCpksver_ pMcraVolumeId_ pMcraSource_ pMcraNonce_ =-    MyConfigRequestAccess+    MyConfigRequestAccess'     { _mcraCpksver = pMcraCpksver_     , _mcraLocale = Nothing     , _mcraLicenseTypes = Nothing@@ -139,7 +139,9 @@  instance GoogleRequest MyConfigRequestAccess where         type Rs MyConfigRequestAccess = RequestAccess-        requestClient MyConfigRequestAccess{..}+        type Scopes MyConfigRequestAccess =+             '["https://www.googleapis.com/auth/books"]+        requestClient MyConfigRequestAccess'{..}           = go (Just _mcraSource) (Just _mcraVolumeId)               (Just _mcraNonce)               (Just _mcraCpksver)
gen/Network/Google/Resource/Books/MyConfig/SyncVolumeLicenses.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyConfig.SyncVolumeLicenses--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -36,6 +36,7 @@     -- * Request Lenses     , mcsvlCpksver     , mcsvlLocale+    , mcsvlIncludeNonComicsSeries     , mcsvlVolumeIds     , mcsvlFeatures     , mcsvlSource@@ -57,25 +58,27 @@                QueryParam "nonce" Text :>                  QueryParam "cpksver" Text :>                    QueryParam "locale" Text :>-                     QueryParams "volumeIds" Text :>-                       QueryParams "features"-                         MyConfigSyncVolumeLicensesFeatures-                         :>-                         QueryParam "showPreorders" Bool :>-                           QueryParam "alt" AltJSON :> Post '[JSON] Volumes+                     QueryParam "includeNonComicsSeries" Bool :>+                       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+data MyConfigSyncVolumeLicenses = MyConfigSyncVolumeLicenses'+    { _mcsvlCpksver                :: !Text+    , _mcsvlLocale                 :: !(Maybe Text)+    , _mcsvlIncludeNonComicsSeries :: !(Maybe Bool)+    , _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.@@ -86,6 +89,8 @@ -- -- * 'mcsvlLocale' --+-- * 'mcsvlIncludeNonComicsSeries'+-- -- * 'mcsvlVolumeIds' -- -- * 'mcsvlFeatures'@@ -101,9 +106,10 @@     -> Text -- ^ 'mcsvlNonce'     -> MyConfigSyncVolumeLicenses myConfigSyncVolumeLicenses pMcsvlCpksver_ pMcsvlSource_ pMcsvlNonce_ =-    MyConfigSyncVolumeLicenses+    MyConfigSyncVolumeLicenses'     { _mcsvlCpksver = pMcsvlCpksver_     , _mcsvlLocale = Nothing+    , _mcsvlIncludeNonComicsSeries = Nothing     , _mcsvlVolumeIds = Nothing     , _mcsvlFeatures = Nothing     , _mcsvlSource = pMcsvlSource_@@ -121,6 +127,12 @@ mcsvlLocale   = lens _mcsvlLocale (\ s a -> s{_mcsvlLocale = a}) +-- | Set to true to include non-comics series. Defaults to false.+mcsvlIncludeNonComicsSeries :: Lens' MyConfigSyncVolumeLicenses (Maybe Bool)+mcsvlIncludeNonComicsSeries+  = lens _mcsvlIncludeNonComicsSeries+      (\ s a -> s{_mcsvlIncludeNonComicsSeries = a})+ -- | The volume(s) to request download restrictions for. mcsvlVolumeIds :: Lens' MyConfigSyncVolumeLicenses [Text] mcsvlVolumeIds@@ -156,10 +168,13 @@ instance GoogleRequest MyConfigSyncVolumeLicenses          where         type Rs MyConfigSyncVolumeLicenses = Volumes-        requestClient MyConfigSyncVolumeLicenses{..}+        type Scopes MyConfigSyncVolumeLicenses =+             '["https://www.googleapis.com/auth/books"]+        requestClient MyConfigSyncVolumeLicenses'{..}           = go (Just _mcsvlSource) (Just _mcsvlNonce)               (Just _mcsvlCpksver)               _mcsvlLocale+              _mcsvlIncludeNonComicsSeries               (_mcsvlVolumeIds ^. _Default)               (_mcsvlFeatures ^. _Default)               _mcsvlShowPreOrders
gen/Network/Google/Resource/Books/MyConfig/UpdateUserSettings.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyConfig.UpdateUserSettings--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -57,7 +57,7 @@ -- sub-objects will retain the existing value. -- -- /See:/ 'myConfigUpdateUserSettings' smart constructor.-newtype MyConfigUpdateUserSettings = MyConfigUpdateUserSettings+newtype MyConfigUpdateUserSettings = MyConfigUpdateUserSettings'     { _mcuusPayload :: UserSettings     } deriving (Eq,Show,Data,Typeable,Generic) @@ -70,7 +70,7 @@     :: UserSettings -- ^ 'mcuusPayload'     -> MyConfigUpdateUserSettings myConfigUpdateUserSettings pMcuusPayload_ =-    MyConfigUpdateUserSettings+    MyConfigUpdateUserSettings'     { _mcuusPayload = pMcuusPayload_     } @@ -82,7 +82,9 @@ instance GoogleRequest MyConfigUpdateUserSettings          where         type Rs MyConfigUpdateUserSettings = UserSettings-        requestClient MyConfigUpdateUserSettings{..}+        type Scopes MyConfigUpdateUserSettings =+             '["https://www.googleapis.com/auth/books"]+        requestClient MyConfigUpdateUserSettings'{..}           = go (Just AltJSON) _mcuusPayload booksService           where go                   = buildClient
gen/Network/Google/Resource/Books/MyLibrary/Annotations/Delete.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyLibrary.Annotations.Delete--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -54,7 +54,7 @@ -- | Deletes an annotation. -- -- /See:/ 'myLibraryAnnotationsDelete' smart constructor.-data MyLibraryAnnotationsDelete = MyLibraryAnnotationsDelete+data MyLibraryAnnotationsDelete = MyLibraryAnnotationsDelete'     { _mladAnnotationId :: !Text     , _mladSource       :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic)@@ -70,7 +70,7 @@     :: Text -- ^ 'mladAnnotationId'     -> MyLibraryAnnotationsDelete myLibraryAnnotationsDelete pMladAnnotationId_ =-    MyLibraryAnnotationsDelete+    MyLibraryAnnotationsDelete'     { _mladAnnotationId = pMladAnnotationId_     , _mladSource = Nothing     }@@ -89,7 +89,9 @@ instance GoogleRequest MyLibraryAnnotationsDelete          where         type Rs MyLibraryAnnotationsDelete = ()-        requestClient MyLibraryAnnotationsDelete{..}+        type Scopes MyLibraryAnnotationsDelete =+             '["https://www.googleapis.com/auth/books"]+        requestClient MyLibraryAnnotationsDelete'{..}           = go _mladAnnotationId _mladSource (Just AltJSON)               booksService           where go
gen/Network/Google/Resource/Books/MyLibrary/Annotations/Insert.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyLibrary.Annotations.Insert--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -58,7 +58,7 @@ -- | Inserts a new annotation. -- -- /See:/ 'myLibraryAnnotationsInsert' smart constructor.-data MyLibraryAnnotationsInsert = MyLibraryAnnotationsInsert+data MyLibraryAnnotationsInsert = MyLibraryAnnotationsInsert'     { _mlaiCountry                   :: !(Maybe Text)     , _mlaiPayload                   :: !Annotation     , _mlaiShowOnlySummaryInResponse :: !(Maybe Bool)@@ -80,7 +80,7 @@     :: Annotation -- ^ 'mlaiPayload'     -> MyLibraryAnnotationsInsert myLibraryAnnotationsInsert pMlaiPayload_ =-    MyLibraryAnnotationsInsert+    MyLibraryAnnotationsInsert'     { _mlaiCountry = Nothing     , _mlaiPayload = pMlaiPayload_     , _mlaiShowOnlySummaryInResponse = Nothing@@ -112,7 +112,9 @@ instance GoogleRequest MyLibraryAnnotationsInsert          where         type Rs MyLibraryAnnotationsInsert = Annotation-        requestClient MyLibraryAnnotationsInsert{..}+        type Scopes MyLibraryAnnotationsInsert =+             '["https://www.googleapis.com/auth/books"]+        requestClient MyLibraryAnnotationsInsert'{..}           = go _mlaiCountry _mlaiShowOnlySummaryInResponse               _mlaiSource               (Just AltJSON)
gen/Network/Google/Resource/Books/MyLibrary/Annotations/List.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyLibrary.Annotations.List--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -71,7 +71,7 @@ -- | Retrieves a list of annotations, possibly filtered. -- -- /See:/ 'myLibraryAnnotationsList' smart constructor.-data MyLibraryAnnotationsList = MyLibraryAnnotationsList+data MyLibraryAnnotationsList = MyLibraryAnnotationsList'     { _mlalContentVersion :: !(Maybe Text)     , _mlalShowDeleted    :: !(Maybe Bool)     , _mlalUpdatedMax     :: !(Maybe Text)@@ -110,7 +110,7 @@ myLibraryAnnotationsList     :: MyLibraryAnnotationsList myLibraryAnnotationsList =-    MyLibraryAnnotationsList+    MyLibraryAnnotationsList'     { _mlalContentVersion = Nothing     , _mlalShowDeleted = Nothing     , _mlalUpdatedMax = Nothing@@ -187,7 +187,9 @@  instance GoogleRequest MyLibraryAnnotationsList where         type Rs MyLibraryAnnotationsList = Annotations-        requestClient MyLibraryAnnotationsList{..}+        type Scopes MyLibraryAnnotationsList =+             '["https://www.googleapis.com/auth/books"]+        requestClient MyLibraryAnnotationsList'{..}           = go _mlalContentVersion _mlalShowDeleted               _mlalUpdatedMax               _mlalUpdatedMin
gen/Network/Google/Resource/Books/MyLibrary/Annotations/Summary.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyLibrary.Annotations.Summary--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -56,7 +56,7 @@ -- | Gets the summary of specified layers. -- -- /See:/ 'myLibraryAnnotationsSummary' smart constructor.-data MyLibraryAnnotationsSummary = MyLibraryAnnotationsSummary+data MyLibraryAnnotationsSummary = MyLibraryAnnotationsSummary'     { _mlasLayerIds :: ![Text]     , _mlasVolumeId :: !Text     } deriving (Eq,Show,Data,Typeable,Generic)@@ -73,7 +73,7 @@     -> Text -- ^ 'mlasVolumeId'     -> MyLibraryAnnotationsSummary myLibraryAnnotationsSummary pMlasLayerIds_ pMlasVolumeId_ =-    MyLibraryAnnotationsSummary+    MyLibraryAnnotationsSummary'     { _mlasLayerIds = _Coerce # pMlasLayerIds_     , _mlasVolumeId = pMlasVolumeId_     }@@ -93,7 +93,9 @@          where         type Rs MyLibraryAnnotationsSummary =              AnnotationsSummary-        requestClient MyLibraryAnnotationsSummary{..}+        type Scopes MyLibraryAnnotationsSummary =+             '["https://www.googleapis.com/auth/books"]+        requestClient MyLibraryAnnotationsSummary'{..}           = go _mlasLayerIds (Just _mlasVolumeId)               (Just AltJSON)               booksService
gen/Network/Google/Resource/Books/MyLibrary/Annotations/Update.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyLibrary.Annotations.Update--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -56,7 +56,7 @@ -- | Updates an existing annotation. -- -- /See:/ 'myLibraryAnnotationsUpdate' smart constructor.-data MyLibraryAnnotationsUpdate = MyLibraryAnnotationsUpdate+data MyLibraryAnnotationsUpdate = MyLibraryAnnotationsUpdate'     { _mlauPayload      :: !Annotation     , _mlauAnnotationId :: !Text     , _mlauSource       :: !(Maybe Text)@@ -76,7 +76,7 @@     -> Text -- ^ 'mlauAnnotationId'     -> MyLibraryAnnotationsUpdate myLibraryAnnotationsUpdate pMlauPayload_ pMlauAnnotationId_ =-    MyLibraryAnnotationsUpdate+    MyLibraryAnnotationsUpdate'     { _mlauPayload = pMlauPayload_     , _mlauAnnotationId = pMlauAnnotationId_     , _mlauSource = Nothing@@ -101,7 +101,9 @@ instance GoogleRequest MyLibraryAnnotationsUpdate          where         type Rs MyLibraryAnnotationsUpdate = Annotation-        requestClient MyLibraryAnnotationsUpdate{..}+        type Scopes MyLibraryAnnotationsUpdate =+             '["https://www.googleapis.com/auth/books"]+        requestClient MyLibraryAnnotationsUpdate'{..}           = go _mlauAnnotationId _mlauSource (Just AltJSON)               _mlauPayload               booksService
gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/AddVolume.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyLibrary.Bookshelves.AddVolume--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -61,7 +61,7 @@ -- | Adds a volume to a bookshelf. -- -- /See:/ 'myLibraryBookshelvesAddVolume' smart constructor.-data MyLibraryBookshelvesAddVolume = MyLibraryBookshelvesAddVolume+data MyLibraryBookshelvesAddVolume = MyLibraryBookshelvesAddVolume'     { _mlbavReason   :: !(Maybe MyLibraryBookshelvesAddVolumeReason)     , _mlbavShelf    :: !Text     , _mlbavVolumeId :: !Text@@ -84,7 +84,7 @@     -> Text -- ^ 'mlbavVolumeId'     -> MyLibraryBookshelvesAddVolume myLibraryBookshelvesAddVolume pMlbavShelf_ pMlbavVolumeId_ =-    MyLibraryBookshelvesAddVolume+    MyLibraryBookshelvesAddVolume'     { _mlbavReason = Nothing     , _mlbavShelf = pMlbavShelf_     , _mlbavVolumeId = pMlbavVolumeId_@@ -115,7 +115,9 @@ instance GoogleRequest MyLibraryBookshelvesAddVolume          where         type Rs MyLibraryBookshelvesAddVolume = ()-        requestClient MyLibraryBookshelvesAddVolume{..}+        type Scopes MyLibraryBookshelvesAddVolume =+             '["https://www.googleapis.com/auth/books"]+        requestClient MyLibraryBookshelvesAddVolume'{..}           = go _mlbavShelf (Just _mlbavVolumeId) _mlbavReason               _mlbavSource               (Just AltJSON)
gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/ClearVolumes.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyLibrary.Bookshelves.ClearVolumes--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -55,7 +55,7 @@ -- | Clears all volumes from a bookshelf. -- -- /See:/ 'myLibraryBookshelvesClearVolumes' smart constructor.-data MyLibraryBookshelvesClearVolumes = MyLibraryBookshelvesClearVolumes+data MyLibraryBookshelvesClearVolumes = MyLibraryBookshelvesClearVolumes'     { _mlbcvShelf  :: !Text     , _mlbcvSource :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic)@@ -71,7 +71,7 @@     :: Text -- ^ 'mlbcvShelf'     -> MyLibraryBookshelvesClearVolumes myLibraryBookshelvesClearVolumes pMlbcvShelf_ =-    MyLibraryBookshelvesClearVolumes+    MyLibraryBookshelvesClearVolumes'     { _mlbcvShelf = pMlbcvShelf_     , _mlbcvSource = Nothing     }@@ -89,7 +89,9 @@ instance GoogleRequest          MyLibraryBookshelvesClearVolumes where         type Rs MyLibraryBookshelvesClearVolumes = ()-        requestClient MyLibraryBookshelvesClearVolumes{..}+        type Scopes MyLibraryBookshelvesClearVolumes =+             '["https://www.googleapis.com/auth/books"]+        requestClient MyLibraryBookshelvesClearVolumes'{..}           = go _mlbcvShelf _mlbcvSource (Just AltJSON)               booksService           where go
gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/Get.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyLibrary.Bookshelves.Get--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -56,7 +56,7 @@ -- authenticated user. -- -- /See:/ 'myLibraryBookshelvesGet' smart constructor.-data MyLibraryBookshelvesGet = MyLibraryBookshelvesGet+data MyLibraryBookshelvesGet = MyLibraryBookshelvesGet'     { _mlbgShelf  :: !Text     , _mlbgSource :: !(Maybe Text)     } deriving (Eq,Show,Data,Typeable,Generic)@@ -72,7 +72,7 @@     :: Text -- ^ 'mlbgShelf'     -> MyLibraryBookshelvesGet myLibraryBookshelvesGet pMlbgShelf_ =-    MyLibraryBookshelvesGet+    MyLibraryBookshelvesGet'     { _mlbgShelf = pMlbgShelf_     , _mlbgSource = Nothing     }@@ -89,7 +89,9 @@  instance GoogleRequest MyLibraryBookshelvesGet where         type Rs MyLibraryBookshelvesGet = Bookshelf-        requestClient MyLibraryBookshelvesGet{..}+        type Scopes MyLibraryBookshelvesGet =+             '["https://www.googleapis.com/auth/books"]+        requestClient MyLibraryBookshelvesGet'{..}           = go _mlbgShelf _mlbgSource (Just AltJSON)               booksService           where go
gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/List.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyLibrary.Bookshelves.List--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -52,7 +52,7 @@ -- | Retrieves a list of bookshelves belonging to the authenticated user. -- -- /See:/ 'myLibraryBookshelvesList' smart constructor.-newtype MyLibraryBookshelvesList = MyLibraryBookshelvesList+newtype MyLibraryBookshelvesList = MyLibraryBookshelvesList'     { _mlblSource :: Maybe Text     } deriving (Eq,Show,Data,Typeable,Generic) @@ -64,7 +64,7 @@ myLibraryBookshelvesList     :: MyLibraryBookshelvesList myLibraryBookshelvesList =-    MyLibraryBookshelvesList+    MyLibraryBookshelvesList'     { _mlblSource = Nothing     } @@ -75,7 +75,9 @@  instance GoogleRequest MyLibraryBookshelvesList where         type Rs MyLibraryBookshelvesList = Bookshelves-        requestClient MyLibraryBookshelvesList{..}+        type Scopes MyLibraryBookshelvesList =+             '["https://www.googleapis.com/auth/books"]+        requestClient MyLibraryBookshelvesList'{..}           = go _mlblSource (Just AltJSON) booksService           where go                   = buildClient
gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/MoveVolume.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyLibrary.Bookshelves.MoveVolume--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -59,7 +59,7 @@ -- | Moves a volume within a bookshelf. -- -- /See:/ 'myLibraryBookshelvesMoveVolume' smart constructor.-data MyLibraryBookshelvesMoveVolume = MyLibraryBookshelvesMoveVolume+data MyLibraryBookshelvesMoveVolume = MyLibraryBookshelvesMoveVolume'     { _mlbmvShelf          :: !Text     , _mlbmvVolumeId       :: !Text     , _mlbmvSource         :: !(Maybe Text)@@ -83,7 +83,7 @@     -> Int32 -- ^ 'mlbmvVolumePosition'     -> MyLibraryBookshelvesMoveVolume myLibraryBookshelvesMoveVolume pMlbmvShelf_ pMlbmvVolumeId_ pMlbmvVolumePosition_ =-    MyLibraryBookshelvesMoveVolume+    MyLibraryBookshelvesMoveVolume'     { _mlbmvShelf = pMlbmvShelf_     , _mlbmvVolumeId = pMlbmvVolumeId_     , _mlbmvSource = Nothing@@ -117,7 +117,9 @@ instance GoogleRequest MyLibraryBookshelvesMoveVolume          where         type Rs MyLibraryBookshelvesMoveVolume = ()-        requestClient MyLibraryBookshelvesMoveVolume{..}+        type Scopes MyLibraryBookshelvesMoveVolume =+             '["https://www.googleapis.com/auth/books"]+        requestClient MyLibraryBookshelvesMoveVolume'{..}           = go _mlbmvShelf (Just _mlbmvVolumeId)               (Just _mlbmvVolumePosition)               _mlbmvSource
gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/RemoveVolume.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyLibrary.Bookshelves.RemoveVolume--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -61,7 +61,7 @@ -- | Removes a volume from a bookshelf. -- -- /See:/ 'myLibraryBookshelvesRemoveVolume' smart constructor.-data MyLibraryBookshelvesRemoveVolume = MyLibraryBookshelvesRemoveVolume+data MyLibraryBookshelvesRemoveVolume = MyLibraryBookshelvesRemoveVolume'     { _mlbrvReason   :: !(Maybe MyLibraryBookshelvesRemoveVolumeReason)     , _mlbrvShelf    :: !Text     , _mlbrvVolumeId :: !Text@@ -84,7 +84,7 @@     -> Text -- ^ 'mlbrvVolumeId'     -> MyLibraryBookshelvesRemoveVolume myLibraryBookshelvesRemoveVolume pMlbrvShelf_ pMlbrvVolumeId_ =-    MyLibraryBookshelvesRemoveVolume+    MyLibraryBookshelvesRemoveVolume'     { _mlbrvReason = Nothing     , _mlbrvShelf = pMlbrvShelf_     , _mlbrvVolumeId = pMlbrvVolumeId_@@ -115,7 +115,9 @@ instance GoogleRequest          MyLibraryBookshelvesRemoveVolume where         type Rs MyLibraryBookshelvesRemoveVolume = ()-        requestClient MyLibraryBookshelvesRemoveVolume{..}+        type Scopes MyLibraryBookshelvesRemoveVolume =+             '["https://www.googleapis.com/auth/books"]+        requestClient MyLibraryBookshelvesRemoveVolume'{..}           = go _mlbrvShelf (Just _mlbrvVolumeId) _mlbrvReason               _mlbrvSource               (Just AltJSON)
gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/Volumes/List.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyLibrary.Bookshelves.Volumes.List--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -69,7 +69,7 @@ -- | Gets volume information for volumes on a bookshelf. -- -- /See:/ 'myLibraryBookshelvesVolumesList' smart constructor.-data MyLibraryBookshelvesVolumesList = MyLibraryBookshelvesVolumesList+data MyLibraryBookshelvesVolumesList = MyLibraryBookshelvesVolumesList'     { _mlbvlCountry       :: !(Maybe Text)     , _mlbvlQ             :: !(Maybe Text)     , _mlbvlShelf         :: !Text@@ -103,7 +103,7 @@     :: Text -- ^ 'mlbvlShelf'     -> MyLibraryBookshelvesVolumesList myLibraryBookshelvesVolumesList pMlbvlShelf_ =-    MyLibraryBookshelvesVolumesList+    MyLibraryBookshelvesVolumesList'     { _mlbvlCountry = Nothing     , _mlbvlQ = Nothing     , _mlbvlShelf = pMlbvlShelf_@@ -162,7 +162,9 @@ instance GoogleRequest          MyLibraryBookshelvesVolumesList where         type Rs MyLibraryBookshelvesVolumesList = Volumes-        requestClient MyLibraryBookshelvesVolumesList{..}+        type Scopes MyLibraryBookshelvesVolumesList =+             '["https://www.googleapis.com/auth/books"]+        requestClient MyLibraryBookshelvesVolumesList'{..}           = go _mlbvlShelf _mlbvlCountry _mlbvlQ _mlbvlSource               _mlbvlProjection               _mlbvlStartIndex
gen/Network/Google/Resource/Books/MyLibrary/ReadingPositions/Get.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyLibrary.ReadingPositions.Get--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -57,7 +57,7 @@ -- | Retrieves my reading position information for a volume. -- -- /See:/ 'myLibraryReadingPositionsGet' smart constructor.-data MyLibraryReadingPositionsGet = MyLibraryReadingPositionsGet+data MyLibraryReadingPositionsGet = MyLibraryReadingPositionsGet'     { _mlrpgContentVersion :: !(Maybe Text)     , _mlrpgVolumeId       :: !Text     , _mlrpgSource         :: !(Maybe Text)@@ -76,7 +76,7 @@     :: Text -- ^ 'mlrpgVolumeId'     -> MyLibraryReadingPositionsGet myLibraryReadingPositionsGet pMlrpgVolumeId_ =-    MyLibraryReadingPositionsGet+    MyLibraryReadingPositionsGet'     { _mlrpgContentVersion = Nothing     , _mlrpgVolumeId = pMlrpgVolumeId_     , _mlrpgSource = Nothing@@ -103,7 +103,9 @@          where         type Rs MyLibraryReadingPositionsGet =              ReadingPosition-        requestClient MyLibraryReadingPositionsGet{..}+        type Scopes MyLibraryReadingPositionsGet =+             '["https://www.googleapis.com/auth/books"]+        requestClient MyLibraryReadingPositionsGet'{..}           = go _mlrpgVolumeId _mlrpgContentVersion _mlrpgSource               (Just AltJSON)               booksService
gen/Network/Google/Resource/Books/MyLibrary/ReadingPositions/SetPosition.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.MyLibrary.ReadingPositions.SetPosition--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -67,7 +67,7 @@ -- | Sets my reading position information for a volume. -- -- /See:/ 'myLibraryReadingPositionsSetPosition' smart constructor.-data MyLibraryReadingPositionsSetPosition = MyLibraryReadingPositionsSetPosition+data MyLibraryReadingPositionsSetPosition = MyLibraryReadingPositionsSetPosition'     { _mlrpspDeviceCookie   :: !(Maybe Text)     , _mlrpspContentVersion :: !(Maybe Text)     , _mlrpspAction         :: !(Maybe MyLibraryReadingPositionsSetPositionAction)@@ -100,7 +100,7 @@     -> Text -- ^ 'mlrpspPosition'     -> MyLibraryReadingPositionsSetPosition myLibraryReadingPositionsSetPosition pMlrpspVolumeId_ pMlrpspTimestamp_ pMlrpspPosition_ =-    MyLibraryReadingPositionsSetPosition+    MyLibraryReadingPositionsSetPosition'     { _mlrpspDeviceCookie = Nothing     , _mlrpspContentVersion = Nothing     , _mlrpspAction = Nothing@@ -153,8 +153,10 @@ instance GoogleRequest          MyLibraryReadingPositionsSetPosition where         type Rs MyLibraryReadingPositionsSetPosition = ()+        type Scopes MyLibraryReadingPositionsSetPosition =+             '["https://www.googleapis.com/auth/books"]         requestClient-          MyLibraryReadingPositionsSetPosition{..}+          MyLibraryReadingPositionsSetPosition'{..}           = go _mlrpspVolumeId (Just _mlrpspTimestamp)               (Just _mlrpspPosition)               _mlrpspDeviceCookie
gen/Network/Google/Resource/Books/Notification/Get.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Notification.Get--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -56,7 +56,7 @@ -- | Returns notification details for a given notification id. -- -- /See:/ 'notificationGet' smart constructor.-data NotificationGet = NotificationGet+data NotificationGet = NotificationGet'     { _ngLocale         :: !(Maybe Text)     , _ngNotificationId :: !Text     , _ngSource         :: !(Maybe Text)@@ -75,7 +75,7 @@     :: Text -- ^ 'ngNotificationId'     -> NotificationGet notificationGet pNgNotificationId_ =-    NotificationGet+    NotificationGet'     { _ngLocale = Nothing     , _ngNotificationId = pNgNotificationId_     , _ngSource = Nothing@@ -98,7 +98,9 @@  instance GoogleRequest NotificationGet where         type Rs NotificationGet = Notification-        requestClient NotificationGet{..}+        type Scopes NotificationGet =+             '["https://www.googleapis.com/auth/books"]+        requestClient NotificationGet'{..}           = go (Just _ngNotificationId) _ngLocale _ngSource               (Just AltJSON)               booksService
gen/Network/Google/Resource/Books/Onboarding/ListCategories.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Onboarding.ListCategories--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -52,7 +52,7 @@ -- | List categories for onboarding experience. -- -- /See:/ 'onboardingListCategories' smart constructor.-newtype OnboardingListCategories = OnboardingListCategories+newtype OnboardingListCategories = OnboardingListCategories'     { _olcLocale :: Maybe Text     } deriving (Eq,Show,Data,Typeable,Generic) @@ -64,7 +64,7 @@ onboardingListCategories     :: OnboardingListCategories onboardingListCategories =-    OnboardingListCategories+    OnboardingListCategories'     { _olcLocale = Nothing     } @@ -76,7 +76,9 @@  instance GoogleRequest OnboardingListCategories where         type Rs OnboardingListCategories = Category-        requestClient OnboardingListCategories{..}+        type Scopes OnboardingListCategories =+             '["https://www.googleapis.com/auth/books"]+        requestClient OnboardingListCategories'{..}           = go _olcLocale (Just AltJSON) booksService           where go                   = buildClient
gen/Network/Google/Resource/Books/Onboarding/ListCategoryVolumes.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Onboarding.ListCategoryVolumes--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -62,7 +62,7 @@ -- | List available volumes under categories for onboarding experience. -- -- /See:/ 'onboardingListCategoryVolumes' smart constructor.-data OnboardingListCategoryVolumes = OnboardingListCategoryVolumes+data OnboardingListCategoryVolumes = OnboardingListCategoryVolumes'     { _olcvLocale                   :: !(Maybe Text)     , _olcvMaxAllowedMaturityRating :: !(Maybe OnboardingListCategoryVolumesMaxAllowedMaturityRating)     , _olcvCategoryId               :: !(Maybe [Text])@@ -86,7 +86,7 @@ onboardingListCategoryVolumes     :: OnboardingListCategoryVolumes onboardingListCategoryVolumes =-    OnboardingListCategoryVolumes+    OnboardingListCategoryVolumes'     { _olcvLocale = Nothing     , _olcvMaxAllowedMaturityRating = Nothing     , _olcvCategoryId = Nothing@@ -130,7 +130,9 @@ instance GoogleRequest OnboardingListCategoryVolumes          where         type Rs OnboardingListCategoryVolumes = Volume2-        requestClient OnboardingListCategoryVolumes{..}+        type Scopes OnboardingListCategoryVolumes =+             '["https://www.googleapis.com/auth/books"]+        requestClient OnboardingListCategoryVolumes'{..}           = go _olcvLocale _olcvMaxAllowedMaturityRating               (_olcvCategoryId ^. _Default)               _olcvPageToken
gen/Network/Google/Resource/Books/Personalizedstream/Get.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Personalizedstream.Get--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -59,7 +59,7 @@ -- | Returns a stream of personalized book clusters -- -- /See:/ 'personalizedstreamGet' smart constructor.-data PersonalizedstreamGet = PersonalizedstreamGet+data PersonalizedstreamGet = PersonalizedstreamGet'     { _pgLocale                   :: !(Maybe Text)     , _pgMaxAllowedMaturityRating :: !(Maybe PersonalizedstreamGetMaxAllowedMaturityRating)     , _pgSource                   :: !(Maybe Text)@@ -77,7 +77,7 @@ personalizedstreamGet     :: PersonalizedstreamGet personalizedstreamGet =-    PersonalizedstreamGet+    PersonalizedstreamGet'     { _pgLocale = Nothing     , _pgMaxAllowedMaturityRating = Nothing     , _pgSource = Nothing@@ -101,7 +101,9 @@  instance GoogleRequest PersonalizedstreamGet where         type Rs PersonalizedstreamGet = Discoveryclusters-        requestClient PersonalizedstreamGet{..}+        type Scopes PersonalizedstreamGet =+             '["https://www.googleapis.com/auth/books"]+        requestClient PersonalizedstreamGet'{..}           = go _pgLocale _pgMaxAllowedMaturityRating _pgSource               (Just AltJSON)               booksService
gen/Network/Google/Resource/Books/PromoOffer/Accept.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.PromoOffer.Accept--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -66,7 +66,7 @@ -- | -- -- /See:/ 'promoOfferAccept' smart constructor.-data PromoOfferAccept = PromoOfferAccept+data PromoOfferAccept = PromoOfferAccept'     { _poaManufacturer :: !(Maybe Text)     , _poaSerial       :: !(Maybe Text)     , _poaDevice       :: !(Maybe Text)@@ -99,7 +99,7 @@ promoOfferAccept     :: PromoOfferAccept promoOfferAccept =-    PromoOfferAccept+    PromoOfferAccept'     { _poaManufacturer = Nothing     , _poaSerial = Nothing     , _poaDevice = Nothing@@ -151,7 +151,9 @@  instance GoogleRequest PromoOfferAccept where         type Rs PromoOfferAccept = ()-        requestClient PromoOfferAccept{..}+        type Scopes PromoOfferAccept =+             '["https://www.googleapis.com/auth/books"]+        requestClient PromoOfferAccept'{..}           = go _poaManufacturer _poaSerial _poaDevice _poaModel               _poaVolumeId               _poaOfferId
gen/Network/Google/Resource/Books/PromoOffer/Dismiss.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.PromoOffer.Dismiss--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -64,7 +64,7 @@ -- | -- -- /See:/ 'promoOfferDismiss' smart constructor.-data PromoOfferDismiss = PromoOfferDismiss+data PromoOfferDismiss = PromoOfferDismiss'     { _podManufacturer :: !(Maybe Text)     , _podSerial       :: !(Maybe Text)     , _podDevice       :: !(Maybe Text)@@ -94,7 +94,7 @@ promoOfferDismiss     :: PromoOfferDismiss promoOfferDismiss =-    PromoOfferDismiss+    PromoOfferDismiss'     { _podManufacturer = Nothing     , _podSerial = Nothing     , _podDevice = Nothing@@ -141,7 +141,9 @@  instance GoogleRequest PromoOfferDismiss where         type Rs PromoOfferDismiss = ()-        requestClient PromoOfferDismiss{..}+        type Scopes PromoOfferDismiss =+             '["https://www.googleapis.com/auth/books"]+        requestClient PromoOfferDismiss'{..}           = go _podManufacturer _podSerial _podDevice _podModel               _podOfferId               _podProduct
gen/Network/Google/Resource/Books/PromoOffer/Get.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.PromoOffer.Get--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -62,7 +62,7 @@ -- | Returns a list of promo offers available to the user -- -- /See:/ 'promoOfferGet' smart constructor.-data PromoOfferGet = PromoOfferGet+data PromoOfferGet = PromoOfferGet'     { _pogManufacturer :: !(Maybe Text)     , _pogSerial       :: !(Maybe Text)     , _pogDevice       :: !(Maybe Text)@@ -89,7 +89,7 @@ promoOfferGet     :: PromoOfferGet promoOfferGet =-    PromoOfferGet+    PromoOfferGet'     { _pogManufacturer = Nothing     , _pogSerial = Nothing     , _pogDevice = Nothing@@ -130,7 +130,9 @@  instance GoogleRequest PromoOfferGet where         type Rs PromoOfferGet = Offers-        requestClient PromoOfferGet{..}+        type Scopes PromoOfferGet =+             '["https://www.googleapis.com/auth/books"]+        requestClient PromoOfferGet'{..}           = go _pogManufacturer _pogSerial _pogDevice _pogModel               _pogProduct               _pogAndroidId
+ gen/Network/Google/Resource/Books/Series/Get.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.Series.Get+-- Copyright   : (c) 2015-2016 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 Series metadata for the given series ids.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.series.get@.+module Network.Google.Resource.Books.Series.Get+    (+    -- * REST Resource+      SeriesGetResource++    -- * Creating a Request+    , seriesGet+    , SeriesGet++    -- * Request Lenses+    , sgSeriesId+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.series.get@ method which the+-- 'SeriesGet' request conforms to.+type SeriesGetResource =+     "books" :>+       "v1" :>+         "series" :>+           "get" :>+             QueryParams "series_id" Text :>+               QueryParam "alt" AltJSON :> Get '[JSON] Series++-- | Returns Series metadata for the given series ids.+--+-- /See:/ 'seriesGet' smart constructor.+newtype SeriesGet = SeriesGet'+    { _sgSeriesId :: [Text]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SeriesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sgSeriesId'+seriesGet+    :: [Text] -- ^ 'sgSeriesId'+    -> SeriesGet+seriesGet pSgSeriesId_ =+    SeriesGet'+    { _sgSeriesId = _Coerce # pSgSeriesId_+    }++-- | String that identifies the series+sgSeriesId :: Lens' SeriesGet [Text]+sgSeriesId+  = lens _sgSeriesId (\ s a -> s{_sgSeriesId = a}) .+      _Coerce++instance GoogleRequest SeriesGet where+        type Rs SeriesGet = Series+        type Scopes SeriesGet =+             '["https://www.googleapis.com/auth/books"]+        requestClient SeriesGet'{..}+          = go _sgSeriesId (Just AltJSON) booksService+          where go+                  = buildClient (Proxy :: Proxy SeriesGetResource)+                      mempty
+ gen/Network/Google/Resource/Books/Series/Membership/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.Series.Membership.Get+-- Copyright   : (c) 2015-2016 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 Series membership data given the series id.+--+-- /See:/ <https://developers.google.com/books/docs/v1/getting_started Books API Reference> for @books.series.membership.get@.+module Network.Google.Resource.Books.Series.Membership.Get+    (+    -- * REST Resource+      SeriesMembershipGetResource++    -- * Creating a Request+    , seriesMembershipGet+    , SeriesMembershipGet++    -- * Request Lenses+    , smgPageToken+    , smgPageSize+    , smgSeriesId+    ) where++import           Network.Google.Books.Types+import           Network.Google.Prelude++-- | A resource alias for @books.series.membership.get@ method which the+-- 'SeriesMembershipGet' request conforms to.+type SeriesMembershipGetResource =+     "books" :>+       "v1" :>+         "series" :>+           "membership" :>+             "get" :>+               QueryParam "series_id" Text :>+                 QueryParam "page_token" Text :>+                   QueryParam "page_size" (Textual Word32) :>+                     QueryParam "alt" AltJSON :>+                       Get '[JSON] Seriesmembership++-- | Returns Series membership data given the series id.+--+-- /See:/ 'seriesMembershipGet' smart constructor.+data SeriesMembershipGet = SeriesMembershipGet'+    { _smgPageToken :: !(Maybe Text)+    , _smgPageSize  :: !(Maybe (Textual Word32))+    , _smgSeriesId  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SeriesMembershipGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'smgPageToken'+--+-- * 'smgPageSize'+--+-- * 'smgSeriesId'+seriesMembershipGet+    :: Text -- ^ 'smgSeriesId'+    -> SeriesMembershipGet+seriesMembershipGet pSmgSeriesId_ =+    SeriesMembershipGet'+    { _smgPageToken = Nothing+    , _smgPageSize = Nothing+    , _smgSeriesId = pSmgSeriesId_+    }++-- | The value of the nextToken from the previous page.+smgPageToken :: Lens' SeriesMembershipGet (Maybe Text)+smgPageToken+  = lens _smgPageToken (\ s a -> s{_smgPageToken = a})++-- | Number of maximum results per page to be included in the response.+smgPageSize :: Lens' SeriesMembershipGet (Maybe Word32)+smgPageSize+  = lens _smgPageSize (\ s a -> s{_smgPageSize = a}) .+      mapping _Coerce++-- | String that identifies the series+smgSeriesId :: Lens' SeriesMembershipGet Text+smgSeriesId+  = lens _smgSeriesId (\ s a -> s{_smgSeriesId = a})++instance GoogleRequest SeriesMembershipGet where+        type Rs SeriesMembershipGet = Seriesmembership+        type Scopes SeriesMembershipGet =+             '["https://www.googleapis.com/auth/books"]+        requestClient SeriesMembershipGet'{..}+          = go (Just _smgSeriesId) _smgPageToken _smgPageSize+              (Just AltJSON)+              booksService+          where go+                  = buildClient+                      (Proxy :: Proxy SeriesMembershipGetResource)+                      mempty
gen/Network/Google/Resource/Books/Volumes/Associated/List.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Volumes.Associated.List--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -63,7 +63,7 @@ -- | Return a list of associated books. -- -- /See:/ 'volumesAssociatedList' smart constructor.-data VolumesAssociatedList = VolumesAssociatedList+data VolumesAssociatedList = VolumesAssociatedList'     { _valLocale                   :: !(Maybe Text)     , _valMaxAllowedMaturityRating :: !(Maybe VolumesAssociatedListMaxAllowedMaturityRating)     , _valVolumeId                 :: !Text@@ -88,7 +88,7 @@     :: Text -- ^ 'valVolumeId'     -> VolumesAssociatedList volumesAssociatedList pValVolumeId_ =-    VolumesAssociatedList+    VolumesAssociatedList'     { _valLocale = Nothing     , _valMaxAllowedMaturityRating = Nothing     , _valVolumeId = pValVolumeId_@@ -127,7 +127,9 @@  instance GoogleRequest VolumesAssociatedList where         type Rs VolumesAssociatedList = Volumes-        requestClient VolumesAssociatedList{..}+        type Scopes VolumesAssociatedList =+             '["https://www.googleapis.com/auth/books"]+        requestClient VolumesAssociatedList'{..}           = go _valVolumeId _valLocale               _valMaxAllowedMaturityRating               _valSource
gen/Network/Google/Resource/Books/Volumes/Get.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Volumes.Get--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -34,6 +34,7 @@      -- * Request Lenses     , vgCountry+    , vgIncludeNonComicsSeries     , vgPartner     , vgVolumeId     , vgSource@@ -52,17 +53,19 @@          "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+               QueryParam "includeNonComicsSeries" Bool :>+                 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+data VolumesGet = VolumesGet'     { _vgCountry                   :: !(Maybe Text)+    , _vgIncludeNonComicsSeries    :: !(Maybe Bool)     , _vgPartner                   :: !(Maybe Text)     , _vgVolumeId                  :: !Text     , _vgSource                    :: !(Maybe Text)@@ -76,6 +79,8 @@ -- -- * 'vgCountry' --+-- * 'vgIncludeNonComicsSeries'+-- -- * 'vgPartner' -- -- * 'vgVolumeId'@@ -89,8 +94,9 @@     :: Text -- ^ 'vgVolumeId'     -> VolumesGet volumesGet pVgVolumeId_ =-    VolumesGet+    VolumesGet'     { _vgCountry = Nothing+    , _vgIncludeNonComicsSeries = Nothing     , _vgPartner = Nothing     , _vgVolumeId = pVgVolumeId_     , _vgSource = Nothing@@ -103,6 +109,12 @@ vgCountry   = lens _vgCountry (\ s a -> s{_vgCountry = a}) +-- | Set to true to include non-comics series. Defaults to false.+vgIncludeNonComicsSeries :: Lens' VolumesGet (Maybe Bool)+vgIncludeNonComicsSeries+  = lens _vgIncludeNonComicsSeries+      (\ s a -> s{_vgIncludeNonComicsSeries = a})+ -- | Brand results for partner ID. vgPartner :: Lens' VolumesGet (Maybe Text) vgPartner@@ -129,8 +141,12 @@  instance GoogleRequest VolumesGet where         type Rs VolumesGet = Volume-        requestClient VolumesGet{..}-          = go _vgVolumeId _vgCountry _vgPartner _vgSource+        type Scopes VolumesGet =+             '["https://www.googleapis.com/auth/books"]+        requestClient VolumesGet'{..}+          = go _vgVolumeId _vgCountry _vgIncludeNonComicsSeries+              _vgPartner+              _vgSource               _vgProjection               _vgUserLibraryConsistentRead               (Just AltJSON)
gen/Network/Google/Resource/Books/Volumes/List.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Volumes.List--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -79,7 +79,7 @@ -- | Performs a book search. -- -- /See:/ 'volumesList' smart constructor.-data VolumesList = VolumesList+data VolumesList = VolumesList'     { _vlOrderBy         :: !(Maybe VolumesListOrderBy)     , _vlLibraryRestrict :: !(Maybe VolumesListLibraryRestrict)     , _vlPartner         :: !(Maybe Text)@@ -128,7 +128,7 @@     :: Text -- ^ 'vlQ'     -> VolumesList volumesList pVlQ_ =-    VolumesList+    VolumesList'     { _vlOrderBy = Nothing     , _vlLibraryRestrict = Nothing     , _vlPartner = Nothing@@ -213,7 +213,9 @@  instance GoogleRequest VolumesList where         type Rs VolumesList = Volumes-        requestClient VolumesList{..}+        type Scopes VolumesList =+             '["https://www.googleapis.com/auth/books"]+        requestClient VolumesList'{..}           = go (Just _vlQ) _vlOrderBy _vlLibraryRestrict               _vlPartner               _vlDownload
gen/Network/Google/Resource/Books/Volumes/Mybooks/List.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Volumes.Mybooks.List--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -35,6 +35,7 @@     -- * Request Lenses     , vmlProcessingState     , vmlAcquireMethod+    , vmlCountry     , vmlLocale     , vmlSource     , vmlStartIndex@@ -57,18 +58,20 @@                QueryParams "acquireMethod"                  VolumesMybooksListAcquireMethod                  :>-                 QueryParam "locale" Text :>-                   QueryParam "source" Text :>-                     QueryParam "startIndex" (Textual Word32) :>-                       QueryParam "maxResults" (Textual Word32) :>-                         QueryParam "alt" AltJSON :> Get '[JSON] Volumes+                 QueryParam "country" Text :>+                   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+data VolumesMybooksList = VolumesMybooksList'     { _vmlProcessingState :: !(Maybe [VolumesMybooksListProcessingState])     , _vmlAcquireMethod   :: !(Maybe [VolumesMybooksListAcquireMethod])+    , _vmlCountry         :: !(Maybe Text)     , _vmlLocale          :: !(Maybe Text)     , _vmlSource          :: !(Maybe Text)     , _vmlStartIndex      :: !(Maybe (Textual Word32))@@ -83,6 +86,8 @@ -- -- * 'vmlAcquireMethod' --+-- * 'vmlCountry'+-- -- * 'vmlLocale' -- -- * 'vmlSource'@@ -93,9 +98,10 @@ volumesMybooksList     :: VolumesMybooksList volumesMybooksList =-    VolumesMybooksList+    VolumesMybooksList'     { _vmlProcessingState = Nothing     , _vmlAcquireMethod = Nothing+    , _vmlCountry = Nothing     , _vmlLocale = Nothing     , _vmlSource = Nothing     , _vmlStartIndex = Nothing@@ -119,6 +125,11 @@       . _Default       . _Coerce +-- | ISO-3166-1 code to override the IP-based location.+vmlCountry :: Lens' VolumesMybooksList (Maybe Text)+vmlCountry+  = lens _vmlCountry (\ s a -> s{_vmlCountry = a})+ -- | ISO-639-1 language and ISO-3166-1 country code. Ex:\'en_US\'. Used for -- generating recommendations. vmlLocale :: Lens' VolumesMybooksList (Maybe Text)@@ -146,9 +157,12 @@  instance GoogleRequest VolumesMybooksList where         type Rs VolumesMybooksList = Volumes-        requestClient VolumesMybooksList{..}+        type Scopes VolumesMybooksList =+             '["https://www.googleapis.com/auth/books"]+        requestClient VolumesMybooksList'{..}           = go (_vmlProcessingState ^. _Default)               (_vmlAcquireMethod ^. _Default)+              _vmlCountry               _vmlLocale               _vmlSource               _vmlStartIndex
gen/Network/Google/Resource/Books/Volumes/Recommended/List.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Volumes.Recommended.List--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -58,7 +58,7 @@ -- | Return a list of recommended books for the current user. -- -- /See:/ 'volumesRecommendedList' smart constructor.-data VolumesRecommendedList = VolumesRecommendedList+data VolumesRecommendedList = VolumesRecommendedList'     { _vrlLocale                   :: !(Maybe Text)     , _vrlMaxAllowedMaturityRating :: !(Maybe VolumesRecommendedListMaxAllowedMaturityRating)     , _vrlSource                   :: !(Maybe Text)@@ -76,7 +76,7 @@ volumesRecommendedList     :: VolumesRecommendedList volumesRecommendedList =-    VolumesRecommendedList+    VolumesRecommendedList'     { _vrlLocale = Nothing     , _vrlMaxAllowedMaturityRating = Nothing     , _vrlSource = Nothing@@ -102,7 +102,9 @@  instance GoogleRequest VolumesRecommendedList where         type Rs VolumesRecommendedList = Volumes-        requestClient VolumesRecommendedList{..}+        type Scopes VolumesRecommendedList =+             '["https://www.googleapis.com/auth/books"]+        requestClient VolumesRecommendedList'{..}           = go _vrlLocale _vrlMaxAllowedMaturityRating               _vrlSource               (Just AltJSON)
gen/Network/Google/Resource/Books/Volumes/Recommended/Rate.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Volumes.Recommended.Rate--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -60,7 +60,7 @@ -- | Rate a recommended book for the current user. -- -- /See:/ 'volumesRecommendedRate' smart constructor.-data VolumesRecommendedRate = VolumesRecommendedRate+data VolumesRecommendedRate = VolumesRecommendedRate'     { _vrrRating   :: !VolumesRecommendedRateRating     , _vrrLocale   :: !(Maybe Text)     , _vrrVolumeId :: !Text@@ -83,7 +83,7 @@     -> Text -- ^ 'vrrVolumeId'     -> VolumesRecommendedRate volumesRecommendedRate pVrrRating_ pVrrVolumeId_ =-    VolumesRecommendedRate+    VolumesRecommendedRate'     { _vrrRating = pVrrRating_     , _vrrLocale = Nothing     , _vrrVolumeId = pVrrVolumeId_@@ -114,7 +114,9 @@ instance GoogleRequest VolumesRecommendedRate where         type Rs VolumesRecommendedRate =              BooksVolumesRecommendedRateResponse-        requestClient VolumesRecommendedRate{..}+        type Scopes VolumesRecommendedRate =+             '["https://www.googleapis.com/auth/books"]+        requestClient VolumesRecommendedRate'{..}           = go (Just _vrrRating) (Just _vrrVolumeId) _vrrLocale               _vrrSource               (Just AltJSON)
gen/Network/Google/Resource/Books/Volumes/UserUploaded/List.hs view
@@ -14,7 +14,7 @@  -- | -- Module      : Network.Google.Resource.Books.Volumes.UserUploaded.List--- Copyright   : (c) 2015 Brendan Hay+-- Copyright   : (c) 2015-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -64,7 +64,7 @@ -- | Return a list of books uploaded by the current user. -- -- /See:/ 'volumesUserUploadedList' smart constructor.-data VolumesUserUploadedList = VolumesUserUploadedList+data VolumesUserUploadedList = VolumesUserUploadedList'     { _vuulProcessingState :: !(Maybe [VolumesUserUploadedListProcessingState])     , _vuulLocale          :: !(Maybe Text)     , _vuulVolumeId        :: !(Maybe [Text])@@ -91,7 +91,7 @@ volumesUserUploadedList     :: VolumesUserUploadedList volumesUserUploadedList =-    VolumesUserUploadedList+    VolumesUserUploadedList'     { _vuulProcessingState = Nothing     , _vuulLocale = Nothing     , _vuulVolumeId = Nothing@@ -143,7 +143,9 @@  instance GoogleRequest VolumesUserUploadedList where         type Rs VolumesUserUploadedList = Volumes-        requestClient VolumesUserUploadedList{..}+        type Scopes VolumesUserUploadedList =+             '["https://www.googleapis.com/auth/books"]+        requestClient VolumesUserUploadedList'{..}           = go (_vuulProcessingState ^. _Default) _vuulLocale               (_vuulVolumeId ^. _Default)               _vuulSource
gogol-books.cabal view
@@ -1,5 +1,5 @@ name:                  gogol-books-version:               0.0.1+version:               0.1.0 synopsis:              Google Books SDK. homepage:              https://github.com/brendanhay/gogol bug-reports:           https://github.com/brendanhay/gogol/issues@@ -7,7 +7,7 @@ license-file:          LICENSE author:                Brendan Hay maintainer:            Brendan Hay <brendan.g.hay@gmail.com>-copyright:             Copyright (c) 2015 Brendan Hay+copyright:             Copyright (c) 2015-2016 Brendan Hay category:              Network, Google, Cloud build-type:            Simple cabal-version:         >= 1.10@@ -74,6 +74,8 @@         , Network.Google.Resource.Books.PromoOffer.Accept         , Network.Google.Resource.Books.PromoOffer.Dismiss         , Network.Google.Resource.Books.PromoOffer.Get+        , Network.Google.Resource.Books.Series.Get+        , Network.Google.Resource.Books.Series.Membership.Get         , Network.Google.Resource.Books.Volumes.Associated.List         , Network.Google.Resource.Books.Volumes.Get         , Network.Google.Resource.Books.Volumes.List@@ -87,5 +89,5 @@         , Network.Google.Books.Types.Sum      build-depends:-          gogol-core == 0.0.1.*+          gogol-core == 0.1.0.*         , base       >= 4.7 && < 5