gogol-books 0.4.0 → 0.5.0
raw patch · 56 files changed
+8739/−8245 lines, 56 filesdep ~gogol-corePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: gogol-core
API changes (from Hackage documentation)
+ Network.Google.Books: nTimeToExpireMs :: Lens' Notification (Maybe Int64)
+ Network.Google.Books.Types: nTimeToExpireMs :: Lens' Notification (Maybe Int64)
Files
- README.md +1/−1
- gen/Network/Google/Books.hs +1/−0
- gen/Network/Google/Books/Types.hs +2/−1
- gen/Network/Google/Books/Types/Product.hs +8365/−8038
- gen/Network/Google/Resource/Books/Bookshelves/Get.hs +8/−7
- gen/Network/Google/Resource/Books/Bookshelves/List.hs +7/−6
- gen/Network/Google/Resource/Books/Bookshelves/Volumes/List.hs +7/−3
- gen/Network/Google/Resource/Books/CloudLoading/AddBook.hs +7/−3
- gen/Network/Google/Resource/Books/CloudLoading/DeleteBook.hs +7/−5
- gen/Network/Google/Resource/Books/CloudLoading/UpdateBook.hs +7/−5
- gen/Network/Google/Resource/Books/Dictionary/ListOfflineMetadata.hs +7/−5
- gen/Network/Google/Resource/Books/Familysharing/GetFamilyInfo.hs +7/−6
- gen/Network/Google/Resource/Books/Familysharing/Share.hs +8/−7
- gen/Network/Google/Resource/Books/Familysharing/Unshare.hs +8/−7
- gen/Network/Google/Resource/Books/Layers/AnnotationData/Get.hs +7/−3
- gen/Network/Google/Resource/Books/Layers/AnnotationData/List.hs +7/−3
- gen/Network/Google/Resource/Books/Layers/Get.hs +7/−3
- gen/Network/Google/Resource/Books/Layers/List.hs +7/−3
- gen/Network/Google/Resource/Books/Layers/VolumeAnnotations/Get.hs +7/−3
- gen/Network/Google/Resource/Books/Layers/VolumeAnnotations/List.hs +7/−3
- gen/Network/Google/Resource/Books/MyConfig/GetUserSettings.hs +4/−2
- gen/Network/Google/Resource/Books/MyConfig/ReleaseDownloadAccess.hs +7/−3
- gen/Network/Google/Resource/Books/MyConfig/RequestAccess.hs +7/−3
- gen/Network/Google/Resource/Books/MyConfig/SyncVolumeLicenses.hs +7/−3
- gen/Network/Google/Resource/Books/MyConfig/UpdateUserSettings.hs +7/−5
- gen/Network/Google/Resource/Books/MyLibrary/Annotations/Delete.hs +8/−6
- gen/Network/Google/Resource/Books/MyLibrary/Annotations/Insert.hs +7/−3
- gen/Network/Google/Resource/Books/MyLibrary/Annotations/List.hs +7/−3
- gen/Network/Google/Resource/Books/MyLibrary/Annotations/Summary.hs +8/−6
- gen/Network/Google/Resource/Books/MyLibrary/Annotations/Update.hs +7/−3
- gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/AddVolume.hs +7/−3
- gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/ClearVolumes.hs +10/−7
- gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/Get.hs +7/−6
- gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/List.hs +7/−6
- gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/MoveVolume.hs +7/−3
- gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/RemoveVolume.hs +9/−4
- gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/Volumes/List.hs +9/−4
- gen/Network/Google/Resource/Books/MyLibrary/ReadingPositions/Get.hs +7/−3
- gen/Network/Google/Resource/Books/MyLibrary/ReadingPositions/SetPosition.hs +9/−4
- gen/Network/Google/Resource/Books/Notification/Get.hs +7/−3
- gen/Network/Google/Resource/Books/Onboarding/ListCategories.hs +7/−6
- gen/Network/Google/Resource/Books/Onboarding/ListCategoryVolumes.hs +7/−3
- gen/Network/Google/Resource/Books/Personalizedstream/Get.hs +7/−3
- gen/Network/Google/Resource/Books/PromoOffer/Accept.hs +7/−3
- gen/Network/Google/Resource/Books/PromoOffer/Dismiss.hs +7/−3
- gen/Network/Google/Resource/Books/PromoOffer/Get.hs +7/−3
- gen/Network/Google/Resource/Books/Series/Get.hs +7/−6
- gen/Network/Google/Resource/Books/Series/Membership/Get.hs +7/−3
- gen/Network/Google/Resource/Books/Volumes/Associated/List.hs +7/−3
- gen/Network/Google/Resource/Books/Volumes/Get.hs +7/−3
- gen/Network/Google/Resource/Books/Volumes/List.hs +7/−3
- gen/Network/Google/Resource/Books/Volumes/Mybooks/List.hs +7/−3
- gen/Network/Google/Resource/Books/Volumes/Recommended/List.hs +7/−3
- gen/Network/Google/Resource/Books/Volumes/Recommended/Rate.hs +7/−3
- gen/Network/Google/Resource/Books/Volumes/UserUploaded/List.hs +7/−3
- gogol-books.cabal +2/−2
README.md view
@@ -8,7 +8,7 @@ ## Version -`0.3.0`+`0.5.0` ## Description
gen/Network/Google/Books.hs view
@@ -462,6 +462,7 @@ , nKind , nBody , nCrmExperimentIds+ , nTimeToExpireMs , nPcampaignId , nReason , nIsDocumentMature
gen/Network/Google/Books/Types.hs view
@@ -300,6 +300,7 @@ , nKind , nBody , nCrmExperimentIds+ , nTimeToExpireMs , nPcampaignId , nReason , nIsDocumentMature@@ -992,4 +993,4 @@ -- | Manage your books booksScope :: Proxy '["https://www.googleapis.com/auth/books"]-booksScope = Proxy;+booksScope = Proxy
gen/Network/Google/Books/Types/Product.hs view
@@ -22,8044 +22,8371 @@ -- -- /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 Bytes)- , _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 _Bytes---- | 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 top-level summary of the panelization info in this volume.------ /See:/ 'volumeVolumeInfoPanelizationSummary' smart constructor.-data VolumeVolumeInfoPanelizationSummary = VolumeVolumeInfoPanelizationSummary'- { _vvipsEpubBubbleVersion :: !(Maybe Text)- , _vvipsContainsImageBubbles :: !(Maybe Bool)- , _vvipsContainsEpubBubbles :: !(Maybe Bool)- , _vvipsImageBubbleVersion :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'VolumeVolumeInfoPanelizationSummary' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vvipsEpubBubbleVersion'------ * 'vvipsContainsImageBubbles'------ * 'vvipsContainsEpubBubbles'------ * 'vvipsImageBubbleVersion'-volumeVolumeInfoPanelizationSummary- :: VolumeVolumeInfoPanelizationSummary-volumeVolumeInfoPanelizationSummary =- VolumeVolumeInfoPanelizationSummary'- { _vvipsEpubBubbleVersion = Nothing- , _vvipsContainsImageBubbles = Nothing- , _vvipsContainsEpubBubbles = Nothing- , _vvipsImageBubbleVersion = Nothing- }--vvipsEpubBubbleVersion :: Lens' VolumeVolumeInfoPanelizationSummary (Maybe Text)-vvipsEpubBubbleVersion- = lens _vvipsEpubBubbleVersion- (\ s a -> s{_vvipsEpubBubbleVersion = a})--vvipsContainsImageBubbles :: Lens' VolumeVolumeInfoPanelizationSummary (Maybe Bool)-vvipsContainsImageBubbles- = lens _vvipsContainsImageBubbles- (\ s a -> s{_vvipsContainsImageBubbles = a})--vvipsContainsEpubBubbles :: Lens' VolumeVolumeInfoPanelizationSummary (Maybe Bool)-vvipsContainsEpubBubbles- = lens _vvipsContainsEpubBubbles- (\ s a -> s{_vvipsContainsEpubBubbles = a})--vvipsImageBubbleVersion :: Lens' VolumeVolumeInfoPanelizationSummary (Maybe Text)-vvipsImageBubbleVersion- = lens _vvipsImageBubbleVersion- (\ s a -> s{_vvipsImageBubbleVersion = a})--instance FromJSON VolumeVolumeInfoPanelizationSummary- where- parseJSON- = withObject "VolumeVolumeInfoPanelizationSummary"- (\ o ->- VolumeVolumeInfoPanelizationSummary' <$>- (o .:? "epubBubbleVersion") <*>- (o .:? "containsImageBubbles")- <*> (o .:? "containsEpubBubbles")- <*> (o .:? "imageBubbleVersion"))--instance ToJSON VolumeVolumeInfoPanelizationSummary- where- toJSON VolumeVolumeInfoPanelizationSummary'{..}- = object- (catMaybes- [("epubBubbleVersion" .=) <$>- _vvipsEpubBubbleVersion,- ("containsImageBubbles" .=) <$>- _vvipsContainsImageBubbles,- ("containsEpubBubbles" .=) <$>- _vvipsContainsEpubBubbles,- ("imageBubbleVersion" .=) <$>- _vvipsImageBubbleVersion])---- | 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:/ 'userSettingsNotificationPriceDrop' smart constructor.-newtype UserSettingsNotificationPriceDrop = UserSettingsNotificationPriceDrop'- { _usnpdOptedState :: Maybe Text- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserSettingsNotificationPriceDrop' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'usnpdOptedState'-userSettingsNotificationPriceDrop- :: UserSettingsNotificationPriceDrop-userSettingsNotificationPriceDrop =- UserSettingsNotificationPriceDrop'- { _usnpdOptedState = Nothing- }--usnpdOptedState :: Lens' UserSettingsNotificationPriceDrop (Maybe Text)-usnpdOptedState- = lens _usnpdOptedState- (\ s a -> s{_usnpdOptedState = a})--instance FromJSON UserSettingsNotificationPriceDrop- where- parseJSON- = withObject "UserSettingsNotificationPriceDrop"- (\ o ->- UserSettingsNotificationPriceDrop' <$>- (o .:? "opted_state"))--instance ToJSON UserSettingsNotificationPriceDrop- where- toJSON UserSettingsNotificationPriceDrop'{..}- = object- (catMaybes [("opted_state" .=) <$> _usnpdOptedState])------- /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)- , _nIsDocumentMature :: !(Maybe Bool)- , _nDontShowNotification :: !(Maybe Bool)- , _nNotificationType :: !(Maybe Text)- , _nNotificationGroup :: !(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'------ * 'nIsDocumentMature'------ * 'nDontShowNotification'------ * 'nNotificationType'------ * 'nNotificationGroup'------ * '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- , _nIsDocumentMature = Nothing- , _nDontShowNotification = Nothing- , _nNotificationType = Nothing- , _nNotificationGroup = 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})--nIsDocumentMature :: Lens' Notification (Maybe Bool)-nIsDocumentMature- = lens _nIsDocumentMature- (\ s a -> s{_nIsDocumentMature = 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})--nNotificationGroup :: Lens' Notification (Maybe Text)-nNotificationGroup- = lens _nNotificationGroup- (\ s a -> s{_nNotificationGroup = 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 .:? "is_document_mature")- <*> (o .:? "dont_show_notification")- <*> (o .:? "notification_type")- <*> (o .:? "notificationGroup")- <*> (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,- ("is_document_mature" .=) <$> _nIsDocumentMature,- ("dont_show_notification" .=) <$>- _nDontShowNotification,- ("notification_type" .=) <$> _nNotificationType,- ("notificationGroup" .=) <$> _nNotificationGroup,- ("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:/ 'userSettingsNotificationRewardExpirations' smart constructor.-newtype UserSettingsNotificationRewardExpirations = UserSettingsNotificationRewardExpirations'- { _usnreOptedState :: Maybe Text- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserSettingsNotificationRewardExpirations' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'usnreOptedState'-userSettingsNotificationRewardExpirations- :: UserSettingsNotificationRewardExpirations-userSettingsNotificationRewardExpirations =- UserSettingsNotificationRewardExpirations'- { _usnreOptedState = Nothing- }--usnreOptedState :: Lens' UserSettingsNotificationRewardExpirations (Maybe Text)-usnreOptedState- = lens _usnreOptedState- (\ s a -> s{_usnreOptedState = a})--instance FromJSON- UserSettingsNotificationRewardExpirations where- parseJSON- = withObject- "UserSettingsNotificationRewardExpirations"- (\ o ->- UserSettingsNotificationRewardExpirations' <$>- (o .:? "opted_state"))--instance ToJSON- UserSettingsNotificationRewardExpirations where- toJSON UserSettingsNotificationRewardExpirations'{..}- = object- (catMaybes [("opted_state" .=) <$> _usnreOptedState])------- /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.-data UserSettingsNotification = UserSettingsNotification'- { _usnRewardExpirations :: !(Maybe UserSettingsNotificationRewardExpirations)- , _usnPriceDrop :: !(Maybe UserSettingsNotificationPriceDrop)- , _usnMatchMyInterests :: !(Maybe UserSettingsNotificationMatchMyInterests)- , _usnMoreFromAuthors :: !(Maybe UserSettingsNotificationMoreFromAuthors)- , _usnMoreFromSeries :: !(Maybe UserSettingsNotificationMoreFromSeries)- } 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:------ * 'usnRewardExpirations'------ * 'usnPriceDrop'------ * 'usnMatchMyInterests'------ * 'usnMoreFromAuthors'------ * 'usnMoreFromSeries'-userSettingsNotification- :: UserSettingsNotification-userSettingsNotification =- UserSettingsNotification'- { _usnRewardExpirations = Nothing- , _usnPriceDrop = Nothing- , _usnMatchMyInterests = Nothing- , _usnMoreFromAuthors = Nothing- , _usnMoreFromSeries = Nothing- }--usnRewardExpirations :: Lens' UserSettingsNotification (Maybe UserSettingsNotificationRewardExpirations)-usnRewardExpirations- = lens _usnRewardExpirations- (\ s a -> s{_usnRewardExpirations = a})--usnPriceDrop :: Lens' UserSettingsNotification (Maybe UserSettingsNotificationPriceDrop)-usnPriceDrop- = lens _usnPriceDrop (\ s a -> s{_usnPriceDrop = a})--usnMatchMyInterests :: Lens' UserSettingsNotification (Maybe UserSettingsNotificationMatchMyInterests)-usnMatchMyInterests- = lens _usnMatchMyInterests- (\ s a -> s{_usnMatchMyInterests = a})--usnMoreFromAuthors :: Lens' UserSettingsNotification (Maybe UserSettingsNotificationMoreFromAuthors)-usnMoreFromAuthors- = lens _usnMoreFromAuthors- (\ s a -> s{_usnMoreFromAuthors = a})--usnMoreFromSeries :: Lens' UserSettingsNotification (Maybe UserSettingsNotificationMoreFromSeries)-usnMoreFromSeries- = lens _usnMoreFromSeries- (\ s a -> s{_usnMoreFromSeries = a})--instance FromJSON UserSettingsNotification where- parseJSON- = withObject "UserSettingsNotification"- (\ o ->- UserSettingsNotification' <$>- (o .:? "rewardExpirations") <*> (o .:? "priceDrop")- <*> (o .:? "matchMyInterests")- <*> (o .:? "moreFromAuthors")- <*> (o .:? "moreFromSeries"))--instance ToJSON UserSettingsNotification where- toJSON UserSettingsNotification'{..}- = object- (catMaybes- [("rewardExpirations" .=) <$> _usnRewardExpirations,- ("priceDrop" .=) <$> _usnPriceDrop,- ("matchMyInterests" .=) <$> _usnMatchMyInterests,- ("moreFromAuthors" .=) <$> _usnMoreFromAuthors,- ("moreFromSeries" .=) <$> _usnMoreFromSeries])------- /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])---- | Family membership info of the user that made the request.------ /See:/ 'familyInfoMembership' smart constructor.-data FamilyInfoMembership = FamilyInfoMembership'- { _fimAllowedMaturityRating :: !(Maybe Text)- , _fimAcquirePermission :: !(Maybe Text)- , _fimRole :: !(Maybe Text)- , _fimAgeGroup :: !(Maybe Text)- , _fimIsInFamily :: !(Maybe Bool)- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'FamilyInfoMembership' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'fimAllowedMaturityRating'------ * 'fimAcquirePermission'------ * 'fimRole'------ * 'fimAgeGroup'------ * 'fimIsInFamily'-familyInfoMembership- :: FamilyInfoMembership-familyInfoMembership =- FamilyInfoMembership'- { _fimAllowedMaturityRating = Nothing- , _fimAcquirePermission = Nothing- , _fimRole = Nothing- , _fimAgeGroup = Nothing- , _fimIsInFamily = Nothing- }---- | The maximum allowed maturity rating for the user.-fimAllowedMaturityRating :: Lens' FamilyInfoMembership (Maybe Text)-fimAllowedMaturityRating- = lens _fimAllowedMaturityRating- (\ s a -> s{_fimAllowedMaturityRating = a})---- | Restrictions on user buying and acquiring content.-fimAcquirePermission :: Lens' FamilyInfoMembership (Maybe Text)-fimAcquirePermission- = lens _fimAcquirePermission- (\ s a -> s{_fimAcquirePermission = a})---- | The role of the user in the family.-fimRole :: Lens' FamilyInfoMembership (Maybe Text)-fimRole = lens _fimRole (\ s a -> s{_fimRole = a})---- | The age group of the user.-fimAgeGroup :: Lens' FamilyInfoMembership (Maybe Text)-fimAgeGroup- = lens _fimAgeGroup (\ s a -> s{_fimAgeGroup = a})--fimIsInFamily :: Lens' FamilyInfoMembership (Maybe Bool)-fimIsInFamily- = lens _fimIsInFamily- (\ s a -> s{_fimIsInFamily = a})--instance FromJSON FamilyInfoMembership where- parseJSON- = withObject "FamilyInfoMembership"- (\ o ->- FamilyInfoMembership' <$>- (o .:? "allowedMaturityRating") <*>- (o .:? "acquirePermission")- <*> (o .:? "role")- <*> (o .:? "ageGroup")- <*> (o .:? "isInFamily"))--instance ToJSON FamilyInfoMembership where- toJSON FamilyInfoMembership'{..}- = object- (catMaybes- [("allowedMaturityRating" .=) <$>- _fimAllowedMaturityRating,- ("acquirePermission" .=) <$> _fimAcquirePermission,- ("role" .=) <$> _fimRole,- ("ageGroup" .=) <$> _fimAgeGroup,- ("isInFamily" .=) <$> _fimIsInFamily])------- /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])------- /See:/ 'familyInfo' smart constructor.-data FamilyInfo = FamilyInfo'- { _fiMembership :: !(Maybe FamilyInfoMembership)- , _fiKind :: !Text- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'FamilyInfo' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'fiMembership'------ * 'fiKind'-familyInfo- :: FamilyInfo-familyInfo =- FamilyInfo'- { _fiMembership = Nothing- , _fiKind = "books#familyInfo"- }---- | Family membership info of the user that made the request.-fiMembership :: Lens' FamilyInfo (Maybe FamilyInfoMembership)-fiMembership- = lens _fiMembership (\ s a -> s{_fiMembership = a})---- | Resource type.-fiKind :: Lens' FamilyInfo Text-fiKind = lens _fiKind (\ s a -> s{_fiKind = a})--instance FromJSON FamilyInfo where- parseJSON- = withObject "FamilyInfo"- (\ o ->- FamilyInfo' <$>- (o .:? "membership") <*>- (o .:? "kind" .!= "books#familyInfo"))--instance ToJSON FamilyInfo where- toJSON FamilyInfo'{..}- = object- (catMaybes- [("membership" .=) <$> _fiMembership,- Just ("kind" .= _fiKind)])---- | 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)- , _vsioiGiftable :: !(Maybe Bool)- } 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'------ * 'vsioiGiftable'-volumeSaleInfoOffersItem- :: VolumeSaleInfoOffersItem-volumeSaleInfoOffersItem =- VolumeSaleInfoOffersItem'- { _vsioiFinskyOfferType = Nothing- , _vsioiRentalDuration = Nothing- , _vsioiListPrice = Nothing- , _vsioiRetailPrice = Nothing- , _vsioiGiftable = 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})---- | Indicates whether the offer is giftable.-vsioiGiftable :: Lens' VolumeSaleInfoOffersItem (Maybe Bool)-vsioiGiftable- = lens _vsioiGiftable- (\ s a -> s{_vsioiGiftable = a})--instance FromJSON VolumeSaleInfoOffersItem where- parseJSON- = withObject "VolumeSaleInfoOffersItem"- (\ o ->- VolumeSaleInfoOffersItem' <$>- (o .:? "finskyOfferType") <*>- (o .:? "rentalDuration")- <*> (o .:? "listPrice")- <*> (o .:? "retailPrice")- <*> (o .:? "giftable"))--instance ToJSON VolumeSaleInfoOffersItem where- toJSON VolumeSaleInfoOffersItem'{..}- = object- (catMaybes- [("finskyOfferType" .=) <$> _vsioiFinskyOfferType,- ("rentalDuration" .=) <$> _vsioiRentalDuration,- ("listPrice" .=) <$> _vsioiListPrice,- ("retailPrice" .=) <$> _vsioiRetailPrice,- ("giftable" .=) <$> _vsioiGiftable])------- /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:/ 'userSettingsNotificationMatchMyInterests' smart constructor.-newtype UserSettingsNotificationMatchMyInterests = UserSettingsNotificationMatchMyInterests'- { _usnmmiOptedState :: Maybe Text- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserSettingsNotificationMatchMyInterests' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'usnmmiOptedState'-userSettingsNotificationMatchMyInterests- :: UserSettingsNotificationMatchMyInterests-userSettingsNotificationMatchMyInterests =- UserSettingsNotificationMatchMyInterests'- { _usnmmiOptedState = Nothing- }--usnmmiOptedState :: Lens' UserSettingsNotificationMatchMyInterests (Maybe Text)-usnmmiOptedState- = lens _usnmmiOptedState- (\ s a -> s{_usnmmiOptedState = a})--instance FromJSON- UserSettingsNotificationMatchMyInterests where- parseJSON- = withObject- "UserSettingsNotificationMatchMyInterests"- (\ o ->- UserSettingsNotificationMatchMyInterests' <$>- (o .:? "opted_state"))--instance ToJSON- UserSettingsNotificationMatchMyInterests where- toJSON UserSettingsNotificationMatchMyInterests'{..}- = object- (catMaybes- [("opted_state" .=) <$> _usnmmiOptedState])------- /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)- , _vviPanelizationSummary :: !(Maybe VolumeVolumeInfoPanelizationSummary)- , _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])- , _vviComicsContent :: !(Maybe Bool)- , _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'------ * 'vviPanelizationSummary'------ * 'vviAverageRating'------ * 'vviRatingsCount'------ * 'vviCanonicalVolumeLink'------ * 'vviReadingModes'------ * 'vviIndustryIdentifiers'------ * 'vviSeriesInfo'------ * 'vviPrintedPageCount'------ * 'vviMainCategory'------ * 'vviContentVersion'------ * 'vviSamplePageCount'------ * 'vviCategories'------ * 'vviAuthors'------ * 'vviComicsContent'------ * 'vviAllowAnonLogging'------ * 'vviSubtitle'------ * 'vviPublishedDate'------ * 'vviMaturityRating'------ * 'vviPreviewLink'------ * 'vviLanguage'------ * 'vviTitle'------ * 'vviPageCount'------ * 'vviDimensions'------ * 'vviInfoLink'------ * 'vviPublisher'------ * 'vviDescription'------ * 'vviPrintType'-volumeVolumeInfo- :: VolumeVolumeInfo-volumeVolumeInfo =- VolumeVolumeInfo'- { _vviImageLinks = Nothing- , _vviPanelizationSummary = 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- , _vviComicsContent = 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})---- | A top-level summary of the panelization info in this volume.-vviPanelizationSummary :: Lens' VolumeVolumeInfo (Maybe VolumeVolumeInfoPanelizationSummary)-vviPanelizationSummary- = lens _vviPanelizationSummary- (\ s a -> s{_vviPanelizationSummary = 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 the volume has comics content.-vviComicsContent :: Lens' VolumeVolumeInfo (Maybe Bool)-vviComicsContent- = lens _vviComicsContent- (\ s a -> s{_vviComicsContent = a})---- | 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 .:? "panelizationSummary")- <*> (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 .:? "comicsContent")- <*> (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,- ("panelizationSummary" .=) <$>- _vviPanelizationSummary,- ("averageRating" .=) <$> _vviAverageRating,- ("ratingsCount" .=) <$> _vviRatingsCount,- ("canonicalVolumeLink" .=) <$>- _vviCanonicalVolumeLink,- ("readingModes" .=) <$> _vviReadingModes,- ("industryIdentifiers" .=) <$>- _vviIndustryIdentifiers,- ("seriesInfo" .=) <$> _vviSeriesInfo,- ("printedPageCount" .=) <$> _vviPrintedPageCount,- ("mainCategory" .=) <$> _vviMainCategory,- ("contentVersion" .=) <$> _vviContentVersion,- ("samplePageCount" .=) <$> _vviSamplePageCount,- ("categories" .=) <$> _vviCategories,- ("authors" .=) <$> _vviAuthors,- ("comicsContent" .=) <$> _vviComicsContent,- ("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:/ 'userSettingsNotificationMoreFromSeries' smart constructor.-newtype UserSettingsNotificationMoreFromSeries = UserSettingsNotificationMoreFromSeries'- { _usnmfsOptedState :: Maybe Text- } deriving (Eq,Show,Data,Typeable,Generic)---- | Creates a value of 'UserSettingsNotificationMoreFromSeries' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'usnmfsOptedState'-userSettingsNotificationMoreFromSeries- :: UserSettingsNotificationMoreFromSeries-userSettingsNotificationMoreFromSeries =- UserSettingsNotificationMoreFromSeries'- { _usnmfsOptedState = Nothing- }--usnmfsOptedState :: Lens' UserSettingsNotificationMoreFromSeries (Maybe Text)-usnmfsOptedState- = lens _usnmfsOptedState- (\ s a -> s{_usnmfsOptedState = a})--instance FromJSON- UserSettingsNotificationMoreFromSeries where- parseJSON- = withObject "UserSettingsNotificationMoreFromSeries"- (\ o ->- UserSettingsNotificationMoreFromSeries' <$>- (o .:? "opted_state"))--instance ToJSON- UserSettingsNotificationMoreFromSeries where- toJSON UserSettingsNotificationMoreFromSeries'{..}- = object- (catMaybes- [("opted_state" .=) <$> _usnmfsOptedState])------- /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- }+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 Bytes)+ , _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 _Bytes++-- | 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 top-level summary of the panelization info in this volume.+--+-- /See:/ 'volumeVolumeInfoPanelizationSummary' smart constructor.+data VolumeVolumeInfoPanelizationSummary =+ VolumeVolumeInfoPanelizationSummary'+ { _vvipsEpubBubbleVersion :: !(Maybe Text)+ , _vvipsContainsImageBubbles :: !(Maybe Bool)+ , _vvipsContainsEpubBubbles :: !(Maybe Bool)+ , _vvipsImageBubbleVersion :: !(Maybe Text)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VolumeVolumeInfoPanelizationSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vvipsEpubBubbleVersion'+--+-- * 'vvipsContainsImageBubbles'+--+-- * 'vvipsContainsEpubBubbles'+--+-- * 'vvipsImageBubbleVersion'+volumeVolumeInfoPanelizationSummary+ :: VolumeVolumeInfoPanelizationSummary+volumeVolumeInfoPanelizationSummary =+ VolumeVolumeInfoPanelizationSummary'+ { _vvipsEpubBubbleVersion = Nothing+ , _vvipsContainsImageBubbles = Nothing+ , _vvipsContainsEpubBubbles = Nothing+ , _vvipsImageBubbleVersion = Nothing+ }+++vvipsEpubBubbleVersion :: Lens' VolumeVolumeInfoPanelizationSummary (Maybe Text)+vvipsEpubBubbleVersion+ = lens _vvipsEpubBubbleVersion+ (\ s a -> s{_vvipsEpubBubbleVersion = a})++vvipsContainsImageBubbles :: Lens' VolumeVolumeInfoPanelizationSummary (Maybe Bool)+vvipsContainsImageBubbles+ = lens _vvipsContainsImageBubbles+ (\ s a -> s{_vvipsContainsImageBubbles = a})++vvipsContainsEpubBubbles :: Lens' VolumeVolumeInfoPanelizationSummary (Maybe Bool)+vvipsContainsEpubBubbles+ = lens _vvipsContainsEpubBubbles+ (\ s a -> s{_vvipsContainsEpubBubbles = a})++vvipsImageBubbleVersion :: Lens' VolumeVolumeInfoPanelizationSummary (Maybe Text)+vvipsImageBubbleVersion+ = lens _vvipsImageBubbleVersion+ (\ s a -> s{_vvipsImageBubbleVersion = a})++instance FromJSON VolumeVolumeInfoPanelizationSummary+ where+ parseJSON+ = withObject "VolumeVolumeInfoPanelizationSummary"+ (\ o ->+ VolumeVolumeInfoPanelizationSummary' <$>+ (o .:? "epubBubbleVersion") <*>+ (o .:? "containsImageBubbles")+ <*> (o .:? "containsEpubBubbles")+ <*> (o .:? "imageBubbleVersion"))++instance ToJSON VolumeVolumeInfoPanelizationSummary+ where+ toJSON VolumeVolumeInfoPanelizationSummary'{..}+ = object+ (catMaybes+ [("epubBubbleVersion" .=) <$>+ _vvipsEpubBubbleVersion,+ ("containsImageBubbles" .=) <$>+ _vvipsContainsImageBubbles,+ ("containsEpubBubbles" .=) <$>+ _vvipsContainsEpubBubbles,+ ("imageBubbleVersion" .=) <$>+ _vvipsImageBubbleVersion])++-- | 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:/ 'userSettingsNotificationPriceDrop' smart constructor.+newtype UserSettingsNotificationPriceDrop =+ UserSettingsNotificationPriceDrop'+ { _usnpdOptedState :: Maybe Text+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserSettingsNotificationPriceDrop' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usnpdOptedState'+userSettingsNotificationPriceDrop+ :: UserSettingsNotificationPriceDrop+userSettingsNotificationPriceDrop =+ UserSettingsNotificationPriceDrop' {_usnpdOptedState = Nothing}+++usnpdOptedState :: Lens' UserSettingsNotificationPriceDrop (Maybe Text)+usnpdOptedState+ = lens _usnpdOptedState+ (\ s a -> s{_usnpdOptedState = a})++instance FromJSON UserSettingsNotificationPriceDrop+ where+ parseJSON+ = withObject "UserSettingsNotificationPriceDrop"+ (\ o ->+ UserSettingsNotificationPriceDrop' <$>+ (o .:? "opted_state"))++instance ToJSON UserSettingsNotificationPriceDrop+ where+ toJSON UserSettingsNotificationPriceDrop'{..}+ = object+ (catMaybes [("opted_state" .=) <$> _usnpdOptedState])++--+-- /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])+ , _nTimeToExpireMs :: !(Maybe (Textual Int64))+ , _nPcampaignId :: !(Maybe Text)+ , _nReason :: !(Maybe Text)+ , _nIsDocumentMature :: !(Maybe Bool)+ , _nDontShowNotification :: !(Maybe Bool)+ , _nNotificationType :: !(Maybe Text)+ , _nNotificationGroup :: !(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'+--+-- * 'nTimeToExpireMs'+--+-- * 'nPcampaignId'+--+-- * 'nReason'+--+-- * 'nIsDocumentMature'+--+-- * 'nDontShowNotification'+--+-- * 'nNotificationType'+--+-- * 'nNotificationGroup'+--+-- * 'nIconURL'+--+-- * 'nTitle'+notification+ :: Notification+notification =+ Notification'+ { _nDocType = Nothing+ , _nTargetURL = Nothing+ , _nShowNotificationSettingsAction = Nothing+ , _nDocId = Nothing+ , _nKind = "books#notification"+ , _nBody = Nothing+ , _nCrmExperimentIds = Nothing+ , _nTimeToExpireMs = Nothing+ , _nPcampaignId = Nothing+ , _nReason = Nothing+ , _nIsDocumentMature = Nothing+ , _nDontShowNotification = Nothing+ , _nNotificationType = Nothing+ , _nNotificationGroup = 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++nTimeToExpireMs :: Lens' Notification (Maybe Int64)+nTimeToExpireMs+ = lens _nTimeToExpireMs+ (\ s a -> s{_nTimeToExpireMs = a})+ . mapping _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})++nIsDocumentMature :: Lens' Notification (Maybe Bool)+nIsDocumentMature+ = lens _nIsDocumentMature+ (\ s a -> s{_nIsDocumentMature = 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})++nNotificationGroup :: Lens' Notification (Maybe Text)+nNotificationGroup+ = lens _nNotificationGroup+ (\ s a -> s{_nNotificationGroup = 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 .:? "timeToExpireMs")+ <*> (o .:? "pcampaign_id")+ <*> (o .:? "reason")+ <*> (o .:? "is_document_mature")+ <*> (o .:? "dont_show_notification")+ <*> (o .:? "notification_type")+ <*> (o .:? "notificationGroup")+ <*> (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,+ ("timeToExpireMs" .=) <$> _nTimeToExpireMs,+ ("pcampaign_id" .=) <$> _nPcampaignId,+ ("reason" .=) <$> _nReason,+ ("is_document_mature" .=) <$> _nIsDocumentMature,+ ("dont_show_notification" .=) <$>+ _nDontShowNotification,+ ("notification_type" .=) <$> _nNotificationType,+ ("notificationGroup" .=) <$> _nNotificationGroup,+ ("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:/ 'userSettingsNotificationRewardExpirations' smart constructor.+newtype UserSettingsNotificationRewardExpirations =+ UserSettingsNotificationRewardExpirations'+ { _usnreOptedState :: Maybe Text+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserSettingsNotificationRewardExpirations' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usnreOptedState'+userSettingsNotificationRewardExpirations+ :: UserSettingsNotificationRewardExpirations+userSettingsNotificationRewardExpirations =+ UserSettingsNotificationRewardExpirations' {_usnreOptedState = Nothing}+++usnreOptedState :: Lens' UserSettingsNotificationRewardExpirations (Maybe Text)+usnreOptedState+ = lens _usnreOptedState+ (\ s a -> s{_usnreOptedState = a})++instance FromJSON+ UserSettingsNotificationRewardExpirations+ where+ parseJSON+ = withObject+ "UserSettingsNotificationRewardExpirations"+ (\ o ->+ UserSettingsNotificationRewardExpirations' <$>+ (o .:? "opted_state"))++instance ToJSON+ UserSettingsNotificationRewardExpirations+ where+ toJSON UserSettingsNotificationRewardExpirations'{..}+ = object+ (catMaybes [("opted_state" .=) <$> _usnreOptedState])++--+-- /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.+data UserSettingsNotification =+ UserSettingsNotification'+ { _usnRewardExpirations :: !(Maybe UserSettingsNotificationRewardExpirations)+ , _usnPriceDrop :: !(Maybe UserSettingsNotificationPriceDrop)+ , _usnMatchMyInterests :: !(Maybe UserSettingsNotificationMatchMyInterests)+ , _usnMoreFromAuthors :: !(Maybe UserSettingsNotificationMoreFromAuthors)+ , _usnMoreFromSeries :: !(Maybe UserSettingsNotificationMoreFromSeries)+ }+ 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:+--+-- * 'usnRewardExpirations'+--+-- * 'usnPriceDrop'+--+-- * 'usnMatchMyInterests'+--+-- * 'usnMoreFromAuthors'+--+-- * 'usnMoreFromSeries'+userSettingsNotification+ :: UserSettingsNotification+userSettingsNotification =+ UserSettingsNotification'+ { _usnRewardExpirations = Nothing+ , _usnPriceDrop = Nothing+ , _usnMatchMyInterests = Nothing+ , _usnMoreFromAuthors = Nothing+ , _usnMoreFromSeries = Nothing+ }+++usnRewardExpirations :: Lens' UserSettingsNotification (Maybe UserSettingsNotificationRewardExpirations)+usnRewardExpirations+ = lens _usnRewardExpirations+ (\ s a -> s{_usnRewardExpirations = a})++usnPriceDrop :: Lens' UserSettingsNotification (Maybe UserSettingsNotificationPriceDrop)+usnPriceDrop+ = lens _usnPriceDrop (\ s a -> s{_usnPriceDrop = a})++usnMatchMyInterests :: Lens' UserSettingsNotification (Maybe UserSettingsNotificationMatchMyInterests)+usnMatchMyInterests+ = lens _usnMatchMyInterests+ (\ s a -> s{_usnMatchMyInterests = a})++usnMoreFromAuthors :: Lens' UserSettingsNotification (Maybe UserSettingsNotificationMoreFromAuthors)+usnMoreFromAuthors+ = lens _usnMoreFromAuthors+ (\ s a -> s{_usnMoreFromAuthors = a})++usnMoreFromSeries :: Lens' UserSettingsNotification (Maybe UserSettingsNotificationMoreFromSeries)+usnMoreFromSeries+ = lens _usnMoreFromSeries+ (\ s a -> s{_usnMoreFromSeries = a})++instance FromJSON UserSettingsNotification where+ parseJSON+ = withObject "UserSettingsNotification"+ (\ o ->+ UserSettingsNotification' <$>+ (o .:? "rewardExpirations") <*> (o .:? "priceDrop")+ <*> (o .:? "matchMyInterests")+ <*> (o .:? "moreFromAuthors")+ <*> (o .:? "moreFromSeries"))++instance ToJSON UserSettingsNotification where+ toJSON UserSettingsNotification'{..}+ = object+ (catMaybes+ [("rewardExpirations" .=) <$> _usnRewardExpirations,+ ("priceDrop" .=) <$> _usnPriceDrop,+ ("matchMyInterests" .=) <$> _usnMatchMyInterests,+ ("moreFromAuthors" .=) <$> _usnMoreFromAuthors,+ ("moreFromSeries" .=) <$> _usnMoreFromSeries])++--+-- /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])++-- | Family membership info of the user that made the request.+--+-- /See:/ 'familyInfoMembership' smart constructor.+data FamilyInfoMembership =+ FamilyInfoMembership'+ { _fimAllowedMaturityRating :: !(Maybe Text)+ , _fimAcquirePermission :: !(Maybe Text)+ , _fimRole :: !(Maybe Text)+ , _fimAgeGroup :: !(Maybe Text)+ , _fimIsInFamily :: !(Maybe Bool)+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'FamilyInfoMembership' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fimAllowedMaturityRating'+--+-- * 'fimAcquirePermission'+--+-- * 'fimRole'+--+-- * 'fimAgeGroup'+--+-- * 'fimIsInFamily'+familyInfoMembership+ :: FamilyInfoMembership+familyInfoMembership =+ FamilyInfoMembership'+ { _fimAllowedMaturityRating = Nothing+ , _fimAcquirePermission = Nothing+ , _fimRole = Nothing+ , _fimAgeGroup = Nothing+ , _fimIsInFamily = Nothing+ }+++-- | The maximum allowed maturity rating for the user.+fimAllowedMaturityRating :: Lens' FamilyInfoMembership (Maybe Text)+fimAllowedMaturityRating+ = lens _fimAllowedMaturityRating+ (\ s a -> s{_fimAllowedMaturityRating = a})++-- | Restrictions on user buying and acquiring content.+fimAcquirePermission :: Lens' FamilyInfoMembership (Maybe Text)+fimAcquirePermission+ = lens _fimAcquirePermission+ (\ s a -> s{_fimAcquirePermission = a})++-- | The role of the user in the family.+fimRole :: Lens' FamilyInfoMembership (Maybe Text)+fimRole = lens _fimRole (\ s a -> s{_fimRole = a})++-- | The age group of the user.+fimAgeGroup :: Lens' FamilyInfoMembership (Maybe Text)+fimAgeGroup+ = lens _fimAgeGroup (\ s a -> s{_fimAgeGroup = a})++fimIsInFamily :: Lens' FamilyInfoMembership (Maybe Bool)+fimIsInFamily+ = lens _fimIsInFamily+ (\ s a -> s{_fimIsInFamily = a})++instance FromJSON FamilyInfoMembership where+ parseJSON+ = withObject "FamilyInfoMembership"+ (\ o ->+ FamilyInfoMembership' <$>+ (o .:? "allowedMaturityRating") <*>+ (o .:? "acquirePermission")+ <*> (o .:? "role")+ <*> (o .:? "ageGroup")+ <*> (o .:? "isInFamily"))++instance ToJSON FamilyInfoMembership where+ toJSON FamilyInfoMembership'{..}+ = object+ (catMaybes+ [("allowedMaturityRating" .=) <$>+ _fimAllowedMaturityRating,+ ("acquirePermission" .=) <$> _fimAcquirePermission,+ ("role" .=) <$> _fimRole,+ ("ageGroup" .=) <$> _fimAgeGroup,+ ("isInFamily" .=) <$> _fimIsInFamily])++--+-- /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])++--+-- /See:/ 'familyInfo' smart constructor.+data FamilyInfo =+ FamilyInfo'+ { _fiMembership :: !(Maybe FamilyInfoMembership)+ , _fiKind :: !Text+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'FamilyInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fiMembership'+--+-- * 'fiKind'+familyInfo+ :: FamilyInfo+familyInfo = FamilyInfo' {_fiMembership = Nothing, _fiKind = "books#familyInfo"}+++-- | Family membership info of the user that made the request.+fiMembership :: Lens' FamilyInfo (Maybe FamilyInfoMembership)+fiMembership+ = lens _fiMembership (\ s a -> s{_fiMembership = a})++-- | Resource type.+fiKind :: Lens' FamilyInfo Text+fiKind = lens _fiKind (\ s a -> s{_fiKind = a})++instance FromJSON FamilyInfo where+ parseJSON+ = withObject "FamilyInfo"+ (\ o ->+ FamilyInfo' <$>+ (o .:? "membership") <*>+ (o .:? "kind" .!= "books#familyInfo"))++instance ToJSON FamilyInfo where+ toJSON FamilyInfo'{..}+ = object+ (catMaybes+ [("membership" .=) <$> _fiMembership,+ Just ("kind" .= _fiKind)])++-- | 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)+ , _vsioiGiftable :: !(Maybe Bool)+ }+ 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'+--+-- * 'vsioiGiftable'+volumeSaleInfoOffersItem+ :: VolumeSaleInfoOffersItem+volumeSaleInfoOffersItem =+ VolumeSaleInfoOffersItem'+ { _vsioiFinskyOfferType = Nothing+ , _vsioiRentalDuration = Nothing+ , _vsioiListPrice = Nothing+ , _vsioiRetailPrice = Nothing+ , _vsioiGiftable = 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})++-- | Indicates whether the offer is giftable.+vsioiGiftable :: Lens' VolumeSaleInfoOffersItem (Maybe Bool)+vsioiGiftable+ = lens _vsioiGiftable+ (\ s a -> s{_vsioiGiftable = a})++instance FromJSON VolumeSaleInfoOffersItem where+ parseJSON+ = withObject "VolumeSaleInfoOffersItem"+ (\ o ->+ VolumeSaleInfoOffersItem' <$>+ (o .:? "finskyOfferType") <*>+ (o .:? "rentalDuration")+ <*> (o .:? "listPrice")+ <*> (o .:? "retailPrice")+ <*> (o .:? "giftable"))++instance ToJSON VolumeSaleInfoOffersItem where+ toJSON VolumeSaleInfoOffersItem'{..}+ = object+ (catMaybes+ [("finskyOfferType" .=) <$> _vsioiFinskyOfferType,+ ("rentalDuration" .=) <$> _vsioiRentalDuration,+ ("listPrice" .=) <$> _vsioiListPrice,+ ("retailPrice" .=) <$> _vsioiRetailPrice,+ ("giftable" .=) <$> _vsioiGiftable])++--+-- /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:/ 'userSettingsNotificationMatchMyInterests' smart constructor.+newtype UserSettingsNotificationMatchMyInterests =+ UserSettingsNotificationMatchMyInterests'+ { _usnmmiOptedState :: Maybe Text+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserSettingsNotificationMatchMyInterests' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usnmmiOptedState'+userSettingsNotificationMatchMyInterests+ :: UserSettingsNotificationMatchMyInterests+userSettingsNotificationMatchMyInterests =+ UserSettingsNotificationMatchMyInterests' {_usnmmiOptedState = Nothing}+++usnmmiOptedState :: Lens' UserSettingsNotificationMatchMyInterests (Maybe Text)+usnmmiOptedState+ = lens _usnmmiOptedState+ (\ s a -> s{_usnmmiOptedState = a})++instance FromJSON+ UserSettingsNotificationMatchMyInterests+ where+ parseJSON+ = withObject+ "UserSettingsNotificationMatchMyInterests"+ (\ o ->+ UserSettingsNotificationMatchMyInterests' <$>+ (o .:? "opted_state"))++instance ToJSON+ UserSettingsNotificationMatchMyInterests+ where+ toJSON UserSettingsNotificationMatchMyInterests'{..}+ = object+ (catMaybes+ [("opted_state" .=) <$> _usnmmiOptedState])++--+-- /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)+ , _vviPanelizationSummary :: !(Maybe VolumeVolumeInfoPanelizationSummary)+ , _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])+ , _vviComicsContent :: !(Maybe Bool)+ , _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'+--+-- * 'vviPanelizationSummary'+--+-- * 'vviAverageRating'+--+-- * 'vviRatingsCount'+--+-- * 'vviCanonicalVolumeLink'+--+-- * 'vviReadingModes'+--+-- * 'vviIndustryIdentifiers'+--+-- * 'vviSeriesInfo'+--+-- * 'vviPrintedPageCount'+--+-- * 'vviMainCategory'+--+-- * 'vviContentVersion'+--+-- * 'vviSamplePageCount'+--+-- * 'vviCategories'+--+-- * 'vviAuthors'+--+-- * 'vviComicsContent'+--+-- * 'vviAllowAnonLogging'+--+-- * 'vviSubtitle'+--+-- * 'vviPublishedDate'+--+-- * 'vviMaturityRating'+--+-- * 'vviPreviewLink'+--+-- * 'vviLanguage'+--+-- * 'vviTitle'+--+-- * 'vviPageCount'+--+-- * 'vviDimensions'+--+-- * 'vviInfoLink'+--+-- * 'vviPublisher'+--+-- * 'vviDescription'+--+-- * 'vviPrintType'+volumeVolumeInfo+ :: VolumeVolumeInfo+volumeVolumeInfo =+ VolumeVolumeInfo'+ { _vviImageLinks = Nothing+ , _vviPanelizationSummary = 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+ , _vviComicsContent = 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})++-- | A top-level summary of the panelization info in this volume.+vviPanelizationSummary :: Lens' VolumeVolumeInfo (Maybe VolumeVolumeInfoPanelizationSummary)+vviPanelizationSummary+ = lens _vviPanelizationSummary+ (\ s a -> s{_vviPanelizationSummary = 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 the volume has comics content.+vviComicsContent :: Lens' VolumeVolumeInfo (Maybe Bool)+vviComicsContent+ = lens _vviComicsContent+ (\ s a -> s{_vviComicsContent = a})++-- | 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 .:? "panelizationSummary")+ <*> (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 .:? "comicsContent")+ <*> (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,+ ("panelizationSummary" .=) <$>+ _vviPanelizationSummary,+ ("averageRating" .=) <$> _vviAverageRating,+ ("ratingsCount" .=) <$> _vviRatingsCount,+ ("canonicalVolumeLink" .=) <$>+ _vviCanonicalVolumeLink,+ ("readingModes" .=) <$> _vviReadingModes,+ ("industryIdentifiers" .=) <$>+ _vviIndustryIdentifiers,+ ("seriesInfo" .=) <$> _vviSeriesInfo,+ ("printedPageCount" .=) <$> _vviPrintedPageCount,+ ("mainCategory" .=) <$> _vviMainCategory,+ ("contentVersion" .=) <$> _vviContentVersion,+ ("samplePageCount" .=) <$> _vviSamplePageCount,+ ("categories" .=) <$> _vviCategories,+ ("authors" .=) <$> _vviAuthors,+ ("comicsContent" .=) <$> _vviComicsContent,+ ("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:/ 'userSettingsNotificationMoreFromSeries' smart constructor.+newtype UserSettingsNotificationMoreFromSeries =+ UserSettingsNotificationMoreFromSeries'+ { _usnmfsOptedState :: Maybe Text+ }+ deriving (Eq, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UserSettingsNotificationMoreFromSeries' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usnmfsOptedState'+userSettingsNotificationMoreFromSeries+ :: UserSettingsNotificationMoreFromSeries+userSettingsNotificationMoreFromSeries =+ UserSettingsNotificationMoreFromSeries' {_usnmfsOptedState = Nothing}+++usnmfsOptedState :: Lens' UserSettingsNotificationMoreFromSeries (Maybe Text)+usnmfsOptedState+ = lens _usnmfsOptedState+ (\ s a -> s{_usnmfsOptedState = a})++instance FromJSON+ UserSettingsNotificationMoreFromSeries+ where+ parseJSON+ = withObject "UserSettingsNotificationMoreFromSeries"+ (\ o ->+ UserSettingsNotificationMoreFromSeries' <$>+ (o .:? "opted_state"))++instance ToJSON+ UserSettingsNotificationMoreFromSeries+ where+ toJSON UserSettingsNotificationMoreFromSeries'{..}+ = object+ (catMaybes+ [("opted_state" .=) <$> _usnmfsOptedState])++--+-- /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)
gen/Network/Google/Resource/Books/Bookshelves/Get.hs view
@@ -56,12 +56,15 @@ -- | 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)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'BookshelvesGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -76,11 +79,9 @@ -> Text -- ^ 'bgShelf' -> BookshelvesGet bookshelvesGet pBgUserId_ pBgShelf_ =- BookshelvesGet'- { _bgUserId = pBgUserId_- , _bgShelf = pBgShelf_- , _bgSource = Nothing- }+ BookshelvesGet'+ {_bgUserId = pBgUserId_, _bgShelf = pBgShelf_, _bgSource = Nothing}+ -- | ID of user for whom to retrieve bookshelves. bgUserId :: Lens' BookshelvesGet Text
gen/Network/Google/Resource/Books/Bookshelves/List.hs view
@@ -54,11 +54,14 @@ -- | 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)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'BookshelvesList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -70,10 +73,8 @@ :: Text -- ^ 'blUserId' -> BookshelvesList bookshelvesList pBlUserId_ =- BookshelvesList'- { _blUserId = pBlUserId_- , _blSource = Nothing- }+ BookshelvesList' {_blUserId = pBlUserId_, _blSource = Nothing}+ -- | ID of user for whom to retrieve bookshelves. blUserId :: Lens' BookshelvesList Text
gen/Network/Google/Resource/Books/Bookshelves/Volumes/List.hs view
@@ -63,15 +63,18 @@ -- | 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) , _bvlStartIndex :: !(Maybe (Textual Word32)) , _bvlMaxResults :: !(Maybe (Textual Word32)) , _bvlShowPreOrders :: !(Maybe Bool)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'BookshelvesVolumesList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -92,7 +95,7 @@ -> Text -- ^ 'bvlShelf' -> BookshelvesVolumesList bookshelvesVolumesList pBvlUserId_ pBvlShelf_ =- BookshelvesVolumesList'+ BookshelvesVolumesList' { _bvlUserId = pBvlUserId_ , _bvlShelf = pBvlShelf_ , _bvlSource = Nothing@@ -100,6 +103,7 @@ , _bvlMaxResults = Nothing , _bvlShowPreOrders = Nothing }+ -- | ID of user for whom to retrieve bookshelf volumes. bvlUserId :: Lens' BookshelvesVolumesList Text
gen/Network/Google/Resource/Books/CloudLoading/AddBook.hs view
@@ -59,13 +59,16 @@ -- | -- -- /See:/ 'cloudLoadingAddBook' smart constructor.-data CloudLoadingAddBook = CloudLoadingAddBook'+data CloudLoadingAddBook =+ CloudLoadingAddBook' { _clabMimeType :: !(Maybe Text) , _clabUploadClientToken :: !(Maybe Text) , _clabName :: !(Maybe Text) , _clabDriveDocumentId :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'CloudLoadingAddBook' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -80,12 +83,13 @@ cloudLoadingAddBook :: CloudLoadingAddBook cloudLoadingAddBook =- CloudLoadingAddBook'+ CloudLoadingAddBook' { _clabMimeType = Nothing , _clabUploadClientToken = Nothing , _clabName = Nothing , _clabDriveDocumentId = Nothing }+ -- | The document MIME type. It can be set only if the drive_document_id is -- set.
gen/Network/Google/Resource/Books/CloudLoading/DeleteBook.hs view
@@ -52,10 +52,13 @@ -- | Remove the book and its contents -- -- /See:/ 'cloudLoadingDeleteBook' smart constructor.-newtype CloudLoadingDeleteBook = CloudLoadingDeleteBook'+newtype CloudLoadingDeleteBook =+ CloudLoadingDeleteBook' { _cldbVolumeId :: Text- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'CloudLoadingDeleteBook' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,9 +68,8 @@ :: Text -- ^ 'cldbVolumeId' -> CloudLoadingDeleteBook cloudLoadingDeleteBook pCldbVolumeId_ =- CloudLoadingDeleteBook'- { _cldbVolumeId = pCldbVolumeId_- }+ CloudLoadingDeleteBook' {_cldbVolumeId = pCldbVolumeId_}+ -- | The id of the book to be removed. cldbVolumeId :: Lens' CloudLoadingDeleteBook Text
gen/Network/Google/Resource/Books/CloudLoading/UpdateBook.hs view
@@ -53,10 +53,13 @@ -- | -- -- /See:/ 'cloudLoadingUpdateBook' smart constructor.-newtype CloudLoadingUpdateBook = CloudLoadingUpdateBook'+newtype CloudLoadingUpdateBook =+ CloudLoadingUpdateBook' { _clubPayload :: BooksCloudLoadingResource- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'CloudLoadingUpdateBook' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -66,9 +69,8 @@ :: BooksCloudLoadingResource -- ^ 'clubPayload' -> CloudLoadingUpdateBook cloudLoadingUpdateBook pClubPayload_ =- CloudLoadingUpdateBook'- { _clubPayload = pClubPayload_- }+ CloudLoadingUpdateBook' {_clubPayload = pClubPayload_}+ -- | Multipart request metadata. clubPayload :: Lens' CloudLoadingUpdateBook BooksCloudLoadingResource
gen/Network/Google/Resource/Books/Dictionary/ListOfflineMetadata.hs view
@@ -52,10 +52,13 @@ -- | 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)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'DictionaryListOfflineMetadata' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,9 +68,8 @@ :: Text -- ^ 'dlomCpksver' -> DictionaryListOfflineMetadata dictionaryListOfflineMetadata pDlomCpksver_ =- DictionaryListOfflineMetadata'- { _dlomCpksver = pDlomCpksver_- }+ DictionaryListOfflineMetadata' {_dlomCpksver = pDlomCpksver_}+ -- | The device\/version ID from which to request the data. dlomCpksver :: Lens' DictionaryListOfflineMetadata Text
gen/Network/Google/Resource/Books/Familysharing/GetFamilyInfo.hs view
@@ -52,10 +52,13 @@ -- | Gets information regarding the family that the user is part of. -- -- /See:/ 'familysharingGetFamilyInfo' smart constructor.-newtype FamilysharingGetFamilyInfo = FamilysharingGetFamilyInfo'+newtype FamilysharingGetFamilyInfo =+ FamilysharingGetFamilyInfo' { _fgfiSource :: Maybe Text- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'FamilysharingGetFamilyInfo' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -63,10 +66,8 @@ -- * 'fgfiSource' familysharingGetFamilyInfo :: FamilysharingGetFamilyInfo-familysharingGetFamilyInfo =- FamilysharingGetFamilyInfo'- { _fgfiSource = Nothing- }+familysharingGetFamilyInfo = FamilysharingGetFamilyInfo' {_fgfiSource = Nothing}+ -- | String to identify the originator of this request. fgfiSource :: Lens' FamilysharingGetFamilyInfo (Maybe Text)
@@ -58,12 +58,15 @@ -- indicates success. -- -- /See:/ 'familysharingShare' smart constructor.-data FamilysharingShare = FamilysharingShare'+data FamilysharingShare =+ FamilysharingShare' { _fsVolumeId :: !(Maybe Text) , _fsSource :: !(Maybe Text) , _fsDocId :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'FamilysharingShare' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -76,11 +79,9 @@ familysharingShare :: FamilysharingShare familysharingShare =- FamilysharingShare'- { _fsVolumeId = Nothing- , _fsSource = Nothing- , _fsDocId = Nothing- }+ FamilysharingShare'+ {_fsVolumeId = Nothing, _fsSource = Nothing, _fsDocId = Nothing}+ -- | The volume to share. fsVolumeId :: Lens' FamilysharingShare (Maybe Text)
@@ -58,12 +58,15 @@ -- family. Empty response indicates success. -- -- /See:/ 'familysharingUnshare' smart constructor.-data FamilysharingUnshare = FamilysharingUnshare'+data FamilysharingUnshare =+ FamilysharingUnshare' { _fuVolumeId :: !(Maybe Text) , _fuSource :: !(Maybe Text) , _fuDocId :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'FamilysharingUnshare' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -76,11 +79,9 @@ familysharingUnshare :: FamilysharingUnshare familysharingUnshare =- FamilysharingUnshare'- { _fuVolumeId = Nothing- , _fuSource = Nothing- , _fuDocId = Nothing- }+ FamilysharingUnshare'+ {_fuVolumeId = Nothing, _fuSource = Nothing, _fuDocId = Nothing}+ -- | The volume to unshare. fuVolumeId :: Lens' FamilysharingUnshare (Maybe Text)
gen/Network/Google/Resource/Books/Layers/AnnotationData/Get.hs view
@@ -72,7 +72,8 @@ -- | 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)@@ -83,8 +84,10 @@ , _ladgSource :: !(Maybe Text) , _ladgH :: !(Maybe (Textual Int32)) , _ladgLayerId :: !Text- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'LayersAnnotationDataGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -115,7 +118,7 @@ -> Text -- ^ 'ladgLayerId' -> LayersAnnotationDataGet layersAnnotationDataGet pLadgContentVersion_ pLadgAnnotationDataId_ pLadgVolumeId_ pLadgLayerId_ =- LayersAnnotationDataGet'+ LayersAnnotationDataGet' { _ladgW = Nothing , _ladgScale = Nothing , _ladgLocale = Nothing@@ -127,6 +130,7 @@ , _ladgH = Nothing , _ladgLayerId = pLadgLayerId_ }+ -- | The requested pixel width for any images. If width is provided height -- must also be provided.
gen/Network/Google/Resource/Books/Layers/AnnotationData/List.hs view
@@ -79,7 +79,8 @@ -- | 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)@@ -93,8 +94,10 @@ , _ladlPageToken :: !(Maybe Text) , _ladlLayerId :: !Text , _ladlMaxResults :: !(Maybe (Textual Word32))- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'LayersAnnotationDataList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -130,7 +133,7 @@ -> Text -- ^ 'ladlLayerId' -> LayersAnnotationDataList layersAnnotationDataList pLadlContentVersion_ pLadlVolumeId_ pLadlLayerId_ =- LayersAnnotationDataList'+ LayersAnnotationDataList' { _ladlW = Nothing , _ladlScale = Nothing , _ladlLocale = Nothing@@ -145,6 +148,7 @@ , _ladlLayerId = pLadlLayerId_ , _ladlMaxResults = Nothing }+ -- | The requested pixel width for any images. If width is provided height -- must also be provided.
gen/Network/Google/Resource/Books/Layers/Get.hs view
@@ -58,13 +58,16 @@ -- | 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) , _lgSummaryId :: !Text- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'LayersGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -81,12 +84,13 @@ -> Text -- ^ 'lgSummaryId' -> LayersGet layersGet pLgVolumeId_ pLgSummaryId_ =- LayersGet'+ LayersGet' { _lgContentVersion = Nothing , _lgVolumeId = pLgVolumeId_ , _lgSource = Nothing , _lgSummaryId = pLgSummaryId_ }+ -- | The content version for the requested volume. lgContentVersion :: Lens' LayersGet (Maybe Text)
gen/Network/Google/Resource/Books/Layers/List.hs view
@@ -61,14 +61,17 @@ -- | 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) , _llPageToken :: !(Maybe Text) , _llMaxResults :: !(Maybe (Textual Word32))- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'LayersList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -86,13 +89,14 @@ :: Text -- ^ 'llVolumeId' -> LayersList layersList pLlVolumeId_ =- LayersList'+ LayersList' { _llContentVersion = Nothing , _llVolumeId = pLlVolumeId_ , _llSource = Nothing , _llPageToken = Nothing , _llMaxResults = Nothing }+ -- | The content version for the requested volume. llContentVersion :: Lens' LayersList (Maybe Text)
gen/Network/Google/Resource/Books/Layers/VolumeAnnotations/Get.hs view
@@ -62,14 +62,17 @@ -- | Gets the volume annotation. -- -- /See:/ 'layersVolumeAnnotationsGet' smart constructor.-data LayersVolumeAnnotationsGet = LayersVolumeAnnotationsGet'+data LayersVolumeAnnotationsGet =+ LayersVolumeAnnotationsGet' { _lvagLocale :: !(Maybe Text) , _lvagAnnotationId :: !Text , _lvagVolumeId :: !Text , _lvagSource :: !(Maybe Text) , _lvagLayerId :: !Text- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'LayersVolumeAnnotationsGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -89,13 +92,14 @@ -> Text -- ^ 'lvagLayerId' -> LayersVolumeAnnotationsGet layersVolumeAnnotationsGet pLvagAnnotationId_ pLvagVolumeId_ pLvagLayerId_ =- LayersVolumeAnnotationsGet'+ LayersVolumeAnnotationsGet' { _lvagLocale = Nothing , _lvagAnnotationId = pLvagAnnotationId_ , _lvagVolumeId = pLvagVolumeId_ , _lvagSource = Nothing , _lvagLayerId = pLvagLayerId_ }+ -- | The locale information for the data. ISO-639-1 language and ISO-3166-1 -- country code. Ex: \'en_US\'.
gen/Network/Google/Resource/Books/Layers/VolumeAnnotations/List.hs view
@@ -82,7 +82,8 @@ -- | 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@@ -98,8 +99,10 @@ , _lvalLayerId :: !Text , _lvalMaxResults :: !(Maybe (Textual Word32)) , _lvalStartPosition :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'LayersVolumeAnnotationsList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -139,7 +142,7 @@ -> Text -- ^ 'lvalLayerId' -> LayersVolumeAnnotationsList layersVolumeAnnotationsList pLvalContentVersion_ pLvalVolumeId_ pLvalLayerId_ =- LayersVolumeAnnotationsList'+ LayersVolumeAnnotationsList' { _lvalStartOffSet = Nothing , _lvalLocale = Nothing , _lvalContentVersion = pLvalContentVersion_@@ -156,6 +159,7 @@ , _lvalMaxResults = Nothing , _lvalStartPosition = Nothing }+ -- | The start offset to start retrieving data from. lvalStartOffSet :: Lens' LayersVolumeAnnotationsList (Maybe Text)
gen/Network/Google/Resource/Books/MyConfig/GetUserSettings.hs view
@@ -50,14 +50,16 @@ -- -- /See:/ 'myConfigGetUserSettings' smart constructor. data MyConfigGetUserSettings =- MyConfigGetUserSettings'- deriving (Eq,Show,Data,Typeable,Generic)+ MyConfigGetUserSettings'+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyConfigGetUserSettings' with the minimum fields required to make a request. -- myConfigGetUserSettings :: MyConfigGetUserSettings myConfigGetUserSettings = MyConfigGetUserSettings'+ instance GoogleRequest MyConfigGetUserSettings where type Rs MyConfigGetUserSettings = UserSettings
gen/Network/Google/Resource/Books/MyConfig/ReleaseDownloadAccess.hs view
@@ -59,13 +59,16 @@ -- | Release downloaded content access restriction. -- -- /See:/ 'myConfigReleaseDownloadAccess' smart constructor.-data MyConfigReleaseDownloadAccess = MyConfigReleaseDownloadAccess'+data MyConfigReleaseDownloadAccess =+ MyConfigReleaseDownloadAccess' { _mcrdaCpksver :: !Text , _mcrdaLocale :: !(Maybe Text) , _mcrdaVolumeIds :: ![Text] , _mcrdaSource :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyConfigReleaseDownloadAccess' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -82,12 +85,13 @@ -> [Text] -- ^ 'mcrdaVolumeIds' -> MyConfigReleaseDownloadAccess myConfigReleaseDownloadAccess pMcrdaCpksver_ pMcrdaVolumeIds_ =- MyConfigReleaseDownloadAccess'+ MyConfigReleaseDownloadAccess' { _mcrdaCpksver = pMcrdaCpksver_ , _mcrdaLocale = Nothing , _mcrdaVolumeIds = _Coerce # pMcrdaVolumeIds_ , _mcrdaSource = Nothing }+ -- | The device\/version ID from which to release the restriction. mcrdaCpksver :: Lens' MyConfigReleaseDownloadAccess Text
gen/Network/Google/Resource/Books/MyConfig/RequestAccess.hs view
@@ -65,15 +65,18 @@ -- | Request concurrent and download access restrictions. -- -- /See:/ 'myConfigRequestAccess' smart constructor.-data MyConfigRequestAccess = MyConfigRequestAccess'+data MyConfigRequestAccess =+ MyConfigRequestAccess' { _mcraCpksver :: !Text , _mcraLocale :: !(Maybe Text) , _mcraLicenseTypes :: !(Maybe MyConfigRequestAccessLicenseTypes) , _mcraVolumeId :: !Text , _mcraSource :: !Text , _mcraNonce :: !Text- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyConfigRequestAccess' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -96,7 +99,7 @@ -> Text -- ^ 'mcraNonce' -> MyConfigRequestAccess myConfigRequestAccess pMcraCpksver_ pMcraVolumeId_ pMcraSource_ pMcraNonce_ =- MyConfigRequestAccess'+ MyConfigRequestAccess' { _mcraCpksver = pMcraCpksver_ , _mcraLocale = Nothing , _mcraLicenseTypes = Nothing@@ -104,6 +107,7 @@ , _mcraSource = pMcraSource_ , _mcraNonce = pMcraNonce_ }+ -- | The device\/version ID from which to request the restrictions. mcraCpksver :: Lens' MyConfigRequestAccess Text
gen/Network/Google/Resource/Books/MyConfig/SyncVolumeLicenses.hs view
@@ -70,7 +70,8 @@ -- shelf. -- -- /See:/ 'myConfigSyncVolumeLicenses' smart constructor.-data MyConfigSyncVolumeLicenses = MyConfigSyncVolumeLicenses'+data MyConfigSyncVolumeLicenses =+ MyConfigSyncVolumeLicenses' { _mcsvlCpksver :: !Text , _mcsvlLocale :: !(Maybe Text) , _mcsvlIncludeNonComicsSeries :: !(Maybe Bool)@@ -79,8 +80,10 @@ , _mcsvlSource :: !Text , _mcsvlShowPreOrders :: !(Maybe Bool) , _mcsvlNonce :: !Text- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyConfigSyncVolumeLicenses' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -106,7 +109,7 @@ -> Text -- ^ 'mcsvlNonce' -> MyConfigSyncVolumeLicenses myConfigSyncVolumeLicenses pMcsvlCpksver_ pMcsvlSource_ pMcsvlNonce_ =- MyConfigSyncVolumeLicenses'+ MyConfigSyncVolumeLicenses' { _mcsvlCpksver = pMcsvlCpksver_ , _mcsvlLocale = Nothing , _mcsvlIncludeNonComicsSeries = Nothing@@ -116,6 +119,7 @@ , _mcsvlShowPreOrders = Nothing , _mcsvlNonce = pMcsvlNonce_ }+ -- | The device\/version ID from which to release the restriction. mcsvlCpksver :: Lens' MyConfigSyncVolumeLicenses Text
gen/Network/Google/Resource/Books/MyConfig/UpdateUserSettings.hs view
@@ -57,10 +57,13 @@ -- 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)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyConfigUpdateUserSettings' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -70,9 +73,8 @@ :: UserSettings -- ^ 'mcuusPayload' -> MyConfigUpdateUserSettings myConfigUpdateUserSettings pMcuusPayload_ =- MyConfigUpdateUserSettings'- { _mcuusPayload = pMcuusPayload_- }+ MyConfigUpdateUserSettings' {_mcuusPayload = pMcuusPayload_}+ -- | Multipart request metadata. mcuusPayload :: Lens' MyConfigUpdateUserSettings UserSettings
gen/Network/Google/Resource/Books/MyLibrary/Annotations/Delete.hs view
@@ -54,11 +54,14 @@ -- | Deletes an annotation. -- -- /See:/ 'myLibraryAnnotationsDelete' smart constructor.-data MyLibraryAnnotationsDelete = MyLibraryAnnotationsDelete'+data MyLibraryAnnotationsDelete =+ MyLibraryAnnotationsDelete' { _mladAnnotationId :: !Text , _mladSource :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyLibraryAnnotationsDelete' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -70,10 +73,9 @@ :: Text -- ^ 'mladAnnotationId' -> MyLibraryAnnotationsDelete myLibraryAnnotationsDelete pMladAnnotationId_ =- MyLibraryAnnotationsDelete'- { _mladAnnotationId = pMladAnnotationId_- , _mladSource = Nothing- }+ MyLibraryAnnotationsDelete'+ {_mladAnnotationId = pMladAnnotationId_, _mladSource = Nothing}+ -- | The ID for the annotation to delete. mladAnnotationId :: Lens' MyLibraryAnnotationsDelete Text
gen/Network/Google/Resource/Books/MyLibrary/Annotations/Insert.hs view
@@ -60,14 +60,17 @@ -- | Inserts a new annotation. -- -- /See:/ 'myLibraryAnnotationsInsert' smart constructor.-data MyLibraryAnnotationsInsert = MyLibraryAnnotationsInsert'+data MyLibraryAnnotationsInsert =+ MyLibraryAnnotationsInsert' { _mlaiCountry :: !(Maybe Text) , _mlaiPayload :: !Annotation , _mlaiShowOnlySummaryInResponse :: !(Maybe Bool) , _mlaiAnnotationId :: !(Maybe Text) , _mlaiSource :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyLibraryAnnotationsInsert' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -85,13 +88,14 @@ :: Annotation -- ^ 'mlaiPayload' -> MyLibraryAnnotationsInsert myLibraryAnnotationsInsert pMlaiPayload_ =- MyLibraryAnnotationsInsert'+ MyLibraryAnnotationsInsert' { _mlaiCountry = Nothing , _mlaiPayload = pMlaiPayload_ , _mlaiShowOnlySummaryInResponse = Nothing , _mlaiAnnotationId = Nothing , _mlaiSource = Nothing }+ -- | ISO-3166-1 code to override the IP-based location. mlaiCountry :: Lens' MyLibraryAnnotationsInsert (Maybe Text)
gen/Network/Google/Resource/Books/MyLibrary/Annotations/List.hs view
@@ -71,7 +71,8 @@ -- | 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)@@ -82,8 +83,10 @@ , _mlalPageToken :: !(Maybe Text) , _mlalLayerId :: !(Maybe Text) , _mlalMaxResults :: !(Maybe (Textual Word32))- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyLibraryAnnotationsList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -110,7 +113,7 @@ myLibraryAnnotationsList :: MyLibraryAnnotationsList myLibraryAnnotationsList =- MyLibraryAnnotationsList'+ MyLibraryAnnotationsList' { _mlalContentVersion = Nothing , _mlalShowDeleted = Nothing , _mlalUpdatedMax = Nothing@@ -122,6 +125,7 @@ , _mlalLayerId = Nothing , _mlalMaxResults = Nothing }+ -- | The content version for the requested volume. mlalContentVersion :: Lens' MyLibraryAnnotationsList (Maybe Text)
gen/Network/Google/Resource/Books/MyLibrary/Annotations/Summary.hs view
@@ -56,11 +56,14 @@ -- | 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)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyLibraryAnnotationsSummary' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -73,10 +76,9 @@ -> Text -- ^ 'mlasVolumeId' -> MyLibraryAnnotationsSummary myLibraryAnnotationsSummary pMlasLayerIds_ pMlasVolumeId_ =- MyLibraryAnnotationsSummary'- { _mlasLayerIds = _Coerce # pMlasLayerIds_- , _mlasVolumeId = pMlasVolumeId_- }+ MyLibraryAnnotationsSummary'+ {_mlasLayerIds = _Coerce # pMlasLayerIds_, _mlasVolumeId = pMlasVolumeId_}+ -- | Array of layer IDs to get the summary for. mlasLayerIds :: Lens' MyLibraryAnnotationsSummary [Text]
gen/Network/Google/Resource/Books/MyLibrary/Annotations/Update.hs view
@@ -56,12 +56,15 @@ -- | Updates an existing annotation. -- -- /See:/ 'myLibraryAnnotationsUpdate' smart constructor.-data MyLibraryAnnotationsUpdate = MyLibraryAnnotationsUpdate'+data MyLibraryAnnotationsUpdate =+ MyLibraryAnnotationsUpdate' { _mlauPayload :: !Annotation , _mlauAnnotationId :: !Text , _mlauSource :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyLibraryAnnotationsUpdate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -76,11 +79,12 @@ -> Text -- ^ 'mlauAnnotationId' -> MyLibraryAnnotationsUpdate myLibraryAnnotationsUpdate pMlauPayload_ pMlauAnnotationId_ =- MyLibraryAnnotationsUpdate'+ MyLibraryAnnotationsUpdate' { _mlauPayload = pMlauPayload_ , _mlauAnnotationId = pMlauAnnotationId_ , _mlauSource = Nothing }+ -- | Multipart request metadata. mlauPayload :: Lens' MyLibraryAnnotationsUpdate Annotation
gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/AddVolume.hs view
@@ -61,13 +61,16 @@ -- | Adds a volume to a bookshelf. -- -- /See:/ 'myLibraryBookshelvesAddVolume' smart constructor.-data MyLibraryBookshelvesAddVolume = MyLibraryBookshelvesAddVolume'+data MyLibraryBookshelvesAddVolume =+ MyLibraryBookshelvesAddVolume' { _mlbavReason :: !(Maybe MyLibraryBookshelvesAddVolumeReason) , _mlbavShelf :: !Text , _mlbavVolumeId :: !Text , _mlbavSource :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyLibraryBookshelvesAddVolume' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -84,12 +87,13 @@ -> Text -- ^ 'mlbavVolumeId' -> MyLibraryBookshelvesAddVolume myLibraryBookshelvesAddVolume pMlbavShelf_ pMlbavVolumeId_ =- MyLibraryBookshelvesAddVolume'+ MyLibraryBookshelvesAddVolume' { _mlbavReason = Nothing , _mlbavShelf = pMlbavShelf_ , _mlbavVolumeId = pMlbavVolumeId_ , _mlbavSource = Nothing }+ -- | The reason for which the book is added to the library. mlbavReason :: Lens' MyLibraryBookshelvesAddVolume (Maybe MyLibraryBookshelvesAddVolumeReason)
gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/ClearVolumes.hs view
@@ -55,11 +55,14 @@ -- | 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)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyLibraryBookshelvesClearVolumes' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -71,11 +74,10 @@ :: Text -- ^ 'mlbcvShelf' -> MyLibraryBookshelvesClearVolumes myLibraryBookshelvesClearVolumes pMlbcvShelf_ =- MyLibraryBookshelvesClearVolumes'- { _mlbcvShelf = pMlbcvShelf_- , _mlbcvSource = Nothing- }+ MyLibraryBookshelvesClearVolumes'+ {_mlbcvShelf = pMlbcvShelf_, _mlbcvSource = Nothing} + -- | ID of bookshelf from which to remove a volume. mlbcvShelf :: Lens' MyLibraryBookshelvesClearVolumes Text mlbcvShelf@@ -87,7 +89,8 @@ = lens _mlbcvSource (\ s a -> s{_mlbcvSource = a}) instance GoogleRequest- MyLibraryBookshelvesClearVolumes where+ MyLibraryBookshelvesClearVolumes+ where type Rs MyLibraryBookshelvesClearVolumes = () type Scopes MyLibraryBookshelvesClearVolumes = '["https://www.googleapis.com/auth/books"]
gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/Get.hs view
@@ -56,11 +56,14 @@ -- authenticated user. -- -- /See:/ 'myLibraryBookshelvesGet' smart constructor.-data MyLibraryBookshelvesGet = MyLibraryBookshelvesGet'+data MyLibraryBookshelvesGet =+ MyLibraryBookshelvesGet' { _mlbgShelf :: !Text , _mlbgSource :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyLibraryBookshelvesGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -72,10 +75,8 @@ :: Text -- ^ 'mlbgShelf' -> MyLibraryBookshelvesGet myLibraryBookshelvesGet pMlbgShelf_ =- MyLibraryBookshelvesGet'- { _mlbgShelf = pMlbgShelf_- , _mlbgSource = Nothing- }+ MyLibraryBookshelvesGet' {_mlbgShelf = pMlbgShelf_, _mlbgSource = Nothing}+ -- | ID of bookshelf to retrieve. mlbgShelf :: Lens' MyLibraryBookshelvesGet Text
gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/List.hs view
@@ -52,10 +52,13 @@ -- | 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)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyLibraryBookshelvesList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -63,10 +66,8 @@ -- * 'mlblSource' myLibraryBookshelvesList :: MyLibraryBookshelvesList-myLibraryBookshelvesList =- MyLibraryBookshelvesList'- { _mlblSource = Nothing- }+myLibraryBookshelvesList = MyLibraryBookshelvesList' {_mlblSource = Nothing}+ -- | String to identify the originator of this request. mlblSource :: Lens' MyLibraryBookshelvesList (Maybe Text)
gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/MoveVolume.hs view
@@ -59,13 +59,16 @@ -- | Moves a volume within a bookshelf. -- -- /See:/ 'myLibraryBookshelvesMoveVolume' smart constructor.-data MyLibraryBookshelvesMoveVolume = MyLibraryBookshelvesMoveVolume'+data MyLibraryBookshelvesMoveVolume =+ MyLibraryBookshelvesMoveVolume' { _mlbmvShelf :: !Text , _mlbmvVolumeId :: !Text , _mlbmvSource :: !(Maybe Text) , _mlbmvVolumePosition :: !(Textual Int32)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyLibraryBookshelvesMoveVolume' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -83,12 +86,13 @@ -> Int32 -- ^ 'mlbmvVolumePosition' -> MyLibraryBookshelvesMoveVolume myLibraryBookshelvesMoveVolume pMlbmvShelf_ pMlbmvVolumeId_ pMlbmvVolumePosition_ =- MyLibraryBookshelvesMoveVolume'+ MyLibraryBookshelvesMoveVolume' { _mlbmvShelf = pMlbmvShelf_ , _mlbmvVolumeId = pMlbmvVolumeId_ , _mlbmvSource = Nothing , _mlbmvVolumePosition = _Coerce # pMlbmvVolumePosition_ }+ -- | ID of bookshelf with the volume. mlbmvShelf :: Lens' MyLibraryBookshelvesMoveVolume Text
gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/RemoveVolume.hs view
@@ -61,13 +61,16 @@ -- | Removes a volume from a bookshelf. -- -- /See:/ 'myLibraryBookshelvesRemoveVolume' smart constructor.-data MyLibraryBookshelvesRemoveVolume = MyLibraryBookshelvesRemoveVolume'+data MyLibraryBookshelvesRemoveVolume =+ MyLibraryBookshelvesRemoveVolume' { _mlbrvReason :: !(Maybe MyLibraryBookshelvesRemoveVolumeReason) , _mlbrvShelf :: !Text , _mlbrvVolumeId :: !Text , _mlbrvSource :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyLibraryBookshelvesRemoveVolume' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -84,13 +87,14 @@ -> Text -- ^ 'mlbrvVolumeId' -> MyLibraryBookshelvesRemoveVolume myLibraryBookshelvesRemoveVolume pMlbrvShelf_ pMlbrvVolumeId_ =- MyLibraryBookshelvesRemoveVolume'+ MyLibraryBookshelvesRemoveVolume' { _mlbrvReason = Nothing , _mlbrvShelf = pMlbrvShelf_ , _mlbrvVolumeId = pMlbrvVolumeId_ , _mlbrvSource = Nothing } + -- | The reason for which the book is removed from the library. mlbrvReason :: Lens' MyLibraryBookshelvesRemoveVolume (Maybe MyLibraryBookshelvesRemoveVolumeReason) mlbrvReason@@ -113,7 +117,8 @@ = lens _mlbrvSource (\ s a -> s{_mlbrvSource = a}) instance GoogleRequest- MyLibraryBookshelvesRemoveVolume where+ MyLibraryBookshelvesRemoveVolume+ where type Rs MyLibraryBookshelvesRemoveVolume = () type Scopes MyLibraryBookshelvesRemoveVolume = '["https://www.googleapis.com/auth/books"]
gen/Network/Google/Resource/Books/MyLibrary/Bookshelves/Volumes/List.hs view
@@ -69,7 +69,8 @@ -- | 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@@ -78,8 +79,10 @@ , _mlbvlStartIndex :: !(Maybe (Textual Word32)) , _mlbvlMaxResults :: !(Maybe (Textual Word32)) , _mlbvlShowPreOrders :: !(Maybe Bool)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyLibraryBookshelvesVolumesList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -103,7 +106,7 @@ :: Text -- ^ 'mlbvlShelf' -> MyLibraryBookshelvesVolumesList myLibraryBookshelvesVolumesList pMlbvlShelf_ =- MyLibraryBookshelvesVolumesList'+ MyLibraryBookshelvesVolumesList' { _mlbvlCountry = Nothing , _mlbvlQ = Nothing , _mlbvlShelf = pMlbvlShelf_@@ -114,6 +117,7 @@ , _mlbvlShowPreOrders = Nothing } + -- | ISO-3166-1 code to override the IP-based location. mlbvlCountry :: Lens' MyLibraryBookshelvesVolumesList (Maybe Text) mlbvlCountry@@ -160,7 +164,8 @@ (\ s a -> s{_mlbvlShowPreOrders = a}) instance GoogleRequest- MyLibraryBookshelvesVolumesList where+ MyLibraryBookshelvesVolumesList+ where type Rs MyLibraryBookshelvesVolumesList = Volumes type Scopes MyLibraryBookshelvesVolumesList = '["https://www.googleapis.com/auth/books"]
gen/Network/Google/Resource/Books/MyLibrary/ReadingPositions/Get.hs view
@@ -57,12 +57,15 @@ -- | 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)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyLibraryReadingPositionsGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -76,11 +79,12 @@ :: Text -- ^ 'mlrpgVolumeId' -> MyLibraryReadingPositionsGet myLibraryReadingPositionsGet pMlrpgVolumeId_ =- MyLibraryReadingPositionsGet'+ MyLibraryReadingPositionsGet' { _mlrpgContentVersion = Nothing , _mlrpgVolumeId = pMlrpgVolumeId_ , _mlrpgSource = Nothing }+ -- | Volume content version for which this reading position is requested. mlrpgContentVersion :: Lens' MyLibraryReadingPositionsGet (Maybe Text)
gen/Network/Google/Resource/Books/MyLibrary/ReadingPositions/SetPosition.hs view
@@ -67,7 +67,8 @@ -- | 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)@@ -75,8 +76,10 @@ , _mlrpspSource :: !(Maybe Text) , _mlrpspTimestamp :: !Text , _mlrpspPosition :: !Text- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'MyLibraryReadingPositionsSetPosition' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -100,7 +103,7 @@ -> Text -- ^ 'mlrpspPosition' -> MyLibraryReadingPositionsSetPosition myLibraryReadingPositionsSetPosition pMlrpspVolumeId_ pMlrpspTimestamp_ pMlrpspPosition_ =- MyLibraryReadingPositionsSetPosition'+ MyLibraryReadingPositionsSetPosition' { _mlrpspDeviceCookie = Nothing , _mlrpspContentVersion = Nothing , _mlrpspAction = Nothing@@ -110,6 +113,7 @@ , _mlrpspPosition = pMlrpspPosition_ } + -- | Random persistent device cookie optional on set position. mlrpspDeviceCookie :: Lens' MyLibraryReadingPositionsSetPosition (Maybe Text) mlrpspDeviceCookie@@ -151,7 +155,8 @@ (\ s a -> s{_mlrpspPosition = a}) instance GoogleRequest- MyLibraryReadingPositionsSetPosition where+ MyLibraryReadingPositionsSetPosition+ where type Rs MyLibraryReadingPositionsSetPosition = () type Scopes MyLibraryReadingPositionsSetPosition = '["https://www.googleapis.com/auth/books"]
gen/Network/Google/Resource/Books/Notification/Get.hs view
@@ -56,12 +56,15 @@ -- | 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)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'NotificationGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,11 +78,12 @@ :: Text -- ^ 'ngNotificationId' -> NotificationGet notificationGet pNgNotificationId_ =- NotificationGet'+ NotificationGet' { _ngLocale = Nothing , _ngNotificationId = pNgNotificationId_ , _ngSource = Nothing }+ -- | ISO-639-1 language and ISO-3166-1 country code. Ex: \'en_US\'. Used for -- generating notification title and body.
gen/Network/Google/Resource/Books/Onboarding/ListCategories.hs view
@@ -52,10 +52,13 @@ -- | List categories for onboarding experience. -- -- /See:/ 'onboardingListCategories' smart constructor.-newtype OnboardingListCategories = OnboardingListCategories'+newtype OnboardingListCategories =+ OnboardingListCategories' { _olcLocale :: Maybe Text- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'OnboardingListCategories' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -63,10 +66,8 @@ -- * 'olcLocale' onboardingListCategories :: OnboardingListCategories-onboardingListCategories =- OnboardingListCategories'- { _olcLocale = Nothing- }+onboardingListCategories = OnboardingListCategories' {_olcLocale = Nothing}+ -- | ISO-639-1 language and ISO-3166-1 country code. Default is en-US if -- unset.
gen/Network/Google/Resource/Books/Onboarding/ListCategoryVolumes.hs view
@@ -62,14 +62,17 @@ -- | 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]) , _olcvPageToken :: !(Maybe Text) , _olcvPageSize :: !(Maybe (Textual Word32))- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'OnboardingListCategoryVolumes' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -86,13 +89,14 @@ onboardingListCategoryVolumes :: OnboardingListCategoryVolumes onboardingListCategoryVolumes =- OnboardingListCategoryVolumes'+ OnboardingListCategoryVolumes' { _olcvLocale = Nothing , _olcvMaxAllowedMaturityRating = Nothing , _olcvCategoryId = Nothing , _olcvPageToken = Nothing , _olcvPageSize = Nothing }+ -- | ISO-639-1 language and ISO-3166-1 country code. Default is en-US if -- unset.
gen/Network/Google/Resource/Books/Personalizedstream/Get.hs view
@@ -59,12 +59,15 @@ -- | 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)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'PersonalizedstreamGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -77,11 +80,12 @@ personalizedstreamGet :: PersonalizedstreamGet personalizedstreamGet =- PersonalizedstreamGet'+ PersonalizedstreamGet' { _pgLocale = Nothing , _pgMaxAllowedMaturityRating = Nothing , _pgSource = Nothing }+ -- | ISO-639-1 language and ISO-3166-1 country code. Ex: \'en_US\'. Used for -- generating recommendations.
gen/Network/Google/Resource/Books/PromoOffer/Accept.hs view
@@ -66,7 +66,8 @@ -- | -- -- /See:/ 'promoOfferAccept' smart constructor.-data PromoOfferAccept = PromoOfferAccept'+data PromoOfferAccept =+ PromoOfferAccept' { _poaManufacturer :: !(Maybe Text) , _poaSerial :: !(Maybe Text) , _poaDevice :: !(Maybe Text)@@ -75,8 +76,10 @@ , _poaOfferId :: !(Maybe Text) , _poaProduct :: !(Maybe Text) , _poaAndroidId :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'PromoOfferAccept' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -99,7 +102,7 @@ promoOfferAccept :: PromoOfferAccept promoOfferAccept =- PromoOfferAccept'+ PromoOfferAccept' { _poaManufacturer = Nothing , _poaSerial = Nothing , _poaDevice = Nothing@@ -109,6 +112,7 @@ , _poaProduct = Nothing , _poaAndroidId = Nothing }+ -- | device manufacturer poaManufacturer :: Lens' PromoOfferAccept (Maybe Text)
gen/Network/Google/Resource/Books/PromoOffer/Dismiss.hs view
@@ -64,7 +64,8 @@ -- | -- -- /See:/ 'promoOfferDismiss' smart constructor.-data PromoOfferDismiss = PromoOfferDismiss'+data PromoOfferDismiss =+ PromoOfferDismiss' { _podManufacturer :: !(Maybe Text) , _podSerial :: !(Maybe Text) , _podDevice :: !(Maybe Text)@@ -72,8 +73,10 @@ , _podOfferId :: !(Maybe Text) , _podProduct :: !(Maybe Text) , _podAndroidId :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'PromoOfferDismiss' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -94,7 +97,7 @@ promoOfferDismiss :: PromoOfferDismiss promoOfferDismiss =- PromoOfferDismiss'+ PromoOfferDismiss' { _podManufacturer = Nothing , _podSerial = Nothing , _podDevice = Nothing@@ -103,6 +106,7 @@ , _podProduct = Nothing , _podAndroidId = Nothing }+ -- | device manufacturer podManufacturer :: Lens' PromoOfferDismiss (Maybe Text)
gen/Network/Google/Resource/Books/PromoOffer/Get.hs view
@@ -62,15 +62,18 @@ -- | 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) , _pogModel :: !(Maybe Text) , _pogProduct :: !(Maybe Text) , _pogAndroidId :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'PromoOfferGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -89,7 +92,7 @@ promoOfferGet :: PromoOfferGet promoOfferGet =- PromoOfferGet'+ PromoOfferGet' { _pogManufacturer = Nothing , _pogSerial = Nothing , _pogDevice = Nothing@@ -97,6 +100,7 @@ , _pogProduct = Nothing , _pogAndroidId = Nothing }+ -- | device manufacturer pogManufacturer :: Lens' PromoOfferGet (Maybe Text)
gen/Network/Google/Resource/Books/Series/Get.hs view
@@ -52,10 +52,13 @@ -- | Returns Series metadata for the given series ids. -- -- /See:/ 'seriesGet' smart constructor.-newtype SeriesGet = SeriesGet'+newtype SeriesGet =+ SeriesGet' { _sgSeriesId :: [Text]- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ 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:@@ -64,10 +67,8 @@ seriesGet :: [Text] -- ^ 'sgSeriesId' -> SeriesGet-seriesGet pSgSeriesId_ =- SeriesGet'- { _sgSeriesId = _Coerce # pSgSeriesId_- }+seriesGet pSgSeriesId_ = SeriesGet' {_sgSeriesId = _Coerce # pSgSeriesId_}+ -- | String that identifies the series sgSeriesId :: Lens' SeriesGet [Text]
gen/Network/Google/Resource/Books/Series/Membership/Get.hs view
@@ -58,12 +58,15 @@ -- | Returns Series membership data given the series id. -- -- /See:/ 'seriesMembershipGet' smart constructor.-data SeriesMembershipGet = SeriesMembershipGet'+data SeriesMembershipGet =+ SeriesMembershipGet' { _smgPageToken :: !(Maybe Text) , _smgPageSize :: !(Maybe (Textual Word32)) , _smgSeriesId :: !Text- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ 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:@@ -77,11 +80,12 @@ :: Text -- ^ 'smgSeriesId' -> SeriesMembershipGet seriesMembershipGet pSmgSeriesId_ =- SeriesMembershipGet'+ SeriesMembershipGet' { _smgPageToken = Nothing , _smgPageSize = Nothing , _smgSeriesId = pSmgSeriesId_ }+ -- | The value of the nextToken from the previous page. smgPageToken :: Lens' SeriesMembershipGet (Maybe Text)
gen/Network/Google/Resource/Books/Volumes/Associated/List.hs view
@@ -63,14 +63,17 @@ -- | Return a list of associated books. -- -- /See:/ 'volumesAssociatedList' smart constructor.-data VolumesAssociatedList = VolumesAssociatedList'+data VolumesAssociatedList =+ VolumesAssociatedList' { _valLocale :: !(Maybe Text) , _valMaxAllowedMaturityRating :: !(Maybe VolumesAssociatedListMaxAllowedMaturityRating) , _valVolumeId :: !Text , _valSource :: !(Maybe Text) , _valAssociation :: !(Maybe VolumesAssociatedListAssociation)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'VolumesAssociatedList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -88,13 +91,14 @@ :: Text -- ^ 'valVolumeId' -> VolumesAssociatedList volumesAssociatedList pValVolumeId_ =- VolumesAssociatedList'+ VolumesAssociatedList' { _valLocale = Nothing , _valMaxAllowedMaturityRating = Nothing , _valVolumeId = pValVolumeId_ , _valSource = Nothing , _valAssociation = Nothing }+ -- | ISO-639-1 language and ISO-3166-1 country code. Ex: \'en_US\'. Used for -- generating recommendations.
gen/Network/Google/Resource/Books/Volumes/Get.hs view
@@ -63,7 +63,8 @@ -- | 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)@@ -71,8 +72,10 @@ , _vgSource :: !(Maybe Text) , _vgProjection :: !(Maybe VolumesGetProjection) , _vgUserLibraryConsistentRead :: !(Maybe Bool)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'VolumesGet' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -94,7 +97,7 @@ :: Text -- ^ 'vgVolumeId' -> VolumesGet volumesGet pVgVolumeId_ =- VolumesGet'+ VolumesGet' { _vgCountry = Nothing , _vgIncludeNonComicsSeries = Nothing , _vgPartner = Nothing@@ -103,6 +106,7 @@ , _vgProjection = Nothing , _vgUserLibraryConsistentRead = Nothing }+ -- | ISO-3166-1 code to override the IP-based location. vgCountry :: Lens' VolumesGet (Maybe Text)
gen/Network/Google/Resource/Books/Volumes/List.hs view
@@ -83,7 +83,8 @@ -- | Performs a book search. -- -- /See:/ 'volumesList' smart constructor.-data VolumesList = VolumesList'+data VolumesList =+ VolumesList' { _vlOrderBy :: !(Maybe VolumesListOrderBy) , _vlMaxAllowedMaturityRating :: !(Maybe VolumesListMaxAllowedMaturityRating) , _vlLibraryRestrict :: !(Maybe VolumesListLibraryRestrict)@@ -98,8 +99,10 @@ , _vlMaxResults :: !(Maybe (Textual Word32)) , _vlShowPreOrders :: !(Maybe Bool) , _vlPrintType :: !(Maybe VolumesListPrintType)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'VolumesList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -135,7 +138,7 @@ :: Text -- ^ 'vlQ' -> VolumesList volumesList pVlQ_ =- VolumesList'+ VolumesList' { _vlOrderBy = Nothing , _vlMaxAllowedMaturityRating = Nothing , _vlLibraryRestrict = Nothing@@ -151,6 +154,7 @@ , _vlShowPreOrders = Nothing , _vlPrintType = Nothing }+ -- | Sort search results. vlOrderBy :: Lens' VolumesList (Maybe VolumesListOrderBy)
gen/Network/Google/Resource/Books/Volumes/Mybooks/List.hs view
@@ -68,7 +68,8 @@ -- | 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)@@ -76,8 +77,10 @@ , _vmlSource :: !(Maybe Text) , _vmlStartIndex :: !(Maybe (Textual Word32)) , _vmlMaxResults :: !(Maybe (Textual Word32))- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'VolumesMybooksList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -98,7 +101,7 @@ volumesMybooksList :: VolumesMybooksList volumesMybooksList =- VolumesMybooksList'+ VolumesMybooksList' { _vmlProcessingState = Nothing , _vmlAcquireMethod = Nothing , _vmlCountry = Nothing@@ -107,6 +110,7 @@ , _vmlStartIndex = Nothing , _vmlMaxResults = Nothing }+ -- | The processing state of the user uploaded volumes to be returned. -- Applicable only if the UPLOADED is specified in the acquireMethod.
gen/Network/Google/Resource/Books/Volumes/Recommended/List.hs view
@@ -58,12 +58,15 @@ -- | 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)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'VolumesRecommendedList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -76,11 +79,12 @@ volumesRecommendedList :: VolumesRecommendedList volumesRecommendedList =- VolumesRecommendedList'+ VolumesRecommendedList' { _vrlLocale = Nothing , _vrlMaxAllowedMaturityRating = Nothing , _vrlSource = Nothing }+ -- | ISO-639-1 language and ISO-3166-1 country code. Ex: \'en_US\'. Used for -- generating recommendations.
gen/Network/Google/Resource/Books/Volumes/Recommended/Rate.hs view
@@ -60,13 +60,16 @@ -- | 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 , _vrrSource :: !(Maybe Text)- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'VolumesRecommendedRate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -83,12 +86,13 @@ -> Text -- ^ 'vrrVolumeId' -> VolumesRecommendedRate volumesRecommendedRate pVrrRating_ pVrrVolumeId_ =- VolumesRecommendedRate'+ VolumesRecommendedRate' { _vrrRating = pVrrRating_ , _vrrLocale = Nothing , _vrrVolumeId = pVrrVolumeId_ , _vrrSource = Nothing }+ -- | Rating to be given to the volume. vrrRating :: Lens' VolumesRecommendedRate VolumesRecommendedRateRating
gen/Network/Google/Resource/Books/Volumes/UserUploaded/List.hs view
@@ -64,15 +64,18 @@ -- | 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]) , _vuulSource :: !(Maybe Text) , _vuulStartIndex :: !(Maybe (Textual Word32)) , _vuulMaxResults :: !(Maybe (Textual Word32))- } deriving (Eq,Show,Data,Typeable,Generic)+ }+ deriving (Eq, Show, Data, Typeable, Generic) + -- | Creates a value of 'VolumesUserUploadedList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -91,7 +94,7 @@ volumesUserUploadedList :: VolumesUserUploadedList volumesUserUploadedList =- VolumesUserUploadedList'+ VolumesUserUploadedList' { _vuulProcessingState = Nothing , _vuulLocale = Nothing , _vuulVolumeId = Nothing@@ -99,6 +102,7 @@ , _vuulStartIndex = Nothing , _vuulMaxResults = Nothing }+ -- | The processing state of the user uploaded volumes to be returned. vuulProcessingState :: Lens' VolumesUserUploadedList [VolumesUserUploadedListProcessingState]
gogol-books.cabal view
@@ -1,5 +1,5 @@ name: gogol-books-version: 0.4.0+version: 0.5.0 synopsis: Google Books SDK. homepage: https://github.com/brendanhay/gogol bug-reports: https://github.com/brendanhay/gogol/issues@@ -92,5 +92,5 @@ , Network.Google.Books.Types.Sum build-depends:- gogol-core == 0.4.0.*+ gogol-core == 0.5.0.* , base >= 4.7 && < 5