gogol-photoslibrary (empty) → 0.4.0
raw patch · 19 files changed
+5373/−0 lines, 19 filesdep +basedep +gogol-coresetup-changed
Dependencies added: base, gogol-core
Files
- LICENSE +367/−0
- README.md +28/−0
- Setup.hs +2/−0
- gen/Network/Google/PhotosLibrary.hs +363/−0
- gen/Network/Google/PhotosLibrary/Types.hs +328/−0
- gen/Network/Google/PhotosLibrary/Types/Product.hs +2287/−0
- gen/Network/Google/PhotosLibrary/Types/Sum.hs +132/−0
- gen/Network/Google/Resource/PhotosLibrary/Albums/AddEnrichment.hs +187/−0
- gen/Network/Google/Resource/PhotosLibrary/Albums/Create.hs +171/−0
- gen/Network/Google/Resource/PhotosLibrary/Albums/Get.hs +171/−0
- gen/Network/Google/Resource/PhotosLibrary/Albums/List.hs +190/−0
- gen/Network/Google/Resource/PhotosLibrary/Albums/Share.hs +187/−0
- gen/Network/Google/Resource/PhotosLibrary/MediaItems/BatchCreate.hs +185/−0
- gen/Network/Google/Resource/PhotosLibrary/MediaItems/Get.hs +173/−0
- gen/Network/Google/Resource/PhotosLibrary/MediaItems/Search.hs +184/−0
- gen/Network/Google/Resource/PhotosLibrary/SharedAlbums/Join.hs +171/−0
- gen/Network/Google/Resource/PhotosLibrary/SharedAlbums/List.hs +192/−0
- gogol-photoslibrary.cabal +55/−0
- src/.gitkeep +0/−0
+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+ means each individual or legal entity that creates, contributes to+ the creation of, or owns Covered Software.++1.2. "Contributor Version"+ means the combination of the Contributions of others (if any) used+ by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+ means Covered Software of a particular Contributor.++1.4. "Covered Software"+ means Source Code Form to which the initial Contributor has attached+ the notice in Exhibit A, the Executable Form of such Source Code+ Form, and Modifications of such Source Code Form, in each case+ including portions thereof.++1.5. "Incompatible With Secondary Licenses"+ means++ (a) that the initial Contributor has attached the notice described+ in Exhibit B to the Covered Software; or++ (b) that the Covered Software was made available under the terms of+ version 1.1 or earlier of the License, but not also under the+ terms of a Secondary License.++1.6. "Executable Form"+ means any form of the work other than Source Code Form.++1.7. "Larger Work"+ means a work that combines Covered Software with other material, in+ a separate file or files, that is not Covered Software.++1.8. "License"+ means this document.++1.9. "Licensable"+ means having the right to grant, to the maximum extent possible,+ whether at the time of the initial grant or subsequently, any and+ all of the rights conveyed by this License.++1.10. "Modifications"+ means any of the following:++ (a) any file in Source Code Form that results from an addition to,+ deletion from, or modification of the contents of Covered+ Software; or++ (b) any new file in Source Code Form that contains any Covered+ Software.++1.11. "Patent Claims" of a Contributor+ means any patent claim(s), including without limitation, method,+ process, and apparatus claims, in any patent Licensable by such+ Contributor that would be infringed, but for the grant of the+ License, by the making, using, selling, offering for sale, having+ made, import, or transfer of either its Contributions or its+ Contributor Version.++1.12. "Secondary License"+ means either the GNU General Public License, Version 2.0, the GNU+ Lesser General Public License, Version 2.1, the GNU Affero General+ Public License, Version 3.0, or any later versions of those+ licenses.++1.13. "Source Code Form"+ means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+ means an individual or a legal entity exercising rights under this+ License. For legal entities, "You" includes any entity that+ controls, is controlled by, or is under common control with You. For+ purposes of this definition, "control" means (a) the power, direct+ or indirect, to cause the direction or management of such entity,+ whether by contract or otherwise, or (b) ownership of more than+ fifty percent (50%) of the outstanding shares or beneficial+ ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+ Licensable by such Contributor to use, reproduce, make available,+ modify, display, perform, distribute, and otherwise exploit its+ Contributions, either on an unmodified basis, with Modifications, or+ as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+ for sale, have made, import, and otherwise transfer either its+ Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+ or++(b) for infringements caused by: (i) Your and any other third party's+ modifications of Covered Software, or (ii) the combination of its+ Contributions with other software (except as part of its Contributor+ Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+ its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+ Form, as described in Section 3.1, and You must inform recipients of+ the Executable Form how they can obtain a copy of such Source Code+ Form by reasonable means in a timely manner, at a charge no more+ than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+ License, or sublicense it under different terms, provided that the+ license for the Executable Form does not attempt to limit or alter+ the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+* *+* 6. Disclaimer of Warranty *+* ------------------------- *+* *+* Covered Software is provided under this License on an "as is" *+* basis, without warranty of any kind, either expressed, implied, or *+* statutory, including, without limitation, warranties that the *+* Covered Software is free of defects, merchantable, fit for a *+* particular purpose or non-infringing. The entire risk as to the *+* quality and performance of the Covered Software is with You. *+* Should any Covered Software prove defective in any respect, You *+* (not any Contributor) assume the cost of any necessary servicing, *+* repair, or correction. This disclaimer of warranty constitutes an *+* essential part of this License. No use of any Covered Software is *+* authorized under this License except under this disclaimer. *+* *+************************************************************************++************************************************************************+* *+* 7. Limitation of Liability *+* -------------------------- *+* *+* Under no circumstances and under no legal theory, whether tort *+* (including negligence), contract, or otherwise, shall any *+* Contributor, or anyone who distributes Covered Software as *+* permitted above, be liable to You for any direct, indirect, *+* special, incidental, or consequential damages of any character *+* including, without limitation, damages for lost profits, loss of *+* goodwill, work stoppage, computer failure or malfunction, or any *+* and all other commercial damages or losses, even if such party *+* shall have been informed of the possibility of such damages. This *+* limitation of liability shall not apply to liability for death or *+* personal injury resulting from such party's negligence to the *+* extent applicable law prohibits such limitation. Some *+* jurisdictions do not allow the exclusion or limitation of *+* incidental or consequential damages, so this exclusion and *+* limitation may not apply to You. *+* *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++ This Source Code Form is subject to the terms of the Mozilla Public+ License, v. 2.0. If a copy of the MPL was not distributed with this+ file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,28 @@+# gogol-photoslibrary++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.3.0`+++## Description++A client library for the Google Photos Library.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/gogol/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `gogol-gen` for more information.+++## Licence++`gogol-photoslibrary` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ gen/Network/Google/PhotosLibrary.hs view
@@ -0,0 +1,363 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module : Network.Google.PhotosLibrary+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Manage photos, videos, and albums in Google Photos+--+-- /See:/ <https://developers.google.com/photos/ Photos Library API Reference>+module Network.Google.PhotosLibrary+ (+ -- * Service Configuration+ photosLibraryService++ -- * OAuth Scopes+ , photosLibraryReadOnlyScope+ , photosLibraryScope+ , drivePhotosReadOnlyScope+ , photosLibrarySharingScope+ , photosLibraryAppendOnlyScope+ , photosLibraryReadOnlyAppcreatedDataScope++ -- * API Declaration+ , PhotosLibraryAPI++ -- * Resources++ -- ** photoslibrary.albums.addEnrichment+ , module Network.Google.Resource.PhotosLibrary.Albums.AddEnrichment++ -- ** photoslibrary.albums.create+ , module Network.Google.Resource.PhotosLibrary.Albums.Create++ -- ** photoslibrary.albums.get+ , module Network.Google.Resource.PhotosLibrary.Albums.Get++ -- ** photoslibrary.albums.list+ , module Network.Google.Resource.PhotosLibrary.Albums.List++ -- ** photoslibrary.albums.share+ , module Network.Google.Resource.PhotosLibrary.Albums.Share++ -- ** photoslibrary.mediaItems.batchCreate+ , module Network.Google.Resource.PhotosLibrary.MediaItems.BatchCreate++ -- ** photoslibrary.mediaItems.get+ , module Network.Google.Resource.PhotosLibrary.MediaItems.Get++ -- ** photoslibrary.mediaItems.search+ , module Network.Google.Resource.PhotosLibrary.MediaItems.Search++ -- ** photoslibrary.sharedAlbums.join+ , module Network.Google.Resource.PhotosLibrary.SharedAlbums.Join++ -- ** photoslibrary.sharedAlbums.list+ , module Network.Google.Resource.PhotosLibrary.SharedAlbums.List++ -- * Types++ -- ** LatLng+ , LatLng+ , latLng+ , llLatitude+ , llLongitude++ -- ** LocationEnrichment+ , LocationEnrichment+ , locationEnrichment+ , leLocation++ -- ** DateFilter+ , DateFilter+ , dateFilter+ , dfDates+ , dfRanges++ -- ** Photo+ , Photo+ , photo+ , pFocalLength+ , pCameraMake+ , pExposureTime+ , pCameraModel+ , pIsoEquivalent+ , pApertureFNumber++ -- ** TextEnrichment+ , TextEnrichment+ , textEnrichment+ , teText++ -- ** Status+ , Status+ , status+ , sDetails+ , sCode+ , sMessage++ -- ** AddEnrichmentToAlbumResponse+ , AddEnrichmentToAlbumResponse+ , addEnrichmentToAlbumResponse+ , aetarEnrichmentItem++ -- ** SearchMediaItemsResponse+ , SearchMediaItemsResponse+ , searchMediaItemsResponse+ , smirNextPageToken+ , smirMediaItems++ -- ** JoinSharedAlbumResponse+ , JoinSharedAlbumResponse+ , joinSharedAlbumResponse++ -- ** CreateAlbumRequest+ , CreateAlbumRequest+ , createAlbumRequest+ , carAlbum++ -- ** Location+ , Location+ , location+ , lLatlng+ , lLocationName++ -- ** VideoStatus+ , VideoStatus (..)++ -- ** NewEnrichmentItem+ , NewEnrichmentItem+ , newEnrichmentItem+ , neiLocationEnrichment+ , neiTextEnrichment+ , neiMapEnrichment++ -- ** ShareInfo+ , ShareInfo+ , shareInfo+ , siShareableURL+ , siShareToken+ , siSharedAlbumOptions++ -- ** BatchCreateMediaItemsRequest+ , BatchCreateMediaItemsRequest+ , batchCreateMediaItemsRequest+ , bcmirAlbumId+ , bcmirNewMediaItems+ , bcmirAlbumPosition++ -- ** Filters+ , Filters+ , filters+ , fDateFilter+ , fIncludeArchivedMedia+ , fMediaTypeFilter+ , fContentFilter++ -- ** StatusDetailsItem+ , StatusDetailsItem+ , statusDetailsItem+ , sdiAddtional++ -- ** DateRange+ , DateRange+ , dateRange+ , drEndDate+ , drStartDate++ -- ** SharedAlbumOptions+ , SharedAlbumOptions+ , sharedAlbumOptions+ , saoIsCollaborative+ , saoIsCommentable++ -- ** MediaMetadata+ , MediaMetadata+ , mediaMetadata+ , mmCreationTime+ , mmPhoto+ , mmHeight+ , mmWidth+ , mmVideo++ -- ** ShareAlbumResponse+ , ShareAlbumResponse+ , shareAlbumResponse+ , sarShareInfo++ -- ** Video+ , Video+ , video+ , vStatus+ , vCameraMake+ , vCameraModel+ , vFps++ -- ** MediaItem+ , MediaItem+ , mediaItem+ , miProductURL+ , miBaseURL+ , miMediaMetadata+ , miMimeType+ , miId+ , miContributorInfo+ , miDescription++ -- ** Date+ , Date+ , date+ , dDay+ , dYear+ , dMonth++ -- ** EnrichmentItem+ , EnrichmentItem+ , enrichmentItem+ , eiId++ -- ** ListSharedAlbumsResponse+ , ListSharedAlbumsResponse+ , listSharedAlbumsResponse+ , lsarNextPageToken+ , lsarSharedAlbums++ -- ** MediaTypeFilter+ , MediaTypeFilter+ , mediaTypeFilter+ , mtfMediaTypes++ -- ** NewMediaItemResult+ , NewMediaItemResult+ , newMediaItemResult+ , nmirStatus+ , nmirUploadToken+ , nmirMediaItem++ -- ** Album+ , Album+ , album+ , aIsWriteable+ , aProductURL+ , aShareInfo+ , aCoverPhotoBaseURL+ , aId+ , aTotalMediaItems+ , aTitle++ -- ** SimpleMediaItem+ , SimpleMediaItem+ , simpleMediaItem+ , smiUploadToken++ -- ** AlbumPositionPosition+ , AlbumPositionPosition (..)++ -- ** Xgafv+ , Xgafv (..)++ -- ** ContributorInfo+ , ContributorInfo+ , contributorInfo+ , ciProFilePictureBaseURL+ , ciDisplayName++ -- ** ListAlbumsResponse+ , ListAlbumsResponse+ , listAlbumsResponse+ , larNextPageToken+ , larAlbums++ -- ** MapEnrichment+ , MapEnrichment+ , mapEnrichment+ , meDestination+ , meOrigin++ -- ** SearchMediaItemsRequest+ , SearchMediaItemsRequest+ , searchMediaItemsRequest+ , smirAlbumId+ , smirFilters+ , smirPageToken+ , smirPageSize++ -- ** NewMediaItem+ , NewMediaItem+ , newMediaItem+ , nmiSimpleMediaItem+ , nmiDescription++ -- ** AddEnrichmentToAlbumRequest+ , AddEnrichmentToAlbumRequest+ , addEnrichmentToAlbumRequest+ , aetarNewEnrichmentItem+ , aetarAlbumPosition++ -- ** JoinSharedAlbumRequest+ , JoinSharedAlbumRequest+ , joinSharedAlbumRequest+ , jsarShareToken++ -- ** ShareAlbumRequest+ , ShareAlbumRequest+ , shareAlbumRequest+ , sarSharedAlbumOptions++ -- ** AlbumPosition+ , AlbumPosition+ , albumPosition+ , apRelativeMediaItemId+ , apRelativeEnrichmentItemId+ , apPosition++ -- ** ContentFilter+ , ContentFilter+ , contentFilter+ , cfIncludedContentCategories+ , cfExcludedContentCategories++ -- ** BatchCreateMediaItemsResponse+ , BatchCreateMediaItemsResponse+ , batchCreateMediaItemsResponse+ , bcmirNewMediaItemResults+ ) where++import Network.Google.PhotosLibrary.Types+import Network.Google.Prelude+import Network.Google.Resource.PhotosLibrary.Albums.AddEnrichment+import Network.Google.Resource.PhotosLibrary.Albums.Create+import Network.Google.Resource.PhotosLibrary.Albums.Get+import Network.Google.Resource.PhotosLibrary.Albums.List+import Network.Google.Resource.PhotosLibrary.Albums.Share+import Network.Google.Resource.PhotosLibrary.MediaItems.BatchCreate+import Network.Google.Resource.PhotosLibrary.MediaItems.Get+import Network.Google.Resource.PhotosLibrary.MediaItems.Search+import Network.Google.Resource.PhotosLibrary.SharedAlbums.Join+import Network.Google.Resource.PhotosLibrary.SharedAlbums.List++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Photos Library API service.+type PhotosLibraryAPI =+ MediaItemsGetResource :<|>+ MediaItemsBatchCreateResource+ :<|> MediaItemsSearchResource+ :<|> AlbumsListResource+ :<|> AlbumsShareResource+ :<|> AlbumsAddEnrichmentResource+ :<|> AlbumsGetResource+ :<|> AlbumsCreateResource+ :<|> SharedAlbumsListResource+ :<|> SharedAlbumsJoinResource
+ gen/Network/Google/PhotosLibrary/Types.hs view
@@ -0,0 +1,328 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.PhotosLibrary.Types+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.PhotosLibrary.Types+ (+ -- * Service Configuration+ photosLibraryService++ -- * OAuth Scopes+ , photosLibraryReadOnlyScope+ , photosLibraryScope+ , drivePhotosReadOnlyScope+ , photosLibrarySharingScope+ , photosLibraryAppendOnlyScope+ , photosLibraryReadOnlyAppcreatedDataScope++ -- * LatLng+ , LatLng+ , latLng+ , llLatitude+ , llLongitude++ -- * LocationEnrichment+ , LocationEnrichment+ , locationEnrichment+ , leLocation++ -- * DateFilter+ , DateFilter+ , dateFilter+ , dfDates+ , dfRanges++ -- * Photo+ , Photo+ , photo+ , pFocalLength+ , pCameraMake+ , pExposureTime+ , pCameraModel+ , pIsoEquivalent+ , pApertureFNumber++ -- * TextEnrichment+ , TextEnrichment+ , textEnrichment+ , teText++ -- * Status+ , Status+ , status+ , sDetails+ , sCode+ , sMessage++ -- * AddEnrichmentToAlbumResponse+ , AddEnrichmentToAlbumResponse+ , addEnrichmentToAlbumResponse+ , aetarEnrichmentItem++ -- * SearchMediaItemsResponse+ , SearchMediaItemsResponse+ , searchMediaItemsResponse+ , smirNextPageToken+ , smirMediaItems++ -- * JoinSharedAlbumResponse+ , JoinSharedAlbumResponse+ , joinSharedAlbumResponse++ -- * CreateAlbumRequest+ , CreateAlbumRequest+ , createAlbumRequest+ , carAlbum++ -- * Location+ , Location+ , location+ , lLatlng+ , lLocationName++ -- * VideoStatus+ , VideoStatus (..)++ -- * NewEnrichmentItem+ , NewEnrichmentItem+ , newEnrichmentItem+ , neiLocationEnrichment+ , neiTextEnrichment+ , neiMapEnrichment++ -- * ShareInfo+ , ShareInfo+ , shareInfo+ , siShareableURL+ , siShareToken+ , siSharedAlbumOptions++ -- * BatchCreateMediaItemsRequest+ , BatchCreateMediaItemsRequest+ , batchCreateMediaItemsRequest+ , bcmirAlbumId+ , bcmirNewMediaItems+ , bcmirAlbumPosition++ -- * Filters+ , Filters+ , filters+ , fDateFilter+ , fIncludeArchivedMedia+ , fMediaTypeFilter+ , fContentFilter++ -- * StatusDetailsItem+ , StatusDetailsItem+ , statusDetailsItem+ , sdiAddtional++ -- * DateRange+ , DateRange+ , dateRange+ , drEndDate+ , drStartDate++ -- * SharedAlbumOptions+ , SharedAlbumOptions+ , sharedAlbumOptions+ , saoIsCollaborative+ , saoIsCommentable++ -- * MediaMetadata+ , MediaMetadata+ , mediaMetadata+ , mmCreationTime+ , mmPhoto+ , mmHeight+ , mmWidth+ , mmVideo++ -- * ShareAlbumResponse+ , ShareAlbumResponse+ , shareAlbumResponse+ , sarShareInfo++ -- * Video+ , Video+ , video+ , vStatus+ , vCameraMake+ , vCameraModel+ , vFps++ -- * MediaItem+ , MediaItem+ , mediaItem+ , miProductURL+ , miBaseURL+ , miMediaMetadata+ , miMimeType+ , miId+ , miContributorInfo+ , miDescription++ -- * Date+ , Date+ , date+ , dDay+ , dYear+ , dMonth++ -- * EnrichmentItem+ , EnrichmentItem+ , enrichmentItem+ , eiId++ -- * ListSharedAlbumsResponse+ , ListSharedAlbumsResponse+ , listSharedAlbumsResponse+ , lsarNextPageToken+ , lsarSharedAlbums++ -- * MediaTypeFilter+ , MediaTypeFilter+ , mediaTypeFilter+ , mtfMediaTypes++ -- * NewMediaItemResult+ , NewMediaItemResult+ , newMediaItemResult+ , nmirStatus+ , nmirUploadToken+ , nmirMediaItem++ -- * Album+ , Album+ , album+ , aIsWriteable+ , aProductURL+ , aShareInfo+ , aCoverPhotoBaseURL+ , aId+ , aTotalMediaItems+ , aTitle++ -- * SimpleMediaItem+ , SimpleMediaItem+ , simpleMediaItem+ , smiUploadToken++ -- * AlbumPositionPosition+ , AlbumPositionPosition (..)++ -- * Xgafv+ , Xgafv (..)++ -- * ContributorInfo+ , ContributorInfo+ , contributorInfo+ , ciProFilePictureBaseURL+ , ciDisplayName++ -- * ListAlbumsResponse+ , ListAlbumsResponse+ , listAlbumsResponse+ , larNextPageToken+ , larAlbums++ -- * MapEnrichment+ , MapEnrichment+ , mapEnrichment+ , meDestination+ , meOrigin++ -- * SearchMediaItemsRequest+ , SearchMediaItemsRequest+ , searchMediaItemsRequest+ , smirAlbumId+ , smirFilters+ , smirPageToken+ , smirPageSize++ -- * NewMediaItem+ , NewMediaItem+ , newMediaItem+ , nmiSimpleMediaItem+ , nmiDescription++ -- * AddEnrichmentToAlbumRequest+ , AddEnrichmentToAlbumRequest+ , addEnrichmentToAlbumRequest+ , aetarNewEnrichmentItem+ , aetarAlbumPosition++ -- * JoinSharedAlbumRequest+ , JoinSharedAlbumRequest+ , joinSharedAlbumRequest+ , jsarShareToken++ -- * ShareAlbumRequest+ , ShareAlbumRequest+ , shareAlbumRequest+ , sarSharedAlbumOptions++ -- * AlbumPosition+ , AlbumPosition+ , albumPosition+ , apRelativeMediaItemId+ , apRelativeEnrichmentItemId+ , apPosition++ -- * ContentFilter+ , ContentFilter+ , contentFilter+ , cfIncludedContentCategories+ , cfExcludedContentCategories++ -- * BatchCreateMediaItemsResponse+ , BatchCreateMediaItemsResponse+ , batchCreateMediaItemsResponse+ , bcmirNewMediaItemResults+ ) where++import Network.Google.PhotosLibrary.Types.Product+import Network.Google.PhotosLibrary.Types.Sum+import Network.Google.Prelude++-- | Default request referring to version 'v1' of the Photos Library API. This contains the host and root path used as a starting point for constructing service requests.+photosLibraryService :: ServiceConfig+photosLibraryService+ = defaultService (ServiceId "photoslibrary:v1")+ "photoslibrary.googleapis.com"++-- | View your Google Photos library+photosLibraryReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/photoslibrary.readonly"]+photosLibraryReadOnlyScope = Proxy;++-- | View and manage your Google Photos library+photosLibraryScope :: Proxy '["https://www.googleapis.com/auth/photoslibrary"]+photosLibraryScope = Proxy;++-- | View the photos, videos and albums in your Google Photos+drivePhotosReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/drive.photos.readonly"]+drivePhotosReadOnlyScope = Proxy;++-- | Manage and add to shared albums on your behalf+photosLibrarySharingScope :: Proxy '["https://www.googleapis.com/auth/photoslibrary.sharing"]+photosLibrarySharingScope = Proxy;++-- | Add to your Google Photos library+photosLibraryAppendOnlyScope :: Proxy '["https://www.googleapis.com/auth/photoslibrary.appendonly"]+photosLibraryAppendOnlyScope = Proxy;++-- | Manage photos added by this app+photosLibraryReadOnlyAppcreatedDataScope :: Proxy '["https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]+photosLibraryReadOnlyAppcreatedDataScope = Proxy;
+ gen/Network/Google/PhotosLibrary/Types/Product.hs view
@@ -0,0 +1,2287 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}++{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.PhotosLibrary.Types.Product+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.PhotosLibrary.Types.Product where++import Network.Google.PhotosLibrary.Types.Sum+import Network.Google.Prelude++-- | An object representing a latitude\/longitude pair. This is expressed as+-- a pair of doubles representing degrees latitude and degrees longitude.+-- Unless specified otherwise, this must conform to the+-- <http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf WGS84 standard>.+-- Values must be within normalized ranges.+--+-- /See:/ 'latLng' smart constructor.+data LatLng = LatLng'+ { _llLatitude :: !(Maybe (Textual Double))+ , _llLongitude :: !(Maybe (Textual Double))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LatLng' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'llLatitude'+--+-- * 'llLongitude'+latLng+ :: LatLng+latLng =+ LatLng'+ { _llLatitude = Nothing+ , _llLongitude = Nothing+ }++-- | The latitude in degrees. It must be in the range [-90.0, +90.0].+llLatitude :: Lens' LatLng (Maybe Double)+llLatitude+ = lens _llLatitude (\ s a -> s{_llLatitude = a}) .+ mapping _Coerce++-- | The longitude in degrees. It must be in the range [-180.0, +180.0].+llLongitude :: Lens' LatLng (Maybe Double)+llLongitude+ = lens _llLongitude (\ s a -> s{_llLongitude = a}) .+ mapping _Coerce++instance FromJSON LatLng where+ parseJSON+ = withObject "LatLng"+ (\ o ->+ LatLng' <$>+ (o .:? "latitude") <*> (o .:? "longitude"))++instance ToJSON LatLng where+ toJSON LatLng'{..}+ = object+ (catMaybes+ [("latitude" .=) <$> _llLatitude,+ ("longitude" .=) <$> _llLongitude])++-- | An enrichment containing a single location.+--+-- /See:/ 'locationEnrichment' smart constructor.+newtype LocationEnrichment = LocationEnrichment'+ { _leLocation :: Maybe Location+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LocationEnrichment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'leLocation'+locationEnrichment+ :: LocationEnrichment+locationEnrichment =+ LocationEnrichment'+ { _leLocation = Nothing+ }++-- | Location for this enrichment item.+leLocation :: Lens' LocationEnrichment (Maybe Location)+leLocation+ = lens _leLocation (\ s a -> s{_leLocation = a})++instance FromJSON LocationEnrichment where+ parseJSON+ = withObject "LocationEnrichment"+ (\ o -> LocationEnrichment' <$> (o .:? "location"))++instance ToJSON LocationEnrichment where+ toJSON LocationEnrichment'{..}+ = object+ (catMaybes [("location" .=) <$> _leLocation])++-- | This filter defines the allowed dates or date ranges for the media+-- returned. It is possible to pick a set of specific dates and a set of+-- date ranges.+--+-- /See:/ 'dateFilter' smart constructor.+data DateFilter = DateFilter'+ { _dfDates :: !(Maybe [Date])+ , _dfRanges :: !(Maybe [DateRange])+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DateFilter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dfDates'+--+-- * 'dfRanges'+dateFilter+ :: DateFilter+dateFilter =+ DateFilter'+ { _dfDates = Nothing+ , _dfRanges = Nothing+ }++-- | List of dates that the media items must have been created on. There is a+-- maximum of 5 dates that can be included per request.+dfDates :: Lens' DateFilter [Date]+dfDates+ = lens _dfDates (\ s a -> s{_dfDates = a}) . _Default+ . _Coerce++-- | List of dates ranges that the media items must have been created in.+-- There is a maximum of 5 dates ranges that can be included per request.+dfRanges :: Lens' DateFilter [DateRange]+dfRanges+ = lens _dfRanges (\ s a -> s{_dfRanges = a}) .+ _Default+ . _Coerce++instance FromJSON DateFilter where+ parseJSON+ = withObject "DateFilter"+ (\ o ->+ DateFilter' <$>+ (o .:? "dates" .!= mempty) <*>+ (o .:? "ranges" .!= mempty))++instance ToJSON DateFilter where+ toJSON DateFilter'{..}+ = object+ (catMaybes+ [("dates" .=) <$> _dfDates,+ ("ranges" .=) <$> _dfRanges])++-- | Metadata that is specific to a photo, for example, ISO, focal length and+-- exposure time. Some of these fields may be null or not included.+--+-- /See:/ 'photo' smart constructor.+data Photo = Photo'+ { _pFocalLength :: !(Maybe (Textual Double))+ , _pCameraMake :: !(Maybe Text)+ , _pExposureTime :: !(Maybe GDuration)+ , _pCameraModel :: !(Maybe Text)+ , _pIsoEquivalent :: !(Maybe (Textual Int32))+ , _pApertureFNumber :: !(Maybe (Textual Double))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Photo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pFocalLength'+--+-- * 'pCameraMake'+--+-- * 'pExposureTime'+--+-- * 'pCameraModel'+--+-- * 'pIsoEquivalent'+--+-- * 'pApertureFNumber'+photo+ :: Photo+photo =+ Photo'+ { _pFocalLength = Nothing+ , _pCameraMake = Nothing+ , _pExposureTime = Nothing+ , _pCameraModel = Nothing+ , _pIsoEquivalent = Nothing+ , _pApertureFNumber = Nothing+ }++-- | Focal length of the photo.+pFocalLength :: Lens' Photo (Maybe Double)+pFocalLength+ = lens _pFocalLength (\ s a -> s{_pFocalLength = a})+ . mapping _Coerce++-- | Brand of the camera which took the photo.+pCameraMake :: Lens' Photo (Maybe Text)+pCameraMake+ = lens _pCameraMake (\ s a -> s{_pCameraMake = a})++-- | Exposure time of the photo.+pExposureTime :: Lens' Photo (Maybe Scientific)+pExposureTime+ = lens _pExposureTime+ (\ s a -> s{_pExposureTime = a})+ . mapping _GDuration++-- | Model of the camera which took the photo.+pCameraModel :: Lens' Photo (Maybe Text)+pCameraModel+ = lens _pCameraModel (\ s a -> s{_pCameraModel = a})++-- | ISO of the photo.+pIsoEquivalent :: Lens' Photo (Maybe Int32)+pIsoEquivalent+ = lens _pIsoEquivalent+ (\ s a -> s{_pIsoEquivalent = a})+ . mapping _Coerce++-- | Apeture f number of the photo.+pApertureFNumber :: Lens' Photo (Maybe Double)+pApertureFNumber+ = lens _pApertureFNumber+ (\ s a -> s{_pApertureFNumber = a})+ . mapping _Coerce++instance FromJSON Photo where+ parseJSON+ = withObject "Photo"+ (\ o ->+ Photo' <$>+ (o .:? "focalLength") <*> (o .:? "cameraMake") <*>+ (o .:? "exposureTime")+ <*> (o .:? "cameraModel")+ <*> (o .:? "isoEquivalent")+ <*> (o .:? "apertureFNumber"))++instance ToJSON Photo where+ toJSON Photo'{..}+ = object+ (catMaybes+ [("focalLength" .=) <$> _pFocalLength,+ ("cameraMake" .=) <$> _pCameraMake,+ ("exposureTime" .=) <$> _pExposureTime,+ ("cameraModel" .=) <$> _pCameraModel,+ ("isoEquivalent" .=) <$> _pIsoEquivalent,+ ("apertureFNumber" .=) <$> _pApertureFNumber])++-- | An enrichment containing text.+--+-- /See:/ 'textEnrichment' smart constructor.+newtype TextEnrichment = TextEnrichment'+ { _teText :: Maybe Text+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TextEnrichment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'teText'+textEnrichment+ :: TextEnrichment+textEnrichment =+ TextEnrichment'+ { _teText = Nothing+ }++-- | Text for this text enrichment item.+teText :: Lens' TextEnrichment (Maybe Text)+teText = lens _teText (\ s a -> s{_teText = a})++instance FromJSON TextEnrichment where+ parseJSON+ = withObject "TextEnrichment"+ (\ o -> TextEnrichment' <$> (o .:? "text"))++instance ToJSON TextEnrichment where+ toJSON TextEnrichment'{..}+ = object (catMaybes [("text" .=) <$> _teText])++-- | The \`Status\` type defines a logical error model that is suitable for+-- different programming environments, including REST APIs and RPC APIs. It+-- is used by [gRPC](https:\/\/github.com\/grpc). The error model is+-- designed to be: - Simple to use and understand for most users - Flexible+-- enough to meet unexpected needs # Overview The \`Status\` message+-- contains three pieces of data: error code, error message, and error+-- details. The error code should be an enum value of google.rpc.Code, but+-- it may accept additional error codes if needed. The error message should+-- be a developer-facing English message that helps developers *understand*+-- and *resolve* the error. If a localized user-facing error message is+-- needed, put the localized message in the error details or localize it in+-- the client. The optional error details may contain arbitrary information+-- about the error. There is a predefined set of error detail types in the+-- package \`google.rpc\` that can be used for common error conditions. #+-- Language mapping The \`Status\` message is the logical representation of+-- the error model, but it is not necessarily the actual wire format. When+-- the \`Status\` message is exposed in different client libraries and+-- different wire protocols, it can be mapped differently. For example, it+-- will likely be mapped to some exceptions in Java, but more likely mapped+-- to some error codes in C. # Other uses The error model and the+-- \`Status\` message can be used in a variety of environments, either with+-- or without APIs, to provide a consistent developer experience across+-- different environments. Example uses of this error model include: -+-- Partial errors. If a service needs to return partial errors to the+-- client, it may embed the \`Status\` in the normal response to indicate+-- the partial errors. - Workflow errors. A typical workflow has multiple+-- steps. Each step may have a \`Status\` message for error reporting. -+-- Batch operations. If a client uses batch request and batch response, the+-- \`Status\` message should be used directly inside batch response, one+-- for each error sub-response. - Asynchronous operations. If an API call+-- embeds asynchronous operation results in its response, the status of+-- those operations should be represented directly using the \`Status\`+-- message. - Logging. If some API errors are stored in logs, the message+-- \`Status\` could be used directly after any stripping needed for+-- security\/privacy reasons.+--+-- /See:/ 'status' smart constructor.+data Status = Status'+ { _sDetails :: !(Maybe [StatusDetailsItem])+ , _sCode :: !(Maybe (Textual Int32))+ , _sMessage :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Status' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sDetails'+--+-- * 'sCode'+--+-- * 'sMessage'+status+ :: Status+status =+ Status'+ { _sDetails = Nothing+ , _sCode = Nothing+ , _sMessage = Nothing+ }++-- | A list of messages that carry the error details. There is a common set+-- of message types for APIs to use.+sDetails :: Lens' Status [StatusDetailsItem]+sDetails+ = lens _sDetails (\ s a -> s{_sDetails = a}) .+ _Default+ . _Coerce++-- | The status code, which should be an enum value of google.rpc.Code.+sCode :: Lens' Status (Maybe Int32)+sCode+ = lens _sCode (\ s a -> s{_sCode = a}) .+ mapping _Coerce++-- | A developer-facing error message, which should be in English. Any+-- user-facing error message should be localized and sent in the+-- google.rpc.Status.details field, or localized by the client.+sMessage :: Lens' Status (Maybe Text)+sMessage = lens _sMessage (\ s a -> s{_sMessage = a})++instance FromJSON Status where+ parseJSON+ = withObject "Status"+ (\ o ->+ Status' <$>+ (o .:? "details" .!= mempty) <*> (o .:? "code") <*>+ (o .:? "message"))++instance ToJSON Status where+ toJSON Status'{..}+ = object+ (catMaybes+ [("details" .=) <$> _sDetails,+ ("code" .=) <$> _sCode,+ ("message" .=) <$> _sMessage])++--+-- /See:/ 'addEnrichmentToAlbumResponse' smart constructor.+newtype AddEnrichmentToAlbumResponse = AddEnrichmentToAlbumResponse'+ { _aetarEnrichmentItem :: Maybe EnrichmentItem+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddEnrichmentToAlbumResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aetarEnrichmentItem'+addEnrichmentToAlbumResponse+ :: AddEnrichmentToAlbumResponse+addEnrichmentToAlbumResponse =+ AddEnrichmentToAlbumResponse'+ { _aetarEnrichmentItem = Nothing+ }++-- | [Output only] Enrichment which was added.+aetarEnrichmentItem :: Lens' AddEnrichmentToAlbumResponse (Maybe EnrichmentItem)+aetarEnrichmentItem+ = lens _aetarEnrichmentItem+ (\ s a -> s{_aetarEnrichmentItem = a})++instance FromJSON AddEnrichmentToAlbumResponse where+ parseJSON+ = withObject "AddEnrichmentToAlbumResponse"+ (\ o ->+ AddEnrichmentToAlbumResponse' <$>+ (o .:? "enrichmentItem"))++instance ToJSON AddEnrichmentToAlbumResponse where+ toJSON AddEnrichmentToAlbumResponse'{..}+ = object+ (catMaybes+ [("enrichmentItem" .=) <$> _aetarEnrichmentItem])++--+-- /See:/ 'searchMediaItemsResponse' smart constructor.+data SearchMediaItemsResponse = SearchMediaItemsResponse'+ { _smirNextPageToken :: !(Maybe Text)+ , _smirMediaItems :: !(Maybe [MediaItem])+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SearchMediaItemsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'smirNextPageToken'+--+-- * 'smirMediaItems'+searchMediaItemsResponse+ :: SearchMediaItemsResponse+searchMediaItemsResponse =+ SearchMediaItemsResponse'+ { _smirNextPageToken = Nothing+ , _smirMediaItems = Nothing+ }++-- | [Output only] Token to use to get the next set of media items. Its+-- presence is the only reliable indicator of more media items being+-- available in the next request.+smirNextPageToken :: Lens' SearchMediaItemsResponse (Maybe Text)+smirNextPageToken+ = lens _smirNextPageToken+ (\ s a -> s{_smirNextPageToken = a})++-- | [Output only] List of media items that match the search parameters.+smirMediaItems :: Lens' SearchMediaItemsResponse [MediaItem]+smirMediaItems+ = lens _smirMediaItems+ (\ s a -> s{_smirMediaItems = a})+ . _Default+ . _Coerce++instance FromJSON SearchMediaItemsResponse where+ parseJSON+ = withObject "SearchMediaItemsResponse"+ (\ o ->+ SearchMediaItemsResponse' <$>+ (o .:? "nextPageToken") <*>+ (o .:? "mediaItems" .!= mempty))++instance ToJSON SearchMediaItemsResponse where+ toJSON SearchMediaItemsResponse'{..}+ = object+ (catMaybes+ [("nextPageToken" .=) <$> _smirNextPageToken,+ ("mediaItems" .=) <$> _smirMediaItems])++-- | Response to successfully joining the shared album on behalf of the user.+--+-- /See:/ 'joinSharedAlbumResponse' smart constructor.+data JoinSharedAlbumResponse =+ JoinSharedAlbumResponse'+ deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JoinSharedAlbumResponse' with the minimum fields required to make a request.+--+joinSharedAlbumResponse+ :: JoinSharedAlbumResponse+joinSharedAlbumResponse = JoinSharedAlbumResponse'++instance FromJSON JoinSharedAlbumResponse where+ parseJSON+ = withObject "JoinSharedAlbumResponse"+ (\ o -> pure JoinSharedAlbumResponse')++instance ToJSON JoinSharedAlbumResponse where+ toJSON = const emptyObject++-- | Request to create an album in Google Photos.+--+-- /See:/ 'createAlbumRequest' smart constructor.+newtype CreateAlbumRequest = CreateAlbumRequest'+ { _carAlbum :: Maybe Album+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateAlbumRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'carAlbum'+createAlbumRequest+ :: CreateAlbumRequest+createAlbumRequest =+ CreateAlbumRequest'+ { _carAlbum = Nothing+ }++-- | The album to be created.+carAlbum :: Lens' CreateAlbumRequest (Maybe Album)+carAlbum = lens _carAlbum (\ s a -> s{_carAlbum = a})++instance FromJSON CreateAlbumRequest where+ parseJSON+ = withObject "CreateAlbumRequest"+ (\ o -> CreateAlbumRequest' <$> (o .:? "album"))++instance ToJSON CreateAlbumRequest where+ toJSON CreateAlbumRequest'{..}+ = object (catMaybes [("album" .=) <$> _carAlbum])++-- | Represents a physical location.+--+-- /See:/ 'location' smart constructor.+data Location = Location'+ { _lLatlng :: !(Maybe LatLng)+ , _lLocationName :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Location' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lLatlng'+--+-- * 'lLocationName'+location+ :: Location+location =+ Location'+ { _lLatlng = Nothing+ , _lLocationName = Nothing+ }++-- | Position of the location on the map.+lLatlng :: Lens' Location (Maybe LatLng)+lLatlng = lens _lLatlng (\ s a -> s{_lLatlng = a})++-- | Name of the location to be displayed.+lLocationName :: Lens' Location (Maybe Text)+lLocationName+ = lens _lLocationName+ (\ s a -> s{_lLocationName = a})++instance FromJSON Location where+ parseJSON+ = withObject "Location"+ (\ o ->+ Location' <$>+ (o .:? "latlng") <*> (o .:? "locationName"))++instance ToJSON Location where+ toJSON Location'{..}+ = object+ (catMaybes+ [("latlng" .=) <$> _lLatlng,+ ("locationName" .=) <$> _lLocationName])++-- | A new enrichment item to be added to an album, used by the+-- AddEnrichmentToAlbum call.+--+-- /See:/ 'newEnrichmentItem' smart constructor.+data NewEnrichmentItem = NewEnrichmentItem'+ { _neiLocationEnrichment :: !(Maybe LocationEnrichment)+ , _neiTextEnrichment :: !(Maybe TextEnrichment)+ , _neiMapEnrichment :: !(Maybe MapEnrichment)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NewEnrichmentItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'neiLocationEnrichment'+--+-- * 'neiTextEnrichment'+--+-- * 'neiMapEnrichment'+newEnrichmentItem+ :: NewEnrichmentItem+newEnrichmentItem =+ NewEnrichmentItem'+ { _neiLocationEnrichment = Nothing+ , _neiTextEnrichment = Nothing+ , _neiMapEnrichment = Nothing+ }++-- | Location to be added to the album.+neiLocationEnrichment :: Lens' NewEnrichmentItem (Maybe LocationEnrichment)+neiLocationEnrichment+ = lens _neiLocationEnrichment+ (\ s a -> s{_neiLocationEnrichment = a})++-- | Text to be added to the album.+neiTextEnrichment :: Lens' NewEnrichmentItem (Maybe TextEnrichment)+neiTextEnrichment+ = lens _neiTextEnrichment+ (\ s a -> s{_neiTextEnrichment = a})++-- | Map to be added to the album.+neiMapEnrichment :: Lens' NewEnrichmentItem (Maybe MapEnrichment)+neiMapEnrichment+ = lens _neiMapEnrichment+ (\ s a -> s{_neiMapEnrichment = a})++instance FromJSON NewEnrichmentItem where+ parseJSON+ = withObject "NewEnrichmentItem"+ (\ o ->+ NewEnrichmentItem' <$>+ (o .:? "locationEnrichment") <*>+ (o .:? "textEnrichment")+ <*> (o .:? "mapEnrichment"))++instance ToJSON NewEnrichmentItem where+ toJSON NewEnrichmentItem'{..}+ = object+ (catMaybes+ [("locationEnrichment" .=) <$>+ _neiLocationEnrichment,+ ("textEnrichment" .=) <$> _neiTextEnrichment,+ ("mapEnrichment" .=) <$> _neiMapEnrichment])++-- | Information about albums that are shared. Note that this information is+-- only included if the album was created by you and you have the sharing+-- scope.+--+-- /See:/ 'shareInfo' smart constructor.+data ShareInfo = ShareInfo'+ { _siShareableURL :: !(Maybe Text)+ , _siShareToken :: !(Maybe Text)+ , _siSharedAlbumOptions :: !(Maybe SharedAlbumOptions)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ShareInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'siShareableURL'+--+-- * 'siShareToken'+--+-- * 'siSharedAlbumOptions'+shareInfo+ :: ShareInfo+shareInfo =+ ShareInfo'+ { _siShareableURL = Nothing+ , _siShareToken = Nothing+ , _siSharedAlbumOptions = Nothing+ }++-- | A link to the album that\'s now shared on the Google Photos website and+-- app. Anyone with the link can access this shared album and see all of+-- the items present in the album.+siShareableURL :: Lens' ShareInfo (Maybe Text)+siShareableURL+ = lens _siShareableURL+ (\ s a -> s{_siShareableURL = a})++-- | A token which can be used to join this shared album on behalf of other+-- users via the API.+siShareToken :: Lens' ShareInfo (Maybe Text)+siShareToken+ = lens _siShareToken (\ s a -> s{_siShareToken = a})++-- | Options set for the shared album.+siSharedAlbumOptions :: Lens' ShareInfo (Maybe SharedAlbumOptions)+siSharedAlbumOptions+ = lens _siSharedAlbumOptions+ (\ s a -> s{_siSharedAlbumOptions = a})++instance FromJSON ShareInfo where+ parseJSON+ = withObject "ShareInfo"+ (\ o ->+ ShareInfo' <$>+ (o .:? "shareableUrl") <*> (o .:? "shareToken") <*>+ (o .:? "sharedAlbumOptions"))++instance ToJSON ShareInfo where+ toJSON ShareInfo'{..}+ = object+ (catMaybes+ [("shareableUrl" .=) <$> _siShareableURL,+ ("shareToken" .=) <$> _siShareToken,+ ("sharedAlbumOptions" .=) <$> _siSharedAlbumOptions])++-- | Request to create one or more media items in a user\'s Google Photos+-- library. If an 'albumid' is specified, the media items are also added to+-- that album. 'albumPosition' is optional and can only be specified if an+-- 'albumId' is set.+--+-- /See:/ 'batchCreateMediaItemsRequest' smart constructor.+data BatchCreateMediaItemsRequest = BatchCreateMediaItemsRequest'+ { _bcmirAlbumId :: !(Maybe Text)+ , _bcmirNewMediaItems :: !(Maybe [NewMediaItem])+ , _bcmirAlbumPosition :: !(Maybe AlbumPosition)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchCreateMediaItemsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bcmirAlbumId'+--+-- * 'bcmirNewMediaItems'+--+-- * 'bcmirAlbumPosition'+batchCreateMediaItemsRequest+ :: BatchCreateMediaItemsRequest+batchCreateMediaItemsRequest =+ BatchCreateMediaItemsRequest'+ { _bcmirAlbumId = Nothing+ , _bcmirNewMediaItems = Nothing+ , _bcmirAlbumPosition = Nothing+ }++-- | Identifier of the album where the media item(s) will be added. They will+-- also be added to the user\'s library. This is an optional field.+bcmirAlbumId :: Lens' BatchCreateMediaItemsRequest (Maybe Text)+bcmirAlbumId+ = lens _bcmirAlbumId (\ s a -> s{_bcmirAlbumId = a})++-- | List of media items to be created.+bcmirNewMediaItems :: Lens' BatchCreateMediaItemsRequest [NewMediaItem]+bcmirNewMediaItems+ = lens _bcmirNewMediaItems+ (\ s a -> s{_bcmirNewMediaItems = a})+ . _Default+ . _Coerce++-- | Position in the album where the media item(s) will be added. If not+-- specified, the media item(s) will be added to the end of the album (as+-- per the default value which is LAST_IN_ALBUM). The request will fail if+-- this field is present but no album_id is specified.+bcmirAlbumPosition :: Lens' BatchCreateMediaItemsRequest (Maybe AlbumPosition)+bcmirAlbumPosition+ = lens _bcmirAlbumPosition+ (\ s a -> s{_bcmirAlbumPosition = a})++instance FromJSON BatchCreateMediaItemsRequest where+ parseJSON+ = withObject "BatchCreateMediaItemsRequest"+ (\ o ->+ BatchCreateMediaItemsRequest' <$>+ (o .:? "albumId") <*>+ (o .:? "newMediaItems" .!= mempty)+ <*> (o .:? "albumPosition"))++instance ToJSON BatchCreateMediaItemsRequest where+ toJSON BatchCreateMediaItemsRequest'{..}+ = object+ (catMaybes+ [("albumId" .=) <$> _bcmirAlbumId,+ ("newMediaItems" .=) <$> _bcmirNewMediaItems,+ ("albumPosition" .=) <$> _bcmirAlbumPosition])++-- | Filters that can be applied to a media item search. If multiple filter+-- options are specified, they are treated as AND with each other.+--+-- /See:/ 'filters' smart constructor.+data Filters = Filters'+ { _fDateFilter :: !(Maybe DateFilter)+ , _fIncludeArchivedMedia :: !(Maybe Bool)+ , _fMediaTypeFilter :: !(Maybe MediaTypeFilter)+ , _fContentFilter :: !(Maybe ContentFilter)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Filters' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fDateFilter'+--+-- * 'fIncludeArchivedMedia'+--+-- * 'fMediaTypeFilter'+--+-- * 'fContentFilter'+filters+ :: Filters+filters =+ Filters'+ { _fDateFilter = Nothing+ , _fIncludeArchivedMedia = Nothing+ , _fMediaTypeFilter = Nothing+ , _fContentFilter = Nothing+ }++-- | Filters the media items based on their creation date.+fDateFilter :: Lens' Filters (Maybe DateFilter)+fDateFilter+ = lens _fDateFilter (\ s a -> s{_fDateFilter = a})++-- | If set, the results will include media items that the user has archived.+-- Defaults to false (archived media items are not included).+fIncludeArchivedMedia :: Lens' Filters (Maybe Bool)+fIncludeArchivedMedia+ = lens _fIncludeArchivedMedia+ (\ s a -> s{_fIncludeArchivedMedia = a})++-- | Filters the media items based on the type of media.+fMediaTypeFilter :: Lens' Filters (Maybe MediaTypeFilter)+fMediaTypeFilter+ = lens _fMediaTypeFilter+ (\ s a -> s{_fMediaTypeFilter = a})++-- | Filters the media items based on their content.+fContentFilter :: Lens' Filters (Maybe ContentFilter)+fContentFilter+ = lens _fContentFilter+ (\ s a -> s{_fContentFilter = a})++instance FromJSON Filters where+ parseJSON+ = withObject "Filters"+ (\ o ->+ Filters' <$>+ (o .:? "dateFilter") <*>+ (o .:? "includeArchivedMedia")+ <*> (o .:? "mediaTypeFilter")+ <*> (o .:? "contentFilter"))++instance ToJSON Filters where+ toJSON Filters'{..}+ = object+ (catMaybes+ [("dateFilter" .=) <$> _fDateFilter,+ ("includeArchivedMedia" .=) <$>+ _fIncludeArchivedMedia,+ ("mediaTypeFilter" .=) <$> _fMediaTypeFilter,+ ("contentFilter" .=) <$> _fContentFilter])++--+-- /See:/ 'statusDetailsItem' smart constructor.+newtype StatusDetailsItem = StatusDetailsItem'+ { _sdiAddtional :: HashMap Text JSONValue+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'StatusDetailsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdiAddtional'+statusDetailsItem+ :: HashMap Text JSONValue -- ^ 'sdiAddtional'+ -> StatusDetailsItem+statusDetailsItem pSdiAddtional_ =+ StatusDetailsItem'+ { _sdiAddtional = _Coerce # pSdiAddtional_+ }++-- | Properties of the object. Contains field \'type with type URL.+sdiAddtional :: Lens' StatusDetailsItem (HashMap Text JSONValue)+sdiAddtional+ = lens _sdiAddtional (\ s a -> s{_sdiAddtional = a})+ . _Coerce++instance FromJSON StatusDetailsItem where+ parseJSON+ = withObject "StatusDetailsItem"+ (\ o -> StatusDetailsItem' <$> (parseJSONObject o))++instance ToJSON StatusDetailsItem where+ toJSON = toJSON . _sdiAddtional++-- | Defines a range of dates. Both dates must be of the same format (see+-- Date definition for more).+--+-- /See:/ 'dateRange' smart constructor.+data DateRange = DateRange'+ { _drEndDate :: !(Maybe Date)+ , _drStartDate :: !(Maybe Date)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DateRange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drEndDate'+--+-- * 'drStartDate'+dateRange+ :: DateRange+dateRange =+ DateRange'+ { _drEndDate = Nothing+ , _drStartDate = Nothing+ }++-- | The end date (included as part of the range) in the same format as the+-- start date.+drEndDate :: Lens' DateRange (Maybe Date)+drEndDate+ = lens _drEndDate (\ s a -> s{_drEndDate = a})++-- | The start date (included as part of the range) in one of the formats+-- described.+drStartDate :: Lens' DateRange (Maybe Date)+drStartDate+ = lens _drStartDate (\ s a -> s{_drStartDate = a})++instance FromJSON DateRange where+ parseJSON+ = withObject "DateRange"+ (\ o ->+ DateRange' <$>+ (o .:? "endDate") <*> (o .:? "startDate"))++instance ToJSON DateRange where+ toJSON DateRange'{..}+ = object+ (catMaybes+ [("endDate" .=) <$> _drEndDate,+ ("startDate" .=) <$> _drStartDate])++-- | Options that control the sharing of an album.+--+-- /See:/ 'sharedAlbumOptions' smart constructor.+data SharedAlbumOptions = SharedAlbumOptions'+ { _saoIsCollaborative :: !(Maybe Bool)+ , _saoIsCommentable :: !(Maybe Bool)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SharedAlbumOptions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'saoIsCollaborative'+--+-- * 'saoIsCommentable'+sharedAlbumOptions+ :: SharedAlbumOptions+sharedAlbumOptions =+ SharedAlbumOptions'+ { _saoIsCollaborative = Nothing+ , _saoIsCommentable = Nothing+ }++-- | True if the shared album allows collaborators (users who have joined the+-- album) to add media items to it. Defaults to false.+saoIsCollaborative :: Lens' SharedAlbumOptions (Maybe Bool)+saoIsCollaborative+ = lens _saoIsCollaborative+ (\ s a -> s{_saoIsCollaborative = a})++-- | True if the shared album allows the owner and the collaborators (users+-- who have joined the album) to add comments to the album. Defaults to+-- false.+saoIsCommentable :: Lens' SharedAlbumOptions (Maybe Bool)+saoIsCommentable+ = lens _saoIsCommentable+ (\ s a -> s{_saoIsCommentable = a})++instance FromJSON SharedAlbumOptions where+ parseJSON+ = withObject "SharedAlbumOptions"+ (\ o ->+ SharedAlbumOptions' <$>+ (o .:? "isCollaborative") <*>+ (o .:? "isCommentable"))++instance ToJSON SharedAlbumOptions where+ toJSON SharedAlbumOptions'{..}+ = object+ (catMaybes+ [("isCollaborative" .=) <$> _saoIsCollaborative,+ ("isCommentable" .=) <$> _saoIsCommentable])++-- | Metadata for a media item.+--+-- /See:/ 'mediaMetadata' smart constructor.+data MediaMetadata = MediaMetadata'+ { _mmCreationTime :: !(Maybe DateTime')+ , _mmPhoto :: !(Maybe Photo)+ , _mmHeight :: !(Maybe (Textual Int64))+ , _mmWidth :: !(Maybe (Textual Int64))+ , _mmVideo :: !(Maybe Video)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MediaMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mmCreationTime'+--+-- * 'mmPhoto'+--+-- * 'mmHeight'+--+-- * 'mmWidth'+--+-- * 'mmVideo'+mediaMetadata+ :: MediaMetadata+mediaMetadata =+ MediaMetadata'+ { _mmCreationTime = Nothing+ , _mmPhoto = Nothing+ , _mmHeight = Nothing+ , _mmWidth = Nothing+ , _mmVideo = Nothing+ }++-- | Time when the media item was first created (not when it was uploaded to+-- Google Photos).+mmCreationTime :: Lens' MediaMetadata (Maybe UTCTime)+mmCreationTime+ = lens _mmCreationTime+ (\ s a -> s{_mmCreationTime = a})+ . mapping _DateTime++-- | Metadata for a photo media type.+mmPhoto :: Lens' MediaMetadata (Maybe Photo)+mmPhoto = lens _mmPhoto (\ s a -> s{_mmPhoto = a})++-- | Original height (in pixels) of the media item.+mmHeight :: Lens' MediaMetadata (Maybe Int64)+mmHeight+ = lens _mmHeight (\ s a -> s{_mmHeight = a}) .+ mapping _Coerce++-- | Original width (in pixels) of the media item.+mmWidth :: Lens' MediaMetadata (Maybe Int64)+mmWidth+ = lens _mmWidth (\ s a -> s{_mmWidth = a}) .+ mapping _Coerce++-- | Metadata for a video media type.+mmVideo :: Lens' MediaMetadata (Maybe Video)+mmVideo = lens _mmVideo (\ s a -> s{_mmVideo = a})++instance FromJSON MediaMetadata where+ parseJSON+ = withObject "MediaMetadata"+ (\ o ->+ MediaMetadata' <$>+ (o .:? "creationTime") <*> (o .:? "photo") <*>+ (o .:? "height")+ <*> (o .:? "width")+ <*> (o .:? "video"))++instance ToJSON MediaMetadata where+ toJSON MediaMetadata'{..}+ = object+ (catMaybes+ [("creationTime" .=) <$> _mmCreationTime,+ ("photo" .=) <$> _mmPhoto,+ ("height" .=) <$> _mmHeight,+ ("width" .=) <$> _mmWidth,+ ("video" .=) <$> _mmVideo])++--+-- /See:/ 'shareAlbumResponse' smart constructor.+newtype ShareAlbumResponse = ShareAlbumResponse'+ { _sarShareInfo :: Maybe ShareInfo+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ShareAlbumResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sarShareInfo'+shareAlbumResponse+ :: ShareAlbumResponse+shareAlbumResponse =+ ShareAlbumResponse'+ { _sarShareInfo = Nothing+ }++-- | [Output only] Information about the shared album.+sarShareInfo :: Lens' ShareAlbumResponse (Maybe ShareInfo)+sarShareInfo+ = lens _sarShareInfo (\ s a -> s{_sarShareInfo = a})++instance FromJSON ShareAlbumResponse where+ parseJSON+ = withObject "ShareAlbumResponse"+ (\ o -> ShareAlbumResponse' <$> (o .:? "shareInfo"))++instance ToJSON ShareAlbumResponse where+ toJSON ShareAlbumResponse'{..}+ = object+ (catMaybes [("shareInfo" .=) <$> _sarShareInfo])++-- | Metadata that is specific to a video, for example, fps and processing+-- status. Some of these fields may be null or not included.+--+-- /See:/ 'video' smart constructor.+data Video = Video'+ { _vStatus :: !(Maybe VideoStatus)+ , _vCameraMake :: !(Maybe Text)+ , _vCameraModel :: !(Maybe Text)+ , _vFps :: !(Maybe (Textual Double))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Video' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vStatus'+--+-- * 'vCameraMake'+--+-- * 'vCameraModel'+--+-- * 'vFps'+video+ :: Video+video =+ Video'+ { _vStatus = Nothing+ , _vCameraMake = Nothing+ , _vCameraModel = Nothing+ , _vFps = Nothing+ }++-- | Processing status of the video.+vStatus :: Lens' Video (Maybe VideoStatus)+vStatus = lens _vStatus (\ s a -> s{_vStatus = a})++-- | Brand of the camera which took the video.+vCameraMake :: Lens' Video (Maybe Text)+vCameraMake+ = lens _vCameraMake (\ s a -> s{_vCameraMake = a})++-- | Model of the camera which took the video.+vCameraModel :: Lens' Video (Maybe Text)+vCameraModel+ = lens _vCameraModel (\ s a -> s{_vCameraModel = a})++-- | Frame rate of the video.+vFps :: Lens' Video (Maybe Double)+vFps+ = lens _vFps (\ s a -> s{_vFps = a}) .+ mapping _Coerce++instance FromJSON Video where+ parseJSON+ = withObject "Video"+ (\ o ->+ Video' <$>+ (o .:? "status") <*> (o .:? "cameraMake") <*>+ (o .:? "cameraModel")+ <*> (o .:? "fps"))++instance ToJSON Video where+ toJSON Video'{..}+ = object+ (catMaybes+ [("status" .=) <$> _vStatus,+ ("cameraMake" .=) <$> _vCameraMake,+ ("cameraModel" .=) <$> _vCameraModel,+ ("fps" .=) <$> _vFps])++-- | Representation of a media item (e.g. photo, video etc.) in Google+-- Photos.+--+-- /See:/ 'mediaItem' smart constructor.+data MediaItem = MediaItem'+ { _miProductURL :: !(Maybe Text)+ , _miBaseURL :: !(Maybe Text)+ , _miMediaMetadata :: !(Maybe MediaMetadata)+ , _miMimeType :: !(Maybe Text)+ , _miId :: !(Maybe Text)+ , _miContributorInfo :: !(Maybe ContributorInfo)+ , _miDescription :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MediaItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'miProductURL'+--+-- * 'miBaseURL'+--+-- * 'miMediaMetadata'+--+-- * 'miMimeType'+--+-- * 'miId'+--+-- * 'miContributorInfo'+--+-- * 'miDescription'+mediaItem+ :: MediaItem+mediaItem =+ MediaItem'+ { _miProductURL = Nothing+ , _miBaseURL = Nothing+ , _miMediaMetadata = Nothing+ , _miMimeType = Nothing+ , _miId = Nothing+ , _miContributorInfo = Nothing+ , _miDescription = Nothing+ }++-- | Google Photos URL for the media item. This link will only be available+-- to the user if they\'re signed in.+miProductURL :: Lens' MediaItem (Maybe Text)+miProductURL+ = lens _miProductURL (\ s a -> s{_miProductURL = a})++-- | A URL to the media item\'s bytes. This should not be used as is. For+-- example, \'=w2048-h1024\' will set the dimensions of a media item of+-- type photo to have a width of 2048 px and height of 1024 px.+miBaseURL :: Lens' MediaItem (Maybe Text)+miBaseURL+ = lens _miBaseURL (\ s a -> s{_miBaseURL = a})++-- | Metadata related to the media item, for example the height, width or+-- creation time.+miMediaMetadata :: Lens' MediaItem (Maybe MediaMetadata)+miMediaMetadata+ = lens _miMediaMetadata+ (\ s a -> s{_miMediaMetadata = a})++-- | MIME type of the media item.+miMimeType :: Lens' MediaItem (Maybe Text)+miMimeType+ = lens _miMimeType (\ s a -> s{_miMimeType = a})++-- | Identifier for the media item. This is a persistent identifier that can+-- be used between sessions to identify this media item.+miId :: Lens' MediaItem (Maybe Text)+miId = lens _miId (\ s a -> s{_miId = a})++-- | Information about the user who created this media item.+miContributorInfo :: Lens' MediaItem (Maybe ContributorInfo)+miContributorInfo+ = lens _miContributorInfo+ (\ s a -> s{_miContributorInfo = a})++-- | Description of the media item. This is shown to the user in the item\'s+-- info section in the Google Photos app.+miDescription :: Lens' MediaItem (Maybe Text)+miDescription+ = lens _miDescription+ (\ s a -> s{_miDescription = a})++instance FromJSON MediaItem where+ parseJSON+ = withObject "MediaItem"+ (\ o ->+ MediaItem' <$>+ (o .:? "productUrl") <*> (o .:? "baseUrl") <*>+ (o .:? "mediaMetadata")+ <*> (o .:? "mimeType")+ <*> (o .:? "id")+ <*> (o .:? "contributorInfo")+ <*> (o .:? "description"))++instance ToJSON MediaItem where+ toJSON MediaItem'{..}+ = object+ (catMaybes+ [("productUrl" .=) <$> _miProductURL,+ ("baseUrl" .=) <$> _miBaseURL,+ ("mediaMetadata" .=) <$> _miMediaMetadata,+ ("mimeType" .=) <$> _miMimeType, ("id" .=) <$> _miId,+ ("contributorInfo" .=) <$> _miContributorInfo,+ ("description" .=) <$> _miDescription])++-- | Represents a whole calendar date. The day may be 0 to represent a year+-- and month where the day is not significant, e.g. a whole calendar month.+-- The month may be 0 to represent a a day and a year where the month is+-- not signficant, e.g. when you want to specify the same day in every+-- month of a year or a specific year. The year may be 0 to represent a+-- month and day independent of year, e.g. anniversary date.+--+-- /See:/ 'date' smart constructor.+data Date = Date'+ { _dDay :: !(Maybe (Textual Int32))+ , _dYear :: !(Maybe (Textual Int32))+ , _dMonth :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Date' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dDay'+--+-- * 'dYear'+--+-- * 'dMonth'+date+ :: Date+date =+ Date'+ { _dDay = Nothing+ , _dYear = Nothing+ , _dMonth = Nothing+ }++-- | Day of month. Must be from 1 to 31 and valid for the year and month, or+-- 0 if specifying a year\/month where the day is not significant.+dDay :: Lens' Date (Maybe Int32)+dDay+ = lens _dDay (\ s a -> s{_dDay = a}) .+ mapping _Coerce++-- | Year of date. Must be from 1 to 9999, or 0 if specifying a date without+-- a year.+dYear :: Lens' Date (Maybe Int32)+dYear+ = lens _dYear (\ s a -> s{_dYear = a}) .+ mapping _Coerce++-- | Month of year. Must be from 1 to 12, or 0 if specifying a date without a+-- month.+dMonth :: Lens' Date (Maybe Int32)+dMonth+ = lens _dMonth (\ s a -> s{_dMonth = a}) .+ mapping _Coerce++instance FromJSON Date where+ parseJSON+ = withObject "Date"+ (\ o ->+ Date' <$>+ (o .:? "day") <*> (o .:? "year") <*> (o .:? "month"))++instance ToJSON Date where+ toJSON Date'{..}+ = object+ (catMaybes+ [("day" .=) <$> _dDay, ("year" .=) <$> _dYear,+ ("month" .=) <$> _dMonth])++-- | An enrichment item.+--+-- /See:/ 'enrichmentItem' smart constructor.+newtype EnrichmentItem = EnrichmentItem'+ { _eiId :: Maybe Text+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnrichmentItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eiId'+enrichmentItem+ :: EnrichmentItem+enrichmentItem =+ EnrichmentItem'+ { _eiId = Nothing+ }++-- | Identifier of the enrichment item.+eiId :: Lens' EnrichmentItem (Maybe Text)+eiId = lens _eiId (\ s a -> s{_eiId = a})++instance FromJSON EnrichmentItem where+ parseJSON+ = withObject "EnrichmentItem"+ (\ o -> EnrichmentItem' <$> (o .:? "id"))++instance ToJSON EnrichmentItem where+ toJSON EnrichmentItem'{..}+ = object (catMaybes [("id" .=) <$> _eiId])++--+-- /See:/ 'listSharedAlbumsResponse' smart constructor.+data ListSharedAlbumsResponse = ListSharedAlbumsResponse'+ { _lsarNextPageToken :: !(Maybe Text)+ , _lsarSharedAlbums :: !(Maybe [Album])+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListSharedAlbumsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lsarNextPageToken'+--+-- * 'lsarSharedAlbums'+listSharedAlbumsResponse+ :: ListSharedAlbumsResponse+listSharedAlbumsResponse =+ ListSharedAlbumsResponse'+ { _lsarNextPageToken = Nothing+ , _lsarSharedAlbums = Nothing+ }++-- | [Output only] Token to use to get the next set of shared albums.+-- Populated if there are more shared albums to retrieve for this request.+lsarNextPageToken :: Lens' ListSharedAlbumsResponse (Maybe Text)+lsarNextPageToken+ = lens _lsarNextPageToken+ (\ s a -> s{_lsarNextPageToken = a})++-- | [Output only] List of shared albums that were requested.+lsarSharedAlbums :: Lens' ListSharedAlbumsResponse [Album]+lsarSharedAlbums+ = lens _lsarSharedAlbums+ (\ s a -> s{_lsarSharedAlbums = a})+ . _Default+ . _Coerce++instance FromJSON ListSharedAlbumsResponse where+ parseJSON+ = withObject "ListSharedAlbumsResponse"+ (\ o ->+ ListSharedAlbumsResponse' <$>+ (o .:? "nextPageToken") <*>+ (o .:? "sharedAlbums" .!= mempty))++instance ToJSON ListSharedAlbumsResponse where+ toJSON ListSharedAlbumsResponse'{..}+ = object+ (catMaybes+ [("nextPageToken" .=) <$> _lsarNextPageToken,+ ("sharedAlbums" .=) <$> _lsarSharedAlbums])++-- | This filter defines the type of media items to be returned, for example+-- videos or photos. All the specified media types are treated as an OR+-- with each other.+--+-- /See:/ 'mediaTypeFilter' smart constructor.+newtype MediaTypeFilter = MediaTypeFilter'+ { _mtfMediaTypes :: Maybe [Text]+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MediaTypeFilter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mtfMediaTypes'+mediaTypeFilter+ :: MediaTypeFilter+mediaTypeFilter =+ MediaTypeFilter'+ { _mtfMediaTypes = Nothing+ }++-- | The types of media items to be included. This field should only be+-- populated with one media type, multiple media types will result in an+-- error response.+mtfMediaTypes :: Lens' MediaTypeFilter [Text]+mtfMediaTypes+ = lens _mtfMediaTypes+ (\ s a -> s{_mtfMediaTypes = a})+ . _Default+ . _Coerce++instance FromJSON MediaTypeFilter where+ parseJSON+ = withObject "MediaTypeFilter"+ (\ o ->+ MediaTypeFilter' <$> (o .:? "mediaTypes" .!= mempty))++instance ToJSON MediaTypeFilter where+ toJSON MediaTypeFilter'{..}+ = object+ (catMaybes [("mediaTypes" .=) <$> _mtfMediaTypes])++-- | Result of creating a new media item.+--+-- /See:/ 'newMediaItemResult' smart constructor.+data NewMediaItemResult = NewMediaItemResult'+ { _nmirStatus :: !(Maybe Status)+ , _nmirUploadToken :: !(Maybe Text)+ , _nmirMediaItem :: !(Maybe MediaItem)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NewMediaItemResult' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nmirStatus'+--+-- * 'nmirUploadToken'+--+-- * 'nmirMediaItem'+newMediaItemResult+ :: NewMediaItemResult+newMediaItemResult =+ NewMediaItemResult'+ { _nmirStatus = Nothing+ , _nmirUploadToken = Nothing+ , _nmirMediaItem = Nothing+ }++-- | If an error occurred during the creation of this media item, this field+-- will be populated with information related to the error. Details of this+-- status can be found down below.+nmirStatus :: Lens' NewMediaItemResult (Maybe Status)+nmirStatus+ = lens _nmirStatus (\ s a -> s{_nmirStatus = a})++-- | The upload token used to create this new media item.+nmirUploadToken :: Lens' NewMediaItemResult (Maybe Text)+nmirUploadToken+ = lens _nmirUploadToken+ (\ s a -> s{_nmirUploadToken = a})++-- | Media item created with the upload token. It is populated if no errors+-- occurred and the media item was created successfully.+nmirMediaItem :: Lens' NewMediaItemResult (Maybe MediaItem)+nmirMediaItem+ = lens _nmirMediaItem+ (\ s a -> s{_nmirMediaItem = a})++instance FromJSON NewMediaItemResult where+ parseJSON+ = withObject "NewMediaItemResult"+ (\ o ->+ NewMediaItemResult' <$>+ (o .:? "status") <*> (o .:? "uploadToken") <*>+ (o .:? "mediaItem"))++instance ToJSON NewMediaItemResult where+ toJSON NewMediaItemResult'{..}+ = object+ (catMaybes+ [("status" .=) <$> _nmirStatus,+ ("uploadToken" .=) <$> _nmirUploadToken,+ ("mediaItem" .=) <$> _nmirMediaItem])++-- | Representation of an album in Google Photos. Albums are a container for+-- media items. They contain an additional shareInfo property if they have+-- been shared by the application.+--+-- /See:/ 'album' smart constructor.+data Album = Album'+ { _aIsWriteable :: !(Maybe Bool)+ , _aProductURL :: !(Maybe Text)+ , _aShareInfo :: !(Maybe ShareInfo)+ , _aCoverPhotoBaseURL :: !(Maybe Text)+ , _aId :: !(Maybe Text)+ , _aTotalMediaItems :: !(Maybe (Textual Int64))+ , _aTitle :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Album' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aIsWriteable'+--+-- * 'aProductURL'+--+-- * 'aShareInfo'+--+-- * 'aCoverPhotoBaseURL'+--+-- * 'aId'+--+-- * 'aTotalMediaItems'+--+-- * 'aTitle'+album+ :: Album+album =+ Album'+ { _aIsWriteable = Nothing+ , _aProductURL = Nothing+ , _aShareInfo = Nothing+ , _aCoverPhotoBaseURL = Nothing+ , _aId = Nothing+ , _aTotalMediaItems = Nothing+ , _aTitle = Nothing+ }++-- | [Output only] True if media items can be created in the album. This+-- field is based on the scopes granted and permissions of the album. If+-- the scopes are changed or permissions of the album are changed, this+-- field will be updated.+aIsWriteable :: Lens' Album (Maybe Bool)+aIsWriteable+ = lens _aIsWriteable (\ s a -> s{_aIsWriteable = a})++-- | [Output only] Google Photos URL for the album. The user needs to be+-- signed in to their Google Photos account to access this link.+aProductURL :: Lens' Album (Maybe Text)+aProductURL+ = lens _aProductURL (\ s a -> s{_aProductURL = a})++-- | [Output only] Information related to shared albums. This field is only+-- populated if the album is a shared album, the developer created the+-- album and the user has granted photoslibrary.sharing scope.+aShareInfo :: Lens' Album (Maybe ShareInfo)+aShareInfo+ = lens _aShareInfo (\ s a -> s{_aShareInfo = a})++-- | [Output only] A URL to the cover photo\'s bytes. This should not be used+-- as is. Parameters should be appended to this URL before use. For+-- example, \'=w2048-h1024\' will set the dimensions of the cover photo to+-- have a width of 2048 px and height of 1024 px.+aCoverPhotoBaseURL :: Lens' Album (Maybe Text)+aCoverPhotoBaseURL+ = lens _aCoverPhotoBaseURL+ (\ s a -> s{_aCoverPhotoBaseURL = a})++-- | [Ouput only] Identifier for the album. This is a persistent identifier+-- that can be used between sessions to identify this album.+aId :: Lens' Album (Maybe Text)+aId = lens _aId (\ s a -> s{_aId = a})++-- | [Output only] The number of media items in the album+aTotalMediaItems :: Lens' Album (Maybe Int64)+aTotalMediaItems+ = lens _aTotalMediaItems+ (\ s a -> s{_aTotalMediaItems = a})+ . mapping _Coerce++-- | Name of the album displayed to the user in their Google Photos account.+-- This string should not be more than 500 characters.+aTitle :: Lens' Album (Maybe Text)+aTitle = lens _aTitle (\ s a -> s{_aTitle = a})++instance FromJSON Album where+ parseJSON+ = withObject "Album"+ (\ o ->+ Album' <$>+ (o .:? "isWriteable") <*> (o .:? "productUrl") <*>+ (o .:? "shareInfo")+ <*> (o .:? "coverPhotoBaseUrl")+ <*> (o .:? "id")+ <*> (o .:? "totalMediaItems")+ <*> (o .:? "title"))++instance ToJSON Album where+ toJSON Album'{..}+ = object+ (catMaybes+ [("isWriteable" .=) <$> _aIsWriteable,+ ("productUrl" .=) <$> _aProductURL,+ ("shareInfo" .=) <$> _aShareInfo,+ ("coverPhotoBaseUrl" .=) <$> _aCoverPhotoBaseURL,+ ("id" .=) <$> _aId,+ ("totalMediaItems" .=) <$> _aTotalMediaItems,+ ("title" .=) <$> _aTitle])++-- | A simple media item to be created in Google Photos via an upload token.+--+-- /See:/ 'simpleMediaItem' smart constructor.+newtype SimpleMediaItem = SimpleMediaItem'+ { _smiUploadToken :: Maybe Text+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SimpleMediaItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'smiUploadToken'+simpleMediaItem+ :: SimpleMediaItem+simpleMediaItem =+ SimpleMediaItem'+ { _smiUploadToken = Nothing+ }++-- | Token identifying the media bytes which have been uploaded to Google.+smiUploadToken :: Lens' SimpleMediaItem (Maybe Text)+smiUploadToken+ = lens _smiUploadToken+ (\ s a -> s{_smiUploadToken = a})++instance FromJSON SimpleMediaItem where+ parseJSON+ = withObject "SimpleMediaItem"+ (\ o -> SimpleMediaItem' <$> (o .:? "uploadToken"))++instance ToJSON SimpleMediaItem where+ toJSON SimpleMediaItem'{..}+ = object+ (catMaybes [("uploadToken" .=) <$> _smiUploadToken])++-- | Information about a user who contributed the media item. Note that this+-- information is only included if the album containing the media item is+-- shared, was created by you and you have the sharing scope.+--+-- /See:/ 'contributorInfo' smart constructor.+data ContributorInfo = ContributorInfo'+ { _ciProFilePictureBaseURL :: !(Maybe Text)+ , _ciDisplayName :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ContributorInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ciProFilePictureBaseURL'+--+-- * 'ciDisplayName'+contributorInfo+ :: ContributorInfo+contributorInfo =+ ContributorInfo'+ { _ciProFilePictureBaseURL = Nothing+ , _ciDisplayName = Nothing+ }++-- | URL to the profile picture of the contributor.+ciProFilePictureBaseURL :: Lens' ContributorInfo (Maybe Text)+ciProFilePictureBaseURL+ = lens _ciProFilePictureBaseURL+ (\ s a -> s{_ciProFilePictureBaseURL = a})++-- | Display name of the contributor.+ciDisplayName :: Lens' ContributorInfo (Maybe Text)+ciDisplayName+ = lens _ciDisplayName+ (\ s a -> s{_ciDisplayName = a})++instance FromJSON ContributorInfo where+ parseJSON+ = withObject "ContributorInfo"+ (\ o ->+ ContributorInfo' <$>+ (o .:? "profilePictureBaseUrl") <*>+ (o .:? "displayName"))++instance ToJSON ContributorInfo where+ toJSON ContributorInfo'{..}+ = object+ (catMaybes+ [("profilePictureBaseUrl" .=) <$>+ _ciProFilePictureBaseURL,+ ("displayName" .=) <$> _ciDisplayName])++--+-- /See:/ 'listAlbumsResponse' smart constructor.+data ListAlbumsResponse = ListAlbumsResponse'+ { _larNextPageToken :: !(Maybe Text)+ , _larAlbums :: !(Maybe [Album])+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListAlbumsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'larNextPageToken'+--+-- * 'larAlbums'+listAlbumsResponse+ :: ListAlbumsResponse+listAlbumsResponse =+ ListAlbumsResponse'+ { _larNextPageToken = Nothing+ , _larAlbums = Nothing+ }++-- | [Output only] Token to use to get the next set of albums. Populated if+-- there are more albums to retrieve for this request.+larNextPageToken :: Lens' ListAlbumsResponse (Maybe Text)+larNextPageToken+ = lens _larNextPageToken+ (\ s a -> s{_larNextPageToken = a})++-- | [Output only] List of albums that were created by the user.+larAlbums :: Lens' ListAlbumsResponse [Album]+larAlbums+ = lens _larAlbums (\ s a -> s{_larAlbums = a}) .+ _Default+ . _Coerce++instance FromJSON ListAlbumsResponse where+ parseJSON+ = withObject "ListAlbumsResponse"+ (\ o ->+ ListAlbumsResponse' <$>+ (o .:? "nextPageToken") <*>+ (o .:? "albums" .!= mempty))++instance ToJSON ListAlbumsResponse where+ toJSON ListAlbumsResponse'{..}+ = object+ (catMaybes+ [("nextPageToken" .=) <$> _larNextPageToken,+ ("albums" .=) <$> _larAlbums])++-- | An enrichment containing a map, showing origin and destination+-- locations.+--+-- /See:/ 'mapEnrichment' smart constructor.+data MapEnrichment = MapEnrichment'+ { _meDestination :: !(Maybe Location)+ , _meOrigin :: !(Maybe Location)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MapEnrichment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'meDestination'+--+-- * 'meOrigin'+mapEnrichment+ :: MapEnrichment+mapEnrichment =+ MapEnrichment'+ { _meDestination = Nothing+ , _meOrigin = Nothing+ }++-- | Destination location for this enrichemt item.+meDestination :: Lens' MapEnrichment (Maybe Location)+meDestination+ = lens _meDestination+ (\ s a -> s{_meDestination = a})++-- | Origin location for this enrichment item.+meOrigin :: Lens' MapEnrichment (Maybe Location)+meOrigin = lens _meOrigin (\ s a -> s{_meOrigin = a})++instance FromJSON MapEnrichment where+ parseJSON+ = withObject "MapEnrichment"+ (\ o ->+ MapEnrichment' <$>+ (o .:? "destination") <*> (o .:? "origin"))++instance ToJSON MapEnrichment where+ toJSON MapEnrichment'{..}+ = object+ (catMaybes+ [("destination" .=) <$> _meDestination,+ ("origin" .=) <$> _meOrigin])++-- | Request to search for media items in a user\'s library. If the album id+-- is specified, this call will return the list of media items in the+-- album. If neither filters nor album id are specified, this call will+-- return all media items in a user\'s Google Photos library. If filters+-- are specified, this call will return all media items in the user\'s+-- library which fulfills the criteria based upon the filters. Filters and+-- album id must not both be set, as this will result in an invalid+-- request.+--+-- /See:/ 'searchMediaItemsRequest' smart constructor.+data SearchMediaItemsRequest = SearchMediaItemsRequest'+ { _smirAlbumId :: !(Maybe Text)+ , _smirFilters :: !(Maybe Filters)+ , _smirPageToken :: !(Maybe Text)+ , _smirPageSize :: !(Maybe (Textual Int32))+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SearchMediaItemsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'smirAlbumId'+--+-- * 'smirFilters'+--+-- * 'smirPageToken'+--+-- * 'smirPageSize'+searchMediaItemsRequest+ :: SearchMediaItemsRequest+searchMediaItemsRequest =+ SearchMediaItemsRequest'+ { _smirAlbumId = Nothing+ , _smirFilters = Nothing+ , _smirPageToken = Nothing+ , _smirPageSize = Nothing+ }++-- | Identifier of an album. If populated will list all media items in+-- specified album. Cannot be set in conjunction with any filters.+smirAlbumId :: Lens' SearchMediaItemsRequest (Maybe Text)+smirAlbumId+ = lens _smirAlbumId (\ s a -> s{_smirAlbumId = a})++-- | Filters to apply to the request. Cannot be set in conjuction with an+-- albumId.+smirFilters :: Lens' SearchMediaItemsRequest (Maybe Filters)+smirFilters+ = lens _smirFilters (\ s a -> s{_smirFilters = a})++-- | A continuation token to get the next page of the results. Adding this to+-- the request will return the rows after the pageToken. The pageToken+-- should be the value returned in the nextPageToken parameter in the+-- response to the searchMediaItems request.+smirPageToken :: Lens' SearchMediaItemsRequest (Maybe Text)+smirPageToken+ = lens _smirPageToken+ (\ s a -> s{_smirPageToken = a})++-- | Maximum number of media items to return in the response. The default+-- number of media items to return at a time is 100. The maximum page size+-- is 500.+smirPageSize :: Lens' SearchMediaItemsRequest (Maybe Int32)+smirPageSize+ = lens _smirPageSize (\ s a -> s{_smirPageSize = a})+ . mapping _Coerce++instance FromJSON SearchMediaItemsRequest where+ parseJSON+ = withObject "SearchMediaItemsRequest"+ (\ o ->+ SearchMediaItemsRequest' <$>+ (o .:? "albumId") <*> (o .:? "filters") <*>+ (o .:? "pageToken")+ <*> (o .:? "pageSize"))++instance ToJSON SearchMediaItemsRequest where+ toJSON SearchMediaItemsRequest'{..}+ = object+ (catMaybes+ [("albumId" .=) <$> _smirAlbumId,+ ("filters" .=) <$> _smirFilters,+ ("pageToken" .=) <$> _smirPageToken,+ ("pageSize" .=) <$> _smirPageSize])++-- | New media item that will be created in a user\'s Google Photos account.+--+-- /See:/ 'newMediaItem' smart constructor.+data NewMediaItem = NewMediaItem'+ { _nmiSimpleMediaItem :: !(Maybe SimpleMediaItem)+ , _nmiDescription :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NewMediaItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nmiSimpleMediaItem'+--+-- * 'nmiDescription'+newMediaItem+ :: NewMediaItem+newMediaItem =+ NewMediaItem'+ { _nmiSimpleMediaItem = Nothing+ , _nmiDescription = Nothing+ }++-- | A new media item that has been uploaded via the included uploadToken.+nmiSimpleMediaItem :: Lens' NewMediaItem (Maybe SimpleMediaItem)+nmiSimpleMediaItem+ = lens _nmiSimpleMediaItem+ (\ s a -> s{_nmiSimpleMediaItem = a})++-- | Description of the media item. This will be shown to the user in the+-- item\'s info section in the Google Photos app. This string should not be+-- more than 1000 characters.+nmiDescription :: Lens' NewMediaItem (Maybe Text)+nmiDescription+ = lens _nmiDescription+ (\ s a -> s{_nmiDescription = a})++instance FromJSON NewMediaItem where+ parseJSON+ = withObject "NewMediaItem"+ (\ o ->+ NewMediaItem' <$>+ (o .:? "simpleMediaItem") <*> (o .:? "description"))++instance ToJSON NewMediaItem where+ toJSON NewMediaItem'{..}+ = object+ (catMaybes+ [("simpleMediaItem" .=) <$> _nmiSimpleMediaItem,+ ("description" .=) <$> _nmiDescription])++-- | Request to add an enrichment to a specific album at a specific position.+--+-- /See:/ 'addEnrichmentToAlbumRequest' smart constructor.+data AddEnrichmentToAlbumRequest = AddEnrichmentToAlbumRequest'+ { _aetarNewEnrichmentItem :: !(Maybe NewEnrichmentItem)+ , _aetarAlbumPosition :: !(Maybe AlbumPosition)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddEnrichmentToAlbumRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aetarNewEnrichmentItem'+--+-- * 'aetarAlbumPosition'+addEnrichmentToAlbumRequest+ :: AddEnrichmentToAlbumRequest+addEnrichmentToAlbumRequest =+ AddEnrichmentToAlbumRequest'+ { _aetarNewEnrichmentItem = Nothing+ , _aetarAlbumPosition = Nothing+ }++-- | The enrichment to be added.+aetarNewEnrichmentItem :: Lens' AddEnrichmentToAlbumRequest (Maybe NewEnrichmentItem)+aetarNewEnrichmentItem+ = lens _aetarNewEnrichmentItem+ (\ s a -> s{_aetarNewEnrichmentItem = a})++-- | The position where the enrichment will be inserted.+aetarAlbumPosition :: Lens' AddEnrichmentToAlbumRequest (Maybe AlbumPosition)+aetarAlbumPosition+ = lens _aetarAlbumPosition+ (\ s a -> s{_aetarAlbumPosition = a})++instance FromJSON AddEnrichmentToAlbumRequest where+ parseJSON+ = withObject "AddEnrichmentToAlbumRequest"+ (\ o ->+ AddEnrichmentToAlbumRequest' <$>+ (o .:? "newEnrichmentItem") <*>+ (o .:? "albumPosition"))++instance ToJSON AddEnrichmentToAlbumRequest where+ toJSON AddEnrichmentToAlbumRequest'{..}+ = object+ (catMaybes+ [("newEnrichmentItem" .=) <$>+ _aetarNewEnrichmentItem,+ ("albumPosition" .=) <$> _aetarAlbumPosition])++-- | Request to join a shared album on behalf of the user. This uses a+-- shareToken which can be acquired via the shareAlbum or listSharedAlbums+-- calls.+--+-- /See:/ 'joinSharedAlbumRequest' smart constructor.+newtype JoinSharedAlbumRequest = JoinSharedAlbumRequest'+ { _jsarShareToken :: Maybe Text+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'JoinSharedAlbumRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jsarShareToken'+joinSharedAlbumRequest+ :: JoinSharedAlbumRequest+joinSharedAlbumRequest =+ JoinSharedAlbumRequest'+ { _jsarShareToken = Nothing+ }++-- | Token indicating the shared album to join on behalf of the user.+jsarShareToken :: Lens' JoinSharedAlbumRequest (Maybe Text)+jsarShareToken+ = lens _jsarShareToken+ (\ s a -> s{_jsarShareToken = a})++instance FromJSON JoinSharedAlbumRequest where+ parseJSON+ = withObject "JoinSharedAlbumRequest"+ (\ o ->+ JoinSharedAlbumRequest' <$> (o .:? "shareToken"))++instance ToJSON JoinSharedAlbumRequest where+ toJSON JoinSharedAlbumRequest'{..}+ = object+ (catMaybes [("shareToken" .=) <$> _jsarShareToken])++-- | Request to make an album shared in Google Photos.+--+-- /See:/ 'shareAlbumRequest' smart constructor.+newtype ShareAlbumRequest = ShareAlbumRequest'+ { _sarSharedAlbumOptions :: Maybe SharedAlbumOptions+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ShareAlbumRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sarSharedAlbumOptions'+shareAlbumRequest+ :: ShareAlbumRequest+shareAlbumRequest =+ ShareAlbumRequest'+ { _sarSharedAlbumOptions = Nothing+ }++-- | Options to be set when converting the album to a shared album.+sarSharedAlbumOptions :: Lens' ShareAlbumRequest (Maybe SharedAlbumOptions)+sarSharedAlbumOptions+ = lens _sarSharedAlbumOptions+ (\ s a -> s{_sarSharedAlbumOptions = a})++instance FromJSON ShareAlbumRequest where+ parseJSON+ = withObject "ShareAlbumRequest"+ (\ o ->+ ShareAlbumRequest' <$> (o .:? "sharedAlbumOptions"))++instance ToJSON ShareAlbumRequest where+ toJSON ShareAlbumRequest'{..}+ = object+ (catMaybes+ [("sharedAlbumOptions" .=) <$>+ _sarSharedAlbumOptions])++-- | Specifies a position in an album.+--+-- /See:/ 'albumPosition' smart constructor.+data AlbumPosition = AlbumPosition'+ { _apRelativeMediaItemId :: !(Maybe Text)+ , _apRelativeEnrichmentItemId :: !(Maybe Text)+ , _apPosition :: !(Maybe AlbumPositionPosition)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AlbumPosition' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'apRelativeMediaItemId'+--+-- * 'apRelativeEnrichmentItemId'+--+-- * 'apPosition'+albumPosition+ :: AlbumPosition+albumPosition =+ AlbumPosition'+ { _apRelativeMediaItemId = Nothing+ , _apRelativeEnrichmentItemId = Nothing+ , _apPosition = Nothing+ }++-- | The media item to which the position is relative to. Only used when+-- position type is AFTER_MEDIA_ITEM.+apRelativeMediaItemId :: Lens' AlbumPosition (Maybe Text)+apRelativeMediaItemId+ = lens _apRelativeMediaItemId+ (\ s a -> s{_apRelativeMediaItemId = a})++-- | The enrichment item to which the position is relative to. Only used when+-- position type is AFTER_ENRICHMENT_ITEM.+apRelativeEnrichmentItemId :: Lens' AlbumPosition (Maybe Text)+apRelativeEnrichmentItemId+ = lens _apRelativeEnrichmentItemId+ (\ s a -> s{_apRelativeEnrichmentItemId = a})++-- | Type of position, for a media or enrichment item.+apPosition :: Lens' AlbumPosition (Maybe AlbumPositionPosition)+apPosition+ = lens _apPosition (\ s a -> s{_apPosition = a})++instance FromJSON AlbumPosition where+ parseJSON+ = withObject "AlbumPosition"+ (\ o ->+ AlbumPosition' <$>+ (o .:? "relativeMediaItemId") <*>+ (o .:? "relativeEnrichmentItemId")+ <*> (o .:? "position"))++instance ToJSON AlbumPosition where+ toJSON AlbumPosition'{..}+ = object+ (catMaybes+ [("relativeMediaItemId" .=) <$>+ _apRelativeMediaItemId,+ ("relativeEnrichmentItemId" .=) <$>+ _apRelativeEnrichmentItemId,+ ("position" .=) <$> _apPosition])++-- | This filter is used to define which results to return based on the+-- contents of the media item. It is possible to specify a list of+-- categories to include, and\/or a list of categories to exclude. Within+-- each list, the categories are combined with an OR. For example, if the+-- content filter looks like: included_content_categories: [c1, c2, c3] It+-- would get media items that contain (c1 OR c2 OR c3). And if the content+-- filter looks like: excluded_content_categories: [c1, c2, c3] It would+-- get media items that contain NOT (c1 OR c2 OR c3). You can also include+-- some categories while excluding others, as in this proto:+-- included_content_categories: [c1, c2], excluded_content_category: [c3,+-- c4] It would get media items that contain (c1 OR c2) AND NOT (c3 OR c4).+-- A category that appears in 'includedContentategories' must not appear in+-- 'excludedContentCategories'.+--+-- /See:/ 'contentFilter' smart constructor.+data ContentFilter = ContentFilter'+ { _cfIncludedContentCategories :: !(Maybe [Text])+ , _cfExcludedContentCategories :: !(Maybe [Text])+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ContentFilter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cfIncludedContentCategories'+--+-- * 'cfExcludedContentCategories'+contentFilter+ :: ContentFilter+contentFilter =+ ContentFilter'+ { _cfIncludedContentCategories = Nothing+ , _cfExcludedContentCategories = Nothing+ }++-- | The set of categories that must be present in the media items in the+-- result. The items in the set are ORed. There is a maximum of 10+-- includedContentCategories per request.+cfIncludedContentCategories :: Lens' ContentFilter [Text]+cfIncludedContentCategories+ = lens _cfIncludedContentCategories+ (\ s a -> s{_cfIncludedContentCategories = a})+ . _Default+ . _Coerce++-- | The set of categories that must NOT be present in the media items in the+-- result. The items in the set are ORed. There is a maximum of 10+-- excludedContentCategories per request.+cfExcludedContentCategories :: Lens' ContentFilter [Text]+cfExcludedContentCategories+ = lens _cfExcludedContentCategories+ (\ s a -> s{_cfExcludedContentCategories = a})+ . _Default+ . _Coerce++instance FromJSON ContentFilter where+ parseJSON+ = withObject "ContentFilter"+ (\ o ->+ ContentFilter' <$>+ (o .:? "includedContentCategories" .!= mempty) <*>+ (o .:? "excludedContentCategories" .!= mempty))++instance ToJSON ContentFilter where+ toJSON ContentFilter'{..}+ = object+ (catMaybes+ [("includedContentCategories" .=) <$>+ _cfIncludedContentCategories,+ ("excludedContentCategories" .=) <$>+ _cfExcludedContentCategories])++--+-- /See:/ 'batchCreateMediaItemsResponse' smart constructor.+newtype BatchCreateMediaItemsResponse = BatchCreateMediaItemsResponse'+ { _bcmirNewMediaItemResults :: Maybe [NewMediaItemResult]+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchCreateMediaItemsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bcmirNewMediaItemResults'+batchCreateMediaItemsResponse+ :: BatchCreateMediaItemsResponse+batchCreateMediaItemsResponse =+ BatchCreateMediaItemsResponse'+ { _bcmirNewMediaItemResults = Nothing+ }++-- | [Output only] List of media items which were created.+bcmirNewMediaItemResults :: Lens' BatchCreateMediaItemsResponse [NewMediaItemResult]+bcmirNewMediaItemResults+ = lens _bcmirNewMediaItemResults+ (\ s a -> s{_bcmirNewMediaItemResults = a})+ . _Default+ . _Coerce++instance FromJSON BatchCreateMediaItemsResponse where+ parseJSON+ = withObject "BatchCreateMediaItemsResponse"+ (\ o ->+ BatchCreateMediaItemsResponse' <$>+ (o .:? "newMediaItemResults" .!= mempty))++instance ToJSON BatchCreateMediaItemsResponse where+ toJSON BatchCreateMediaItemsResponse'{..}+ = object+ (catMaybes+ [("newMediaItemResults" .=) <$>+ _bcmirNewMediaItemResults])
+ gen/Network/Google/PhotosLibrary/Types/Sum.hs view
@@ -0,0 +1,132 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.PhotosLibrary.Types.Sum+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.PhotosLibrary.Types.Sum where++import Network.Google.Prelude hiding (Bytes)++-- | Processing status of the video.+data VideoStatus+ = Unspecified+ -- ^ @UNSPECIFIED@+ -- Video processing status is unknown.+ | Processing+ -- ^ @PROCESSING@+ -- Video is currently being processed. The user will see an icon for this+ -- video in the Google Photos app, however, it will not be playable yet.+ | Ready+ -- ^ @READY@+ -- Video is now ready for viewing.+ | Failed+ -- ^ @FAILED@+ -- Something has gone wrong and the video has failed to process.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable VideoStatus++instance FromHttpApiData VideoStatus where+ parseQueryParam = \case+ "UNSPECIFIED" -> Right Unspecified+ "PROCESSING" -> Right Processing+ "READY" -> Right Ready+ "FAILED" -> Right Failed+ x -> Left ("Unable to parse VideoStatus from: " <> x)++instance ToHttpApiData VideoStatus where+ toQueryParam = \case+ Unspecified -> "UNSPECIFIED"+ Processing -> "PROCESSING"+ Ready -> "READY"+ Failed -> "FAILED"++instance FromJSON VideoStatus where+ parseJSON = parseJSONText "VideoStatus"++instance ToJSON VideoStatus where+ toJSON = toJSONText++-- | Type of position, for a media or enrichment item.+data AlbumPositionPosition+ = PositionTypeUnspecified+ -- ^ @POSITION_TYPE_UNSPECIFIED@+ -- Default value if this enum is not set.+ | FirstInAlbum+ -- ^ @FIRST_IN_ALBUM@+ -- At the beginning of the album.+ | LastInAlbum+ -- ^ @LAST_IN_ALBUM@+ -- At the end of the album.+ | AfterMediaItem+ -- ^ @AFTER_MEDIA_ITEM@+ -- After a media item.+ | AfterEnrichmentItem+ -- ^ @AFTER_ENRICHMENT_ITEM@+ -- After an enrichment item.+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable AlbumPositionPosition++instance FromHttpApiData AlbumPositionPosition where+ parseQueryParam = \case+ "POSITION_TYPE_UNSPECIFIED" -> Right PositionTypeUnspecified+ "FIRST_IN_ALBUM" -> Right FirstInAlbum+ "LAST_IN_ALBUM" -> Right LastInAlbum+ "AFTER_MEDIA_ITEM" -> Right AfterMediaItem+ "AFTER_ENRICHMENT_ITEM" -> Right AfterEnrichmentItem+ x -> Left ("Unable to parse AlbumPositionPosition from: " <> x)++instance ToHttpApiData AlbumPositionPosition where+ toQueryParam = \case+ PositionTypeUnspecified -> "POSITION_TYPE_UNSPECIFIED"+ FirstInAlbum -> "FIRST_IN_ALBUM"+ LastInAlbum -> "LAST_IN_ALBUM"+ AfterMediaItem -> "AFTER_MEDIA_ITEM"+ AfterEnrichmentItem -> "AFTER_ENRICHMENT_ITEM"++instance FromJSON AlbumPositionPosition where+ parseJSON = parseJSONText "AlbumPositionPosition"++instance ToJSON AlbumPositionPosition where+ toJSON = toJSONText++-- | V1 error format.+data Xgafv+ = X1+ -- ^ @1@+ -- v1 error format+ | X2+ -- ^ @2@+ -- v2 error format+ deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable Xgafv++instance FromHttpApiData Xgafv where+ parseQueryParam = \case+ "1" -> Right X1+ "2" -> Right X2+ x -> Left ("Unable to parse Xgafv from: " <> x)++instance ToHttpApiData Xgafv where+ toQueryParam = \case+ X1 -> "1"+ X2 -> "2"++instance FromJSON Xgafv where+ parseJSON = parseJSONText "Xgafv"++instance ToJSON Xgafv where+ toJSON = toJSONText
+ gen/Network/Google/Resource/PhotosLibrary/Albums/AddEnrichment.hs view
@@ -0,0 +1,187 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.PhotosLibrary.Albums.AddEnrichment+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds an enrichment to a specified position in a defined album.+--+-- /See:/ <https://developers.google.com/photos/ Photos Library API Reference> for @photoslibrary.albums.addEnrichment@.+module Network.Google.Resource.PhotosLibrary.Albums.AddEnrichment+ (+ -- * REST Resource+ AlbumsAddEnrichmentResource++ -- * Creating a Request+ , albumsAddEnrichment+ , AlbumsAddEnrichment++ -- * Request Lenses+ , aaeXgafv+ , aaeAlbumId+ , aaeUploadProtocol+ , aaePp+ , aaeAccessToken+ , aaeUploadType+ , aaePayload+ , aaeBearerToken+ , aaeCallback+ ) where++import Network.Google.PhotosLibrary.Types+import Network.Google.Prelude++-- | A resource alias for @photoslibrary.albums.addEnrichment@ method which the+-- 'AlbumsAddEnrichment' request conforms to.+type AlbumsAddEnrichmentResource =+ "v1" :>+ "albums" :>+ CaptureMode "albumId" "addEnrichment" Text :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "pp" Bool :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "bearer_token" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :>+ ReqBody '[JSON] AddEnrichmentToAlbumRequest :>+ Post '[JSON] AddEnrichmentToAlbumResponse++-- | Adds an enrichment to a specified position in a defined album.+--+-- /See:/ 'albumsAddEnrichment' smart constructor.+data AlbumsAddEnrichment = AlbumsAddEnrichment'+ { _aaeXgafv :: !(Maybe Xgafv)+ , _aaeAlbumId :: !Text+ , _aaeUploadProtocol :: !(Maybe Text)+ , _aaePp :: !Bool+ , _aaeAccessToken :: !(Maybe Text)+ , _aaeUploadType :: !(Maybe Text)+ , _aaePayload :: !AddEnrichmentToAlbumRequest+ , _aaeBearerToken :: !(Maybe Text)+ , _aaeCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AlbumsAddEnrichment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aaeXgafv'+--+-- * 'aaeAlbumId'+--+-- * 'aaeUploadProtocol'+--+-- * 'aaePp'+--+-- * 'aaeAccessToken'+--+-- * 'aaeUploadType'+--+-- * 'aaePayload'+--+-- * 'aaeBearerToken'+--+-- * 'aaeCallback'+albumsAddEnrichment+ :: Text -- ^ 'aaeAlbumId'+ -> AddEnrichmentToAlbumRequest -- ^ 'aaePayload'+ -> AlbumsAddEnrichment+albumsAddEnrichment pAaeAlbumId_ pAaePayload_ =+ AlbumsAddEnrichment'+ { _aaeXgafv = Nothing+ , _aaeAlbumId = pAaeAlbumId_+ , _aaeUploadProtocol = Nothing+ , _aaePp = True+ , _aaeAccessToken = Nothing+ , _aaeUploadType = Nothing+ , _aaePayload = pAaePayload_+ , _aaeBearerToken = Nothing+ , _aaeCallback = Nothing+ }++-- | V1 error format.+aaeXgafv :: Lens' AlbumsAddEnrichment (Maybe Xgafv)+aaeXgafv = lens _aaeXgafv (\ s a -> s{_aaeXgafv = a})++-- | Identifier of the album where the enrichment will be added.+aaeAlbumId :: Lens' AlbumsAddEnrichment Text+aaeAlbumId+ = lens _aaeAlbumId (\ s a -> s{_aaeAlbumId = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+aaeUploadProtocol :: Lens' AlbumsAddEnrichment (Maybe Text)+aaeUploadProtocol+ = lens _aaeUploadProtocol+ (\ s a -> s{_aaeUploadProtocol = a})++-- | Pretty-print response.+aaePp :: Lens' AlbumsAddEnrichment Bool+aaePp = lens _aaePp (\ s a -> s{_aaePp = a})++-- | OAuth access token.+aaeAccessToken :: Lens' AlbumsAddEnrichment (Maybe Text)+aaeAccessToken+ = lens _aaeAccessToken+ (\ s a -> s{_aaeAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+aaeUploadType :: Lens' AlbumsAddEnrichment (Maybe Text)+aaeUploadType+ = lens _aaeUploadType+ (\ s a -> s{_aaeUploadType = a})++-- | Multipart request metadata.+aaePayload :: Lens' AlbumsAddEnrichment AddEnrichmentToAlbumRequest+aaePayload+ = lens _aaePayload (\ s a -> s{_aaePayload = a})++-- | OAuth bearer token.+aaeBearerToken :: Lens' AlbumsAddEnrichment (Maybe Text)+aaeBearerToken+ = lens _aaeBearerToken+ (\ s a -> s{_aaeBearerToken = a})++-- | JSONP+aaeCallback :: Lens' AlbumsAddEnrichment (Maybe Text)+aaeCallback+ = lens _aaeCallback (\ s a -> s{_aaeCallback = a})++instance GoogleRequest AlbumsAddEnrichment where+ type Rs AlbumsAddEnrichment =+ AddEnrichmentToAlbumResponse+ type Scopes AlbumsAddEnrichment =+ '["https://www.googleapis.com/auth/photoslibrary",+ "https://www.googleapis.com/auth/photoslibrary.appendonly",+ "https://www.googleapis.com/auth/photoslibrary.sharing"]+ requestClient AlbumsAddEnrichment'{..}+ = go _aaeAlbumId _aaeXgafv _aaeUploadProtocol+ (Just _aaePp)+ _aaeAccessToken+ _aaeUploadType+ _aaeBearerToken+ _aaeCallback+ (Just AltJSON)+ _aaePayload+ photosLibraryService+ where go+ = buildClient+ (Proxy :: Proxy AlbumsAddEnrichmentResource)+ mempty
+ gen/Network/Google/Resource/PhotosLibrary/Albums/Create.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.PhotosLibrary.Albums.Create+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an album in a user\'s Google Photos library.+--+-- /See:/ <https://developers.google.com/photos/ Photos Library API Reference> for @photoslibrary.albums.create@.+module Network.Google.Resource.PhotosLibrary.Albums.Create+ (+ -- * REST Resource+ AlbumsCreateResource++ -- * Creating a Request+ , albumsCreate+ , AlbumsCreate++ -- * Request Lenses+ , acXgafv+ , acUploadProtocol+ , acPp+ , acAccessToken+ , acUploadType+ , acPayload+ , acBearerToken+ , acCallback+ ) where++import Network.Google.PhotosLibrary.Types+import Network.Google.Prelude++-- | A resource alias for @photoslibrary.albums.create@ method which the+-- 'AlbumsCreate' request conforms to.+type AlbumsCreateResource =+ "v1" :>+ "albums" :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "pp" Bool :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "bearer_token" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :>+ ReqBody '[JSON] CreateAlbumRequest :>+ Post '[JSON] Album++-- | Creates an album in a user\'s Google Photos library.+--+-- /See:/ 'albumsCreate' smart constructor.+data AlbumsCreate = AlbumsCreate'+ { _acXgafv :: !(Maybe Xgafv)+ , _acUploadProtocol :: !(Maybe Text)+ , _acPp :: !Bool+ , _acAccessToken :: !(Maybe Text)+ , _acUploadType :: !(Maybe Text)+ , _acPayload :: !CreateAlbumRequest+ , _acBearerToken :: !(Maybe Text)+ , _acCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AlbumsCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'acXgafv'+--+-- * 'acUploadProtocol'+--+-- * 'acPp'+--+-- * 'acAccessToken'+--+-- * 'acUploadType'+--+-- * 'acPayload'+--+-- * 'acBearerToken'+--+-- * 'acCallback'+albumsCreate+ :: CreateAlbumRequest -- ^ 'acPayload'+ -> AlbumsCreate+albumsCreate pAcPayload_ =+ AlbumsCreate'+ { _acXgafv = Nothing+ , _acUploadProtocol = Nothing+ , _acPp = True+ , _acAccessToken = Nothing+ , _acUploadType = Nothing+ , _acPayload = pAcPayload_+ , _acBearerToken = Nothing+ , _acCallback = Nothing+ }++-- | V1 error format.+acXgafv :: Lens' AlbumsCreate (Maybe Xgafv)+acXgafv = lens _acXgafv (\ s a -> s{_acXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+acUploadProtocol :: Lens' AlbumsCreate (Maybe Text)+acUploadProtocol+ = lens _acUploadProtocol+ (\ s a -> s{_acUploadProtocol = a})++-- | Pretty-print response.+acPp :: Lens' AlbumsCreate Bool+acPp = lens _acPp (\ s a -> s{_acPp = a})++-- | OAuth access token.+acAccessToken :: Lens' AlbumsCreate (Maybe Text)+acAccessToken+ = lens _acAccessToken+ (\ s a -> s{_acAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+acUploadType :: Lens' AlbumsCreate (Maybe Text)+acUploadType+ = lens _acUploadType (\ s a -> s{_acUploadType = a})++-- | Multipart request metadata.+acPayload :: Lens' AlbumsCreate CreateAlbumRequest+acPayload+ = lens _acPayload (\ s a -> s{_acPayload = a})++-- | OAuth bearer token.+acBearerToken :: Lens' AlbumsCreate (Maybe Text)+acBearerToken+ = lens _acBearerToken+ (\ s a -> s{_acBearerToken = a})++-- | JSONP+acCallback :: Lens' AlbumsCreate (Maybe Text)+acCallback+ = lens _acCallback (\ s a -> s{_acCallback = a})++instance GoogleRequest AlbumsCreate where+ type Rs AlbumsCreate = Album+ type Scopes AlbumsCreate =+ '["https://www.googleapis.com/auth/photoslibrary",+ "https://www.googleapis.com/auth/photoslibrary.appendonly",+ "https://www.googleapis.com/auth/photoslibrary.sharing"]+ requestClient AlbumsCreate'{..}+ = go _acXgafv _acUploadProtocol (Just _acPp)+ _acAccessToken+ _acUploadType+ _acBearerToken+ _acCallback+ (Just AltJSON)+ _acPayload+ photosLibraryService+ where go+ = buildClient (Proxy :: Proxy AlbumsCreateResource)+ mempty
+ gen/Network/Google/Resource/PhotosLibrary/Albums/Get.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.PhotosLibrary.Albums.Get+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the album specified by the given album id.+--+-- /See:/ <https://developers.google.com/photos/ Photos Library API Reference> for @photoslibrary.albums.get@.+module Network.Google.Resource.PhotosLibrary.Albums.Get+ (+ -- * REST Resource+ AlbumsGetResource++ -- * Creating a Request+ , albumsGet+ , AlbumsGet++ -- * Request Lenses+ , agXgafv+ , agAlbumId+ , agUploadProtocol+ , agPp+ , agAccessToken+ , agUploadType+ , agBearerToken+ , agCallback+ ) where++import Network.Google.PhotosLibrary.Types+import Network.Google.Prelude++-- | A resource alias for @photoslibrary.albums.get@ method which the+-- 'AlbumsGet' request conforms to.+type AlbumsGetResource =+ "v1" :>+ "albums" :>+ Capture "albumId" Text :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "pp" Bool :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "bearer_token" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :> Get '[JSON] Album++-- | Returns the album specified by the given album id.+--+-- /See:/ 'albumsGet' smart constructor.+data AlbumsGet = AlbumsGet'+ { _agXgafv :: !(Maybe Xgafv)+ , _agAlbumId :: !Text+ , _agUploadProtocol :: !(Maybe Text)+ , _agPp :: !Bool+ , _agAccessToken :: !(Maybe Text)+ , _agUploadType :: !(Maybe Text)+ , _agBearerToken :: !(Maybe Text)+ , _agCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AlbumsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'agXgafv'+--+-- * 'agAlbumId'+--+-- * 'agUploadProtocol'+--+-- * 'agPp'+--+-- * 'agAccessToken'+--+-- * 'agUploadType'+--+-- * 'agBearerToken'+--+-- * 'agCallback'+albumsGet+ :: Text -- ^ 'agAlbumId'+ -> AlbumsGet+albumsGet pAgAlbumId_ =+ AlbumsGet'+ { _agXgafv = Nothing+ , _agAlbumId = pAgAlbumId_+ , _agUploadProtocol = Nothing+ , _agPp = True+ , _agAccessToken = Nothing+ , _agUploadType = Nothing+ , _agBearerToken = Nothing+ , _agCallback = Nothing+ }++-- | V1 error format.+agXgafv :: Lens' AlbumsGet (Maybe Xgafv)+agXgafv = lens _agXgafv (\ s a -> s{_agXgafv = a})++-- | Identifier of the album to be requested.+agAlbumId :: Lens' AlbumsGet Text+agAlbumId+ = lens _agAlbumId (\ s a -> s{_agAlbumId = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+agUploadProtocol :: Lens' AlbumsGet (Maybe Text)+agUploadProtocol+ = lens _agUploadProtocol+ (\ s a -> s{_agUploadProtocol = a})++-- | Pretty-print response.+agPp :: Lens' AlbumsGet Bool+agPp = lens _agPp (\ s a -> s{_agPp = a})++-- | OAuth access token.+agAccessToken :: Lens' AlbumsGet (Maybe Text)+agAccessToken+ = lens _agAccessToken+ (\ s a -> s{_agAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+agUploadType :: Lens' AlbumsGet (Maybe Text)+agUploadType+ = lens _agUploadType (\ s a -> s{_agUploadType = a})++-- | OAuth bearer token.+agBearerToken :: Lens' AlbumsGet (Maybe Text)+agBearerToken+ = lens _agBearerToken+ (\ s a -> s{_agBearerToken = a})++-- | JSONP+agCallback :: Lens' AlbumsGet (Maybe Text)+agCallback+ = lens _agCallback (\ s a -> s{_agCallback = a})++instance GoogleRequest AlbumsGet where+ type Rs AlbumsGet = Album+ type Scopes AlbumsGet =+ '["https://www.googleapis.com/auth/drive.photos.readonly",+ "https://www.googleapis.com/auth/photoslibrary",+ "https://www.googleapis.com/auth/photoslibrary.readonly",+ "https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]+ requestClient AlbumsGet'{..}+ = go _agAlbumId _agXgafv _agUploadProtocol+ (Just _agPp)+ _agAccessToken+ _agUploadType+ _agBearerToken+ _agCallback+ (Just AltJSON)+ photosLibraryService+ where go+ = buildClient (Proxy :: Proxy AlbumsGetResource)+ mempty
+ gen/Network/Google/Resource/PhotosLibrary/Albums/List.hs view
@@ -0,0 +1,190 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.PhotosLibrary.Albums.List+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all albums shown to a user in the \'Albums\' tab of the Google+-- Photos app.+--+-- /See:/ <https://developers.google.com/photos/ Photos Library API Reference> for @photoslibrary.albums.list@.+module Network.Google.Resource.PhotosLibrary.Albums.List+ (+ -- * REST Resource+ AlbumsListResource++ -- * Creating a Request+ , albumsList+ , AlbumsList++ -- * Request Lenses+ , alXgafv+ , alUploadProtocol+ , alPp+ , alAccessToken+ , alUploadType+ , alBearerToken+ , alPageToken+ , alPageSize+ , alCallback+ ) where++import Network.Google.PhotosLibrary.Types+import Network.Google.Prelude++-- | A resource alias for @photoslibrary.albums.list@ method which the+-- 'AlbumsList' request conforms to.+type AlbumsListResource =+ "v1" :>+ "albums" :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "pp" Bool :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "bearer_token" Text :>+ QueryParam "pageToken" Text :>+ QueryParam "pageSize" (Textual Int32) :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :>+ Get '[JSON] ListAlbumsResponse++-- | Lists all albums shown to a user in the \'Albums\' tab of the Google+-- Photos app.+--+-- /See:/ 'albumsList' smart constructor.+data AlbumsList = AlbumsList'+ { _alXgafv :: !(Maybe Xgafv)+ , _alUploadProtocol :: !(Maybe Text)+ , _alPp :: !Bool+ , _alAccessToken :: !(Maybe Text)+ , _alUploadType :: !(Maybe Text)+ , _alBearerToken :: !(Maybe Text)+ , _alPageToken :: !(Maybe Text)+ , _alPageSize :: !(Maybe (Textual Int32))+ , _alCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AlbumsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'alXgafv'+--+-- * 'alUploadProtocol'+--+-- * 'alPp'+--+-- * 'alAccessToken'+--+-- * 'alUploadType'+--+-- * 'alBearerToken'+--+-- * 'alPageToken'+--+-- * 'alPageSize'+--+-- * 'alCallback'+albumsList+ :: AlbumsList+albumsList =+ AlbumsList'+ { _alXgafv = Nothing+ , _alUploadProtocol = Nothing+ , _alPp = True+ , _alAccessToken = Nothing+ , _alUploadType = Nothing+ , _alBearerToken = Nothing+ , _alPageToken = Nothing+ , _alPageSize = Nothing+ , _alCallback = Nothing+ }++-- | V1 error format.+alXgafv :: Lens' AlbumsList (Maybe Xgafv)+alXgafv = lens _alXgafv (\ s a -> s{_alXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+alUploadProtocol :: Lens' AlbumsList (Maybe Text)+alUploadProtocol+ = lens _alUploadProtocol+ (\ s a -> s{_alUploadProtocol = a})++-- | Pretty-print response.+alPp :: Lens' AlbumsList Bool+alPp = lens _alPp (\ s a -> s{_alPp = a})++-- | OAuth access token.+alAccessToken :: Lens' AlbumsList (Maybe Text)+alAccessToken+ = lens _alAccessToken+ (\ s a -> s{_alAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+alUploadType :: Lens' AlbumsList (Maybe Text)+alUploadType+ = lens _alUploadType (\ s a -> s{_alUploadType = a})++-- | OAuth bearer token.+alBearerToken :: Lens' AlbumsList (Maybe Text)+alBearerToken+ = lens _alBearerToken+ (\ s a -> s{_alBearerToken = a})++-- | A continuation token to get the next page of the results. Adding this to+-- the request will return the rows after the pageToken. The pageToken+-- should be the value returned in the nextPageToken parameter in the+-- response to the listAlbums request.+alPageToken :: Lens' AlbumsList (Maybe Text)+alPageToken+ = lens _alPageToken (\ s a -> s{_alPageToken = a})++-- | Maximum number of albums to return in the response. The default number+-- of albums to return at a time is 20. The maximum page size is 50.+alPageSize :: Lens' AlbumsList (Maybe Int32)+alPageSize+ = lens _alPageSize (\ s a -> s{_alPageSize = a}) .+ mapping _Coerce++-- | JSONP+alCallback :: Lens' AlbumsList (Maybe Text)+alCallback+ = lens _alCallback (\ s a -> s{_alCallback = a})++instance GoogleRequest AlbumsList where+ type Rs AlbumsList = ListAlbumsResponse+ type Scopes AlbumsList =+ '["https://www.googleapis.com/auth/drive.photos.readonly",+ "https://www.googleapis.com/auth/photoslibrary",+ "https://www.googleapis.com/auth/photoslibrary.readonly",+ "https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]+ requestClient AlbumsList'{..}+ = go _alXgafv _alUploadProtocol (Just _alPp)+ _alAccessToken+ _alUploadType+ _alBearerToken+ _alPageToken+ _alPageSize+ _alCallback+ (Just AltJSON)+ photosLibraryService+ where go+ = buildClient (Proxy :: Proxy AlbumsListResource)+ mempty
@@ -0,0 +1,187 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.PhotosLibrary.Albums.Share+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Marks an album as \'shared\' and accessible to other users. This action+-- can only be performed on albums which were created by the developer via+-- the API.+--+-- /See:/ <https://developers.google.com/photos/ Photos Library API Reference> for @photoslibrary.albums.share@.+module Network.Google.Resource.PhotosLibrary.Albums.Share+ (+ -- * REST Resource+ AlbumsShareResource++ -- * Creating a Request+ , albumsShare+ , AlbumsShare++ -- * Request Lenses+ , asXgafv+ , asAlbumId+ , asUploadProtocol+ , asPp+ , asAccessToken+ , asUploadType+ , asPayload+ , asBearerToken+ , asCallback+ ) where++import Network.Google.PhotosLibrary.Types+import Network.Google.Prelude++-- | A resource alias for @photoslibrary.albums.share@ method which the+-- 'AlbumsShare' request conforms to.+type AlbumsShareResource =+ "v1" :>+ "albums" :>+ CaptureMode "albumId" "share" Text :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "pp" Bool :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "bearer_token" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :>+ ReqBody '[JSON] ShareAlbumRequest :>+ Post '[JSON] ShareAlbumResponse++-- | Marks an album as \'shared\' and accessible to other users. This action+-- can only be performed on albums which were created by the developer via+-- the API.+--+-- /See:/ 'albumsShare' smart constructor.+data AlbumsShare = AlbumsShare'+ { _asXgafv :: !(Maybe Xgafv)+ , _asAlbumId :: !Text+ , _asUploadProtocol :: !(Maybe Text)+ , _asPp :: !Bool+ , _asAccessToken :: !(Maybe Text)+ , _asUploadType :: !(Maybe Text)+ , _asPayload :: !ShareAlbumRequest+ , _asBearerToken :: !(Maybe Text)+ , _asCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AlbumsShare' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'asXgafv'+--+-- * 'asAlbumId'+--+-- * 'asUploadProtocol'+--+-- * 'asPp'+--+-- * 'asAccessToken'+--+-- * 'asUploadType'+--+-- * 'asPayload'+--+-- * 'asBearerToken'+--+-- * 'asCallback'+albumsShare+ :: Text -- ^ 'asAlbumId'+ -> ShareAlbumRequest -- ^ 'asPayload'+ -> AlbumsShare+albumsShare pAsAlbumId_ pAsPayload_ =+ AlbumsShare'+ { _asXgafv = Nothing+ , _asAlbumId = pAsAlbumId_+ , _asUploadProtocol = Nothing+ , _asPp = True+ , _asAccessToken = Nothing+ , _asUploadType = Nothing+ , _asPayload = pAsPayload_+ , _asBearerToken = Nothing+ , _asCallback = Nothing+ }++-- | V1 error format.+asXgafv :: Lens' AlbumsShare (Maybe Xgafv)+asXgafv = lens _asXgafv (\ s a -> s{_asXgafv = a})++-- | Identifier of the album to be shared. This album id must belong to an+-- album created by the developer. .+asAlbumId :: Lens' AlbumsShare Text+asAlbumId+ = lens _asAlbumId (\ s a -> s{_asAlbumId = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+asUploadProtocol :: Lens' AlbumsShare (Maybe Text)+asUploadProtocol+ = lens _asUploadProtocol+ (\ s a -> s{_asUploadProtocol = a})++-- | Pretty-print response.+asPp :: Lens' AlbumsShare Bool+asPp = lens _asPp (\ s a -> s{_asPp = a})++-- | OAuth access token.+asAccessToken :: Lens' AlbumsShare (Maybe Text)+asAccessToken+ = lens _asAccessToken+ (\ s a -> s{_asAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+asUploadType :: Lens' AlbumsShare (Maybe Text)+asUploadType+ = lens _asUploadType (\ s a -> s{_asUploadType = a})++-- | Multipart request metadata.+asPayload :: Lens' AlbumsShare ShareAlbumRequest+asPayload+ = lens _asPayload (\ s a -> s{_asPayload = a})++-- | OAuth bearer token.+asBearerToken :: Lens' AlbumsShare (Maybe Text)+asBearerToken+ = lens _asBearerToken+ (\ s a -> s{_asBearerToken = a})++-- | JSONP+asCallback :: Lens' AlbumsShare (Maybe Text)+asCallback+ = lens _asCallback (\ s a -> s{_asCallback = a})++instance GoogleRequest AlbumsShare where+ type Rs AlbumsShare = ShareAlbumResponse+ type Scopes AlbumsShare =+ '["https://www.googleapis.com/auth/photoslibrary.sharing"]+ requestClient AlbumsShare'{..}+ = go _asAlbumId _asXgafv _asUploadProtocol+ (Just _asPp)+ _asAccessToken+ _asUploadType+ _asBearerToken+ _asCallback+ (Just AltJSON)+ _asPayload+ photosLibraryService+ where go+ = buildClient (Proxy :: Proxy AlbumsShareResource)+ mempty
+ gen/Network/Google/Resource/PhotosLibrary/MediaItems/BatchCreate.hs view
@@ -0,0 +1,185 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.PhotosLibrary.MediaItems.BatchCreate+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates one or more media items in a user\'s Google Photos library. If+-- an album id is specified, the media item(s) are also added to the album.+-- By default the media item(s) will be added to the end of the library or+-- album. If an album id and position are both defined, then the media+-- items will be added to the album at the specified position. If multiple+-- media items are given, they will be inserted at the specified position.+--+-- /See:/ <https://developers.google.com/photos/ Photos Library API Reference> for @photoslibrary.mediaItems.batchCreate@.+module Network.Google.Resource.PhotosLibrary.MediaItems.BatchCreate+ (+ -- * REST Resource+ MediaItemsBatchCreateResource++ -- * Creating a Request+ , mediaItemsBatchCreate+ , MediaItemsBatchCreate++ -- * Request Lenses+ , mibcXgafv+ , mibcUploadProtocol+ , mibcPp+ , mibcAccessToken+ , mibcUploadType+ , mibcPayload+ , mibcBearerToken+ , mibcCallback+ ) where++import Network.Google.PhotosLibrary.Types+import Network.Google.Prelude++-- | A resource alias for @photoslibrary.mediaItems.batchCreate@ method which the+-- 'MediaItemsBatchCreate' request conforms to.+type MediaItemsBatchCreateResource =+ "v1" :>+ "mediaItems:batchCreate" :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "pp" Bool :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "bearer_token" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :>+ ReqBody '[JSON] BatchCreateMediaItemsRequest :>+ Post '[JSON] BatchCreateMediaItemsResponse++-- | Creates one or more media items in a user\'s Google Photos library. If+-- an album id is specified, the media item(s) are also added to the album.+-- By default the media item(s) will be added to the end of the library or+-- album. If an album id and position are both defined, then the media+-- items will be added to the album at the specified position. If multiple+-- media items are given, they will be inserted at the specified position.+--+-- /See:/ 'mediaItemsBatchCreate' smart constructor.+data MediaItemsBatchCreate = MediaItemsBatchCreate'+ { _mibcXgafv :: !(Maybe Xgafv)+ , _mibcUploadProtocol :: !(Maybe Text)+ , _mibcPp :: !Bool+ , _mibcAccessToken :: !(Maybe Text)+ , _mibcUploadType :: !(Maybe Text)+ , _mibcPayload :: !BatchCreateMediaItemsRequest+ , _mibcBearerToken :: !(Maybe Text)+ , _mibcCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MediaItemsBatchCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mibcXgafv'+--+-- * 'mibcUploadProtocol'+--+-- * 'mibcPp'+--+-- * 'mibcAccessToken'+--+-- * 'mibcUploadType'+--+-- * 'mibcPayload'+--+-- * 'mibcBearerToken'+--+-- * 'mibcCallback'+mediaItemsBatchCreate+ :: BatchCreateMediaItemsRequest -- ^ 'mibcPayload'+ -> MediaItemsBatchCreate+mediaItemsBatchCreate pMibcPayload_ =+ MediaItemsBatchCreate'+ { _mibcXgafv = Nothing+ , _mibcUploadProtocol = Nothing+ , _mibcPp = True+ , _mibcAccessToken = Nothing+ , _mibcUploadType = Nothing+ , _mibcPayload = pMibcPayload_+ , _mibcBearerToken = Nothing+ , _mibcCallback = Nothing+ }++-- | V1 error format.+mibcXgafv :: Lens' MediaItemsBatchCreate (Maybe Xgafv)+mibcXgafv+ = lens _mibcXgafv (\ s a -> s{_mibcXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+mibcUploadProtocol :: Lens' MediaItemsBatchCreate (Maybe Text)+mibcUploadProtocol+ = lens _mibcUploadProtocol+ (\ s a -> s{_mibcUploadProtocol = a})++-- | Pretty-print response.+mibcPp :: Lens' MediaItemsBatchCreate Bool+mibcPp = lens _mibcPp (\ s a -> s{_mibcPp = a})++-- | OAuth access token.+mibcAccessToken :: Lens' MediaItemsBatchCreate (Maybe Text)+mibcAccessToken+ = lens _mibcAccessToken+ (\ s a -> s{_mibcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+mibcUploadType :: Lens' MediaItemsBatchCreate (Maybe Text)+mibcUploadType+ = lens _mibcUploadType+ (\ s a -> s{_mibcUploadType = a})++-- | Multipart request metadata.+mibcPayload :: Lens' MediaItemsBatchCreate BatchCreateMediaItemsRequest+mibcPayload+ = lens _mibcPayload (\ s a -> s{_mibcPayload = a})++-- | OAuth bearer token.+mibcBearerToken :: Lens' MediaItemsBatchCreate (Maybe Text)+mibcBearerToken+ = lens _mibcBearerToken+ (\ s a -> s{_mibcBearerToken = a})++-- | JSONP+mibcCallback :: Lens' MediaItemsBatchCreate (Maybe Text)+mibcCallback+ = lens _mibcCallback (\ s a -> s{_mibcCallback = a})++instance GoogleRequest MediaItemsBatchCreate where+ type Rs MediaItemsBatchCreate =+ BatchCreateMediaItemsResponse+ type Scopes MediaItemsBatchCreate =+ '["https://www.googleapis.com/auth/photoslibrary",+ "https://www.googleapis.com/auth/photoslibrary.appendonly",+ "https://www.googleapis.com/auth/photoslibrary.sharing"]+ requestClient MediaItemsBatchCreate'{..}+ = go _mibcXgafv _mibcUploadProtocol (Just _mibcPp)+ _mibcAccessToken+ _mibcUploadType+ _mibcBearerToken+ _mibcCallback+ (Just AltJSON)+ _mibcPayload+ photosLibraryService+ where go+ = buildClient+ (Proxy :: Proxy MediaItemsBatchCreateResource)+ mempty
+ gen/Network/Google/Resource/PhotosLibrary/MediaItems/Get.hs view
@@ -0,0 +1,173 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.PhotosLibrary.MediaItems.Get+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the media item specified based on a given media item id.+--+-- /See:/ <https://developers.google.com/photos/ Photos Library API Reference> for @photoslibrary.mediaItems.get@.+module Network.Google.Resource.PhotosLibrary.MediaItems.Get+ (+ -- * REST Resource+ MediaItemsGetResource++ -- * Creating a Request+ , mediaItemsGet+ , MediaItemsGet++ -- * Request Lenses+ , migXgafv+ , migUploadProtocol+ , migPp+ , migAccessToken+ , migUploadType+ , migMediaItemId+ , migBearerToken+ , migCallback+ ) where++import Network.Google.PhotosLibrary.Types+import Network.Google.Prelude++-- | A resource alias for @photoslibrary.mediaItems.get@ method which the+-- 'MediaItemsGet' request conforms to.+type MediaItemsGetResource =+ "v1" :>+ "mediaItems" :>+ Capture "mediaItemId" Text :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "pp" Bool :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "bearer_token" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :> Get '[JSON] MediaItem++-- | Returns the media item specified based on a given media item id.+--+-- /See:/ 'mediaItemsGet' smart constructor.+data MediaItemsGet = MediaItemsGet'+ { _migXgafv :: !(Maybe Xgafv)+ , _migUploadProtocol :: !(Maybe Text)+ , _migPp :: !Bool+ , _migAccessToken :: !(Maybe Text)+ , _migUploadType :: !(Maybe Text)+ , _migMediaItemId :: !Text+ , _migBearerToken :: !(Maybe Text)+ , _migCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MediaItemsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'migXgafv'+--+-- * 'migUploadProtocol'+--+-- * 'migPp'+--+-- * 'migAccessToken'+--+-- * 'migUploadType'+--+-- * 'migMediaItemId'+--+-- * 'migBearerToken'+--+-- * 'migCallback'+mediaItemsGet+ :: Text -- ^ 'migMediaItemId'+ -> MediaItemsGet+mediaItemsGet pMigMediaItemId_ =+ MediaItemsGet'+ { _migXgafv = Nothing+ , _migUploadProtocol = Nothing+ , _migPp = True+ , _migAccessToken = Nothing+ , _migUploadType = Nothing+ , _migMediaItemId = pMigMediaItemId_+ , _migBearerToken = Nothing+ , _migCallback = Nothing+ }++-- | V1 error format.+migXgafv :: Lens' MediaItemsGet (Maybe Xgafv)+migXgafv = lens _migXgafv (\ s a -> s{_migXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+migUploadProtocol :: Lens' MediaItemsGet (Maybe Text)+migUploadProtocol+ = lens _migUploadProtocol+ (\ s a -> s{_migUploadProtocol = a})++-- | Pretty-print response.+migPp :: Lens' MediaItemsGet Bool+migPp = lens _migPp (\ s a -> s{_migPp = a})++-- | OAuth access token.+migAccessToken :: Lens' MediaItemsGet (Maybe Text)+migAccessToken+ = lens _migAccessToken+ (\ s a -> s{_migAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+migUploadType :: Lens' MediaItemsGet (Maybe Text)+migUploadType+ = lens _migUploadType+ (\ s a -> s{_migUploadType = a})++-- | Identifier of media item to be requested.+migMediaItemId :: Lens' MediaItemsGet Text+migMediaItemId+ = lens _migMediaItemId+ (\ s a -> s{_migMediaItemId = a})++-- | OAuth bearer token.+migBearerToken :: Lens' MediaItemsGet (Maybe Text)+migBearerToken+ = lens _migBearerToken+ (\ s a -> s{_migBearerToken = a})++-- | JSONP+migCallback :: Lens' MediaItemsGet (Maybe Text)+migCallback+ = lens _migCallback (\ s a -> s{_migCallback = a})++instance GoogleRequest MediaItemsGet where+ type Rs MediaItemsGet = MediaItem+ type Scopes MediaItemsGet =+ '["https://www.googleapis.com/auth/drive.photos.readonly",+ "https://www.googleapis.com/auth/photoslibrary",+ "https://www.googleapis.com/auth/photoslibrary.readonly",+ "https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]+ requestClient MediaItemsGet'{..}+ = go _migMediaItemId _migXgafv _migUploadProtocol+ (Just _migPp)+ _migAccessToken+ _migUploadType+ _migBearerToken+ _migCallback+ (Just AltJSON)+ photosLibraryService+ where go+ = buildClient (Proxy :: Proxy MediaItemsGetResource)+ mempty
+ gen/Network/Google/Resource/PhotosLibrary/MediaItems/Search.hs view
@@ -0,0 +1,184 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.PhotosLibrary.MediaItems.Search+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Searches for media items in a user\'s Google Photos library. If no+-- filters are set, then all media items in the user\'s library will be+-- returned. If an album is set, all media items in the specified album+-- will be returned. If filters are specified, anything that matches the+-- filters from the user\'s library will be listed. If an album and filters+-- are set, then this will result in an error.+--+-- /See:/ <https://developers.google.com/photos/ Photos Library API Reference> for @photoslibrary.mediaItems.search@.+module Network.Google.Resource.PhotosLibrary.MediaItems.Search+ (+ -- * REST Resource+ MediaItemsSearchResource++ -- * Creating a Request+ , mediaItemsSearch+ , MediaItemsSearch++ -- * Request Lenses+ , misXgafv+ , misUploadProtocol+ , misPp+ , misAccessToken+ , misUploadType+ , misPayload+ , misBearerToken+ , misCallback+ ) where++import Network.Google.PhotosLibrary.Types+import Network.Google.Prelude++-- | A resource alias for @photoslibrary.mediaItems.search@ method which the+-- 'MediaItemsSearch' request conforms to.+type MediaItemsSearchResource =+ "v1" :>+ "mediaItems:search" :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "pp" Bool :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "bearer_token" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :>+ ReqBody '[JSON] SearchMediaItemsRequest :>+ Post '[JSON] SearchMediaItemsResponse++-- | Searches for media items in a user\'s Google Photos library. If no+-- filters are set, then all media items in the user\'s library will be+-- returned. If an album is set, all media items in the specified album+-- will be returned. If filters are specified, anything that matches the+-- filters from the user\'s library will be listed. If an album and filters+-- are set, then this will result in an error.+--+-- /See:/ 'mediaItemsSearch' smart constructor.+data MediaItemsSearch = MediaItemsSearch'+ { _misXgafv :: !(Maybe Xgafv)+ , _misUploadProtocol :: !(Maybe Text)+ , _misPp :: !Bool+ , _misAccessToken :: !(Maybe Text)+ , _misUploadType :: !(Maybe Text)+ , _misPayload :: !SearchMediaItemsRequest+ , _misBearerToken :: !(Maybe Text)+ , _misCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MediaItemsSearch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'misXgafv'+--+-- * 'misUploadProtocol'+--+-- * 'misPp'+--+-- * 'misAccessToken'+--+-- * 'misUploadType'+--+-- * 'misPayload'+--+-- * 'misBearerToken'+--+-- * 'misCallback'+mediaItemsSearch+ :: SearchMediaItemsRequest -- ^ 'misPayload'+ -> MediaItemsSearch+mediaItemsSearch pMisPayload_ =+ MediaItemsSearch'+ { _misXgafv = Nothing+ , _misUploadProtocol = Nothing+ , _misPp = True+ , _misAccessToken = Nothing+ , _misUploadType = Nothing+ , _misPayload = pMisPayload_+ , _misBearerToken = Nothing+ , _misCallback = Nothing+ }++-- | V1 error format.+misXgafv :: Lens' MediaItemsSearch (Maybe Xgafv)+misXgafv = lens _misXgafv (\ s a -> s{_misXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+misUploadProtocol :: Lens' MediaItemsSearch (Maybe Text)+misUploadProtocol+ = lens _misUploadProtocol+ (\ s a -> s{_misUploadProtocol = a})++-- | Pretty-print response.+misPp :: Lens' MediaItemsSearch Bool+misPp = lens _misPp (\ s a -> s{_misPp = a})++-- | OAuth access token.+misAccessToken :: Lens' MediaItemsSearch (Maybe Text)+misAccessToken+ = lens _misAccessToken+ (\ s a -> s{_misAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+misUploadType :: Lens' MediaItemsSearch (Maybe Text)+misUploadType+ = lens _misUploadType+ (\ s a -> s{_misUploadType = a})++-- | Multipart request metadata.+misPayload :: Lens' MediaItemsSearch SearchMediaItemsRequest+misPayload+ = lens _misPayload (\ s a -> s{_misPayload = a})++-- | OAuth bearer token.+misBearerToken :: Lens' MediaItemsSearch (Maybe Text)+misBearerToken+ = lens _misBearerToken+ (\ s a -> s{_misBearerToken = a})++-- | JSONP+misCallback :: Lens' MediaItemsSearch (Maybe Text)+misCallback+ = lens _misCallback (\ s a -> s{_misCallback = a})++instance GoogleRequest MediaItemsSearch where+ type Rs MediaItemsSearch = SearchMediaItemsResponse+ type Scopes MediaItemsSearch =+ '["https://www.googleapis.com/auth/drive.photos.readonly",+ "https://www.googleapis.com/auth/photoslibrary",+ "https://www.googleapis.com/auth/photoslibrary.readonly",+ "https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]+ requestClient MediaItemsSearch'{..}+ = go _misXgafv _misUploadProtocol (Just _misPp)+ _misAccessToken+ _misUploadType+ _misBearerToken+ _misCallback+ (Just AltJSON)+ _misPayload+ photosLibraryService+ where go+ = buildClient+ (Proxy :: Proxy MediaItemsSearchResource)+ mempty
@@ -0,0 +1,171 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.PhotosLibrary.SharedAlbums.Join+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Joins a shared album on behalf of the Google Photos user.+--+-- /See:/ <https://developers.google.com/photos/ Photos Library API Reference> for @photoslibrary.sharedAlbums.join@.+module Network.Google.Resource.PhotosLibrary.SharedAlbums.Join+ (+ -- * REST Resource+ SharedAlbumsJoinResource++ -- * Creating a Request+ , sharedAlbumsJoin+ , SharedAlbumsJoin++ -- * Request Lenses+ , sajXgafv+ , sajUploadProtocol+ , sajPp+ , sajAccessToken+ , sajUploadType+ , sajPayload+ , sajBearerToken+ , sajCallback+ ) where++import Network.Google.PhotosLibrary.Types+import Network.Google.Prelude++-- | A resource alias for @photoslibrary.sharedAlbums.join@ method which the+-- 'SharedAlbumsJoin' request conforms to.+type SharedAlbumsJoinResource =+ "v1" :>+ "sharedAlbums:join" :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "pp" Bool :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "bearer_token" Text :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :>+ ReqBody '[JSON] JoinSharedAlbumRequest :>+ Post '[JSON] JoinSharedAlbumResponse++-- | Joins a shared album on behalf of the Google Photos user.+--+-- /See:/ 'sharedAlbumsJoin' smart constructor.+data SharedAlbumsJoin = SharedAlbumsJoin'+ { _sajXgafv :: !(Maybe Xgafv)+ , _sajUploadProtocol :: !(Maybe Text)+ , _sajPp :: !Bool+ , _sajAccessToken :: !(Maybe Text)+ , _sajUploadType :: !(Maybe Text)+ , _sajPayload :: !JoinSharedAlbumRequest+ , _sajBearerToken :: !(Maybe Text)+ , _sajCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SharedAlbumsJoin' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sajXgafv'+--+-- * 'sajUploadProtocol'+--+-- * 'sajPp'+--+-- * 'sajAccessToken'+--+-- * 'sajUploadType'+--+-- * 'sajPayload'+--+-- * 'sajBearerToken'+--+-- * 'sajCallback'+sharedAlbumsJoin+ :: JoinSharedAlbumRequest -- ^ 'sajPayload'+ -> SharedAlbumsJoin+sharedAlbumsJoin pSajPayload_ =+ SharedAlbumsJoin'+ { _sajXgafv = Nothing+ , _sajUploadProtocol = Nothing+ , _sajPp = True+ , _sajAccessToken = Nothing+ , _sajUploadType = Nothing+ , _sajPayload = pSajPayload_+ , _sajBearerToken = Nothing+ , _sajCallback = Nothing+ }++-- | V1 error format.+sajXgafv :: Lens' SharedAlbumsJoin (Maybe Xgafv)+sajXgafv = lens _sajXgafv (\ s a -> s{_sajXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+sajUploadProtocol :: Lens' SharedAlbumsJoin (Maybe Text)+sajUploadProtocol+ = lens _sajUploadProtocol+ (\ s a -> s{_sajUploadProtocol = a})++-- | Pretty-print response.+sajPp :: Lens' SharedAlbumsJoin Bool+sajPp = lens _sajPp (\ s a -> s{_sajPp = a})++-- | OAuth access token.+sajAccessToken :: Lens' SharedAlbumsJoin (Maybe Text)+sajAccessToken+ = lens _sajAccessToken+ (\ s a -> s{_sajAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+sajUploadType :: Lens' SharedAlbumsJoin (Maybe Text)+sajUploadType+ = lens _sajUploadType+ (\ s a -> s{_sajUploadType = a})++-- | Multipart request metadata.+sajPayload :: Lens' SharedAlbumsJoin JoinSharedAlbumRequest+sajPayload+ = lens _sajPayload (\ s a -> s{_sajPayload = a})++-- | OAuth bearer token.+sajBearerToken :: Lens' SharedAlbumsJoin (Maybe Text)+sajBearerToken+ = lens _sajBearerToken+ (\ s a -> s{_sajBearerToken = a})++-- | JSONP+sajCallback :: Lens' SharedAlbumsJoin (Maybe Text)+sajCallback+ = lens _sajCallback (\ s a -> s{_sajCallback = a})++instance GoogleRequest SharedAlbumsJoin where+ type Rs SharedAlbumsJoin = JoinSharedAlbumResponse+ type Scopes SharedAlbumsJoin =+ '["https://www.googleapis.com/auth/photoslibrary.sharing"]+ requestClient SharedAlbumsJoin'{..}+ = go _sajXgafv _sajUploadProtocol (Just _sajPp)+ _sajAccessToken+ _sajUploadType+ _sajBearerToken+ _sajCallback+ (Just AltJSON)+ _sajPayload+ photosLibraryService+ where go+ = buildClient+ (Proxy :: Proxy SharedAlbumsJoinResource)+ mempty
@@ -0,0 +1,192 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Network.Google.Resource.PhotosLibrary.SharedAlbums.List+-- Copyright : (c) 2015-2016 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all shared albums shown to a user in the \'Sharing\' tab of the+-- Google Photos app.+--+-- /See:/ <https://developers.google.com/photos/ Photos Library API Reference> for @photoslibrary.sharedAlbums.list@.+module Network.Google.Resource.PhotosLibrary.SharedAlbums.List+ (+ -- * REST Resource+ SharedAlbumsListResource++ -- * Creating a Request+ , sharedAlbumsList+ , SharedAlbumsList++ -- * Request Lenses+ , salXgafv+ , salUploadProtocol+ , salPp+ , salAccessToken+ , salUploadType+ , salBearerToken+ , salPageToken+ , salPageSize+ , salCallback+ ) where++import Network.Google.PhotosLibrary.Types+import Network.Google.Prelude++-- | A resource alias for @photoslibrary.sharedAlbums.list@ method which the+-- 'SharedAlbumsList' request conforms to.+type SharedAlbumsListResource =+ "v1" :>+ "sharedAlbums" :>+ QueryParam "$.xgafv" Xgafv :>+ QueryParam "upload_protocol" Text :>+ QueryParam "pp" Bool :>+ QueryParam "access_token" Text :>+ QueryParam "uploadType" Text :>+ QueryParam "bearer_token" Text :>+ QueryParam "pageToken" Text :>+ QueryParam "pageSize" (Textual Int32) :>+ QueryParam "callback" Text :>+ QueryParam "alt" AltJSON :>+ Get '[JSON] ListSharedAlbumsResponse++-- | Lists all shared albums shown to a user in the \'Sharing\' tab of the+-- Google Photos app.+--+-- /See:/ 'sharedAlbumsList' smart constructor.+data SharedAlbumsList = SharedAlbumsList'+ { _salXgafv :: !(Maybe Xgafv)+ , _salUploadProtocol :: !(Maybe Text)+ , _salPp :: !Bool+ , _salAccessToken :: !(Maybe Text)+ , _salUploadType :: !(Maybe Text)+ , _salBearerToken :: !(Maybe Text)+ , _salPageToken :: !(Maybe Text)+ , _salPageSize :: !(Maybe (Textual Int32))+ , _salCallback :: !(Maybe Text)+ } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SharedAlbumsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'salXgafv'+--+-- * 'salUploadProtocol'+--+-- * 'salPp'+--+-- * 'salAccessToken'+--+-- * 'salUploadType'+--+-- * 'salBearerToken'+--+-- * 'salPageToken'+--+-- * 'salPageSize'+--+-- * 'salCallback'+sharedAlbumsList+ :: SharedAlbumsList+sharedAlbumsList =+ SharedAlbumsList'+ { _salXgafv = Nothing+ , _salUploadProtocol = Nothing+ , _salPp = True+ , _salAccessToken = Nothing+ , _salUploadType = Nothing+ , _salBearerToken = Nothing+ , _salPageToken = Nothing+ , _salPageSize = Nothing+ , _salCallback = Nothing+ }++-- | V1 error format.+salXgafv :: Lens' SharedAlbumsList (Maybe Xgafv)+salXgafv = lens _salXgafv (\ s a -> s{_salXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+salUploadProtocol :: Lens' SharedAlbumsList (Maybe Text)+salUploadProtocol+ = lens _salUploadProtocol+ (\ s a -> s{_salUploadProtocol = a})++-- | Pretty-print response.+salPp :: Lens' SharedAlbumsList Bool+salPp = lens _salPp (\ s a -> s{_salPp = a})++-- | OAuth access token.+salAccessToken :: Lens' SharedAlbumsList (Maybe Text)+salAccessToken+ = lens _salAccessToken+ (\ s a -> s{_salAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+salUploadType :: Lens' SharedAlbumsList (Maybe Text)+salUploadType+ = lens _salUploadType+ (\ s a -> s{_salUploadType = a})++-- | OAuth bearer token.+salBearerToken :: Lens' SharedAlbumsList (Maybe Text)+salBearerToken+ = lens _salBearerToken+ (\ s a -> s{_salBearerToken = a})++-- | A continuation token to get the next page of the results. Adding this to+-- the request will return the rows after the pageToken. The pageToken+-- should be the value returned in the nextPageToken parameter in the+-- response to the listSharedAlbums request.+salPageToken :: Lens' SharedAlbumsList (Maybe Text)+salPageToken+ = lens _salPageToken (\ s a -> s{_salPageToken = a})++-- | Maximum number of albums to return in the response. The default number+-- of albums to return at a time is 20. The maximum page size is 50.+salPageSize :: Lens' SharedAlbumsList (Maybe Int32)+salPageSize+ = lens _salPageSize (\ s a -> s{_salPageSize = a}) .+ mapping _Coerce++-- | JSONP+salCallback :: Lens' SharedAlbumsList (Maybe Text)+salCallback+ = lens _salCallback (\ s a -> s{_salCallback = a})++instance GoogleRequest SharedAlbumsList where+ type Rs SharedAlbumsList = ListSharedAlbumsResponse+ type Scopes SharedAlbumsList =+ '["https://www.googleapis.com/auth/drive.photos.readonly",+ "https://www.googleapis.com/auth/photoslibrary",+ "https://www.googleapis.com/auth/photoslibrary.readonly",+ "https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"]+ requestClient SharedAlbumsList'{..}+ = go _salXgafv _salUploadProtocol (Just _salPp)+ _salAccessToken+ _salUploadType+ _salBearerToken+ _salPageToken+ _salPageSize+ _salCallback+ (Just AltJSON)+ photosLibraryService+ where go+ = buildClient+ (Proxy :: Proxy SharedAlbumsListResource)+ mempty
+ gogol-photoslibrary.cabal view
@@ -0,0 +1,55 @@+name: gogol-photoslibrary+version: 0.4.0+synopsis: Google Photos Library SDK.+homepage: https://github.com/brendanhay/gogol+bug-reports: https://github.com/brendanhay/gogol/issues+license: OtherLicense+license-file: LICENSE+author: Brendan Hay+maintainer: Brendan Hay <brendan.g.hay@gmail.com>+copyright: Copyright (c) 2015-2016 Brendan Hay+category: Network, Google, Cloud+build-type: Simple+cabal-version: >= 1.10+extra-source-files: README.md src/.gitkeep++description:+ Manage photos, videos, and albums in Google Photos+ .+ /Warning:/ This is an experimental prototype/preview release which is still+ under exploratory development and not intended for public use, caveat emptor!+ .+ This library is compatible with version @v1@+ of the API.++source-repository head+ type: git+ location: git://github.com/brendanhay/gogol.git++library+ default-language: Haskell2010+ hs-source-dirs: src gen++ ghc-options: -Wall++ exposed-modules:+ Network.Google.PhotosLibrary+ , Network.Google.PhotosLibrary.Types+ , Network.Google.Resource.PhotosLibrary.Albums.AddEnrichment+ , Network.Google.Resource.PhotosLibrary.Albums.Create+ , Network.Google.Resource.PhotosLibrary.Albums.Get+ , Network.Google.Resource.PhotosLibrary.Albums.List+ , Network.Google.Resource.PhotosLibrary.Albums.Share+ , Network.Google.Resource.PhotosLibrary.MediaItems.BatchCreate+ , Network.Google.Resource.PhotosLibrary.MediaItems.Get+ , Network.Google.Resource.PhotosLibrary.MediaItems.Search+ , Network.Google.Resource.PhotosLibrary.SharedAlbums.Join+ , Network.Google.Resource.PhotosLibrary.SharedAlbums.List++ other-modules:+ Network.Google.PhotosLibrary.Types.Product+ , Network.Google.PhotosLibrary.Types.Sum++ build-depends:+ gogol-core == 0.4.0.*+ , base >= 4.7 && < 5
+ src/.gitkeep view