packages feed

gogol-drive (empty) → 0.0.1

raw patch · 68 files changed

+14158/−0 lines, 68 filesdep +basedep +gogol-coresetup-changed

Dependencies added: base, gogol-core

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,28 @@+# gogol-drive++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.0.1`+++## Description++A client library for the Google Drive.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.+++## Licence++`gogol-drive` 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/Drive.hs view
@@ -0,0 +1,855 @@+{-# LANGUAGE DataKinds         #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators     #-}++{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module      : Network.Google.Drive+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The API to interact with Drive.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference>+module Network.Google.Drive+    (+    -- * Service Configuration+      driveService++    -- * API Declaration+    , DriveAPI++    -- * Resources++    -- ** drive.about.get+    , module Network.Google.Resource.Drive.About.Get++    -- ** drive.apps.get+    , module Network.Google.Resource.Drive.Apps.Get++    -- ** drive.apps.list+    , module Network.Google.Resource.Drive.Apps.List++    -- ** drive.changes.get+    , module Network.Google.Resource.Drive.Changes.Get++    -- ** drive.changes.list+    , module Network.Google.Resource.Drive.Changes.List++    -- ** drive.changes.watch+    , module Network.Google.Resource.Drive.Changes.Watch++    -- ** drive.channels.stop+    , module Network.Google.Resource.Drive.Channels.Stop++    -- ** drive.children.delete+    , module Network.Google.Resource.Drive.Children.Delete++    -- ** drive.children.get+    , module Network.Google.Resource.Drive.Children.Get++    -- ** drive.children.insert+    , module Network.Google.Resource.Drive.Children.Insert++    -- ** drive.children.list+    , module Network.Google.Resource.Drive.Children.List++    -- ** drive.comments.delete+    , module Network.Google.Resource.Drive.Comments.Delete++    -- ** drive.comments.get+    , module Network.Google.Resource.Drive.Comments.Get++    -- ** drive.comments.insert+    , module Network.Google.Resource.Drive.Comments.Insert++    -- ** drive.comments.list+    , module Network.Google.Resource.Drive.Comments.List++    -- ** drive.comments.patch+    , module Network.Google.Resource.Drive.Comments.Patch++    -- ** drive.comments.update+    , module Network.Google.Resource.Drive.Comments.Update++    -- ** drive.files.copy+    , module Network.Google.Resource.Drive.Files.Copy++    -- ** drive.files.delete+    , module Network.Google.Resource.Drive.Files.Delete++    -- ** drive.files.emptyTrash+    , module Network.Google.Resource.Drive.Files.EmptyTrash++    -- ** drive.files.generateIds+    , module Network.Google.Resource.Drive.Files.GenerateIds++    -- ** drive.files.get+    , module Network.Google.Resource.Drive.Files.Get++    -- ** drive.files.insert+    , module Network.Google.Resource.Drive.Files.Insert++    -- ** drive.files.list+    , module Network.Google.Resource.Drive.Files.List++    -- ** drive.files.patch+    , module Network.Google.Resource.Drive.Files.Patch++    -- ** drive.files.touch+    , module Network.Google.Resource.Drive.Files.Touch++    -- ** drive.files.trash+    , module Network.Google.Resource.Drive.Files.Trash++    -- ** drive.files.untrash+    , module Network.Google.Resource.Drive.Files.Untrash++    -- ** drive.files.update+    , module Network.Google.Resource.Drive.Files.Update++    -- ** drive.files.watch+    , module Network.Google.Resource.Drive.Files.Watch++    -- ** drive.parents.delete+    , module Network.Google.Resource.Drive.Parents.Delete++    -- ** drive.parents.get+    , module Network.Google.Resource.Drive.Parents.Get++    -- ** drive.parents.insert+    , module Network.Google.Resource.Drive.Parents.Insert++    -- ** drive.parents.list+    , module Network.Google.Resource.Drive.Parents.List++    -- ** drive.permissions.delete+    , module Network.Google.Resource.Drive.Permissions.Delete++    -- ** drive.permissions.get+    , module Network.Google.Resource.Drive.Permissions.Get++    -- ** drive.permissions.getIdForEmail+    , module Network.Google.Resource.Drive.Permissions.GetIdForEmail++    -- ** drive.permissions.insert+    , module Network.Google.Resource.Drive.Permissions.Insert++    -- ** drive.permissions.list+    , module Network.Google.Resource.Drive.Permissions.List++    -- ** drive.permissions.patch+    , module Network.Google.Resource.Drive.Permissions.Patch++    -- ** drive.permissions.update+    , module Network.Google.Resource.Drive.Permissions.Update++    -- ** drive.properties.delete+    , module Network.Google.Resource.Drive.Properties.Delete++    -- ** drive.properties.get+    , module Network.Google.Resource.Drive.Properties.Get++    -- ** drive.properties.insert+    , module Network.Google.Resource.Drive.Properties.Insert++    -- ** drive.properties.list+    , module Network.Google.Resource.Drive.Properties.List++    -- ** drive.properties.patch+    , module Network.Google.Resource.Drive.Properties.Patch++    -- ** drive.properties.update+    , module Network.Google.Resource.Drive.Properties.Update++    -- ** drive.realtime.get+    , module Network.Google.Resource.Drive.Realtime.Get++    -- ** drive.realtime.update+    , module Network.Google.Resource.Drive.Realtime.Update++    -- ** drive.replies.delete+    , module Network.Google.Resource.Drive.Replies.Delete++    -- ** drive.replies.get+    , module Network.Google.Resource.Drive.Replies.Get++    -- ** drive.replies.insert+    , module Network.Google.Resource.Drive.Replies.Insert++    -- ** drive.replies.list+    , module Network.Google.Resource.Drive.Replies.List++    -- ** drive.replies.patch+    , module Network.Google.Resource.Drive.Replies.Patch++    -- ** drive.replies.update+    , module Network.Google.Resource.Drive.Replies.Update++    -- ** drive.revisions.delete+    , module Network.Google.Resource.Drive.Revisions.Delete++    -- ** drive.revisions.get+    , module Network.Google.Resource.Drive.Revisions.Get++    -- ** drive.revisions.list+    , module Network.Google.Resource.Drive.Revisions.List++    -- ** drive.revisions.patch+    , module Network.Google.Resource.Drive.Revisions.Patch++    -- ** drive.revisions.update+    , module Network.Google.Resource.Drive.Revisions.Update++    -- * Types++    -- ** CommentContext+    , CommentContext+    , commentContext+    , ccValue+    , ccType++    -- ** AppIconsItem+    , AppIconsItem+    , appIconsItem+    , aiiSize+    , aiiCategory+    , aiiIconURL++    -- ** FilesInsertVisibility+    , FilesInsertVisibility (..)++    -- ** FileList+    , FileList+    , fileList+    , flEtag+    , flNextPageToken+    , flNextLink+    , flKind+    , flItems+    , flSelfLink++    -- ** ParentReference+    , ParentReference+    , parentReference+    , prParentLink+    , prIsRoot+    , prKind+    , prSelfLink+    , prId++    -- ** Property+    , Property+    , property+    , pEtag+    , pKind+    , pValue+    , pVisibility+    , pSelfLink+    , pKey++    -- ** FilesListCorpus+    , FilesListCorpus (..)++    -- ** FileThumbnail+    , FileThumbnail+    , fileThumbnail+    , ftImage+    , ftMimeType++    -- ** FilesListProjection+    , FilesListProjection (..)++    -- ** UserPicture+    , UserPicture+    , userPicture+    , upURL++    -- ** FilesUpdateModifiedDateBehavior+    , FilesUpdateModifiedDateBehavior (..)++    -- ** PropertyList+    , PropertyList+    , propertyList+    , plEtag+    , plKind+    , plItems+    , plSelfLink++    -- ** ChildList+    , ChildList+    , childList+    , clEtag+    , clNextPageToken+    , clNextLink+    , clKind+    , clItems+    , clSelfLink++    -- ** AppList+    , AppList+    , appList+    , alDefaultAppIds+    , alEtag+    , alKind+    , alItems+    , alSelfLink++    -- ** FileOpenWithLinks+    , FileOpenWithLinks+    , fileOpenWithLinks+    , fowlAddtional++    -- ** AboutAdditionalRoleInfoItemRoleSetsItem+    , AboutAdditionalRoleInfoItemRoleSetsItem+    , aboutAdditionalRoleInfoItemRoleSetsItem+    , aariirsiPrimaryRole+    , aariirsiAdditionalRoles++    -- ** Channel+    , Channel+    , channel+    , cResourceURI+    , cResourceId+    , cKind+    , cExpiration+    , cToken+    , cAddress+    , cPayload+    , cParams+    , cId+    , cType++    -- ** CommentReplyList+    , CommentReplyList+    , commentReplyList+    , crlNextPageToken+    , crlNextLink+    , crlKind+    , crlItems+    , crlSelfLink++    -- ** FileVideoMediaMetadata+    , FileVideoMediaMetadata+    , fileVideoMediaMetadata+    , fvmmHeight+    , fvmmWidth+    , fvmmDurationMillis++    -- ** Change+    , Change+    , change+    , chaKind+    , chaSelfLink+    , chaModificationDate+    , chaId+    , chaDeleted+    , chaFileId+    , chaFile++    -- ** App+    , App+    , app+    , aLongDescription+    , aOpenURLTemplate+    , aAuthorized+    , aObjectType+    , aSecondaryMimeTypes+    , aCreateInFolderTemplate+    , aKind+    , aIcons+    , aProductURL+    , aUseByDefault+    , aShortDescription+    , aName+    , aCreateURL+    , aId+    , aPrimaryFileExtensions+    , aInstalled+    , aSupportsCreate+    , aPrimaryMimeTypes+    , aHasDriveWideScope+    , aProductId+    , aSecondaryFileExtensions+    , aSupportsMultiOpen+    , aSupportsImport+    , aSupportsOfflineCreate++    -- ** ChildReference+    , ChildReference+    , childReference+    , crChildLink+    , crKind+    , crSelfLink+    , crId++    -- ** FilesWatchProjection+    , FilesWatchProjection (..)++    -- ** AboutMaxUploadSizesItem+    , AboutMaxUploadSizesItem+    , aboutMaxUploadSizesItem+    , amusiSize+    , amusiType++    -- ** CommentReply+    , CommentReply+    , commentReply+    , comHTMLContent+    , comKind+    , comContent+    , comCreatedDate+    , comReplyId+    , comAuthor+    , comModifiedDate+    , comDeleted+    , comVerb++    -- ** AboutQuotaBytesByServiceItem+    , AboutQuotaBytesByServiceItem+    , aboutQuotaBytesByServiceItem+    , aqbbsiBytesUsed+    , aqbbsiServiceName++    -- ** User+    , User+    , user+    , uIsAuthenticatedUser+    , uKind+    , uPicture+    , uEmailAddress+    , uDisplayName+    , uPermissionId++    -- ** AboutExportFormatsItem+    , AboutExportFormatsItem+    , aboutExportFormatsItem+    , aefiTargets+    , aefiSource++    -- ** ChangeList+    , ChangeList+    , changeList+    , cllEtag+    , cllNextPageToken+    , cllNextLink+    , cllKind+    , cllItems+    , cllSelfLink+    , cllLargestChangeId++    -- ** RevisionExportLinks+    , RevisionExportLinks+    , revisionExportLinks+    , relAddtional++    -- ** FileIndexableText+    , FileIndexableText+    , fileIndexableText+    , fitText++    -- ** AboutFeaturesItem+    , AboutFeaturesItem+    , aboutFeaturesItem+    , afiFeatureRate+    , afiFeatureName++    -- ** ChannelParams+    , ChannelParams+    , channelParams+    , cpAddtional++    -- ** FilesPatchModifiedDateBehavior+    , FilesPatchModifiedDateBehavior (..)++    -- ** About+    , About+    , about+    , aboExportFormats+    , aboRemainingChangeIds+    , aboLanguageCode+    , aboEtag+    , aboImportFormats+    , aboKind+    , aboDomainSharingPolicy+    , aboQuotaBytesUsedInTrash+    , aboQuotaType+    , aboMaxUploadSizes+    , aboUser+    , aboSelfLink+    , aboName+    , aboFeatures+    , aboIsCurrentAppInstalled+    , aboQuotaBytesTotal+    , aboRootFolderId+    , aboQuotaBytesUsed+    , aboAdditionalRoleInfo+    , aboFolderColorPalette+    , aboPermissionId+    , aboQuotaBytesUsedAggregate+    , aboQuotaBytesByService+    , aboLargestChangeId++    -- ** FileImageMediaMetadataLocation+    , FileImageMediaMetadataLocation+    , fileImageMediaMetadataLocation+    , fimmlLatitude+    , fimmlAltitude+    , fimmlLongitude++    -- ** AboutImportFormatsItem+    , AboutImportFormatsItem+    , aboutImportFormatsItem+    , aifiTargets+    , aifiSource++    -- ** FileImageMediaMetadata+    , FileImageMediaMetadata+    , fileImageMediaMetadata+    , fimmRotation+    , fimmHeight+    , fimmSubjectDistance+    , fimmMaxApertureValue+    , fimmIsoSpeed+    , fimmLocation+    , fimmAperture+    , fimmFocalLength+    , fimmCameraMake+    , fimmWidth+    , fimmExposureTime+    , fimmCameraModel+    , fimmWhiteBalance+    , fimmDate+    , fimmLens+    , fimmFlashUsed+    , fimmExposureBias+    , fimmMeteringMode+    , fimmExposureMode+    , fimmSensor+    , fimmColorSpace++    -- ** FileLabels+    , FileLabels+    , fileLabels+    , flViewed+    , flTrashed+    , flStarred+    , flHidden+    , flRestricted++    -- ** Comment+    , Comment+    , comment+    , ccStatus+    , ccHTMLContent+    , ccContext+    , ccKind+    , ccFileTitle+    , ccAnchor+    , ccContent+    , ccReplies+    , ccCreatedDate+    , ccSelfLink+    , ccAuthor+    , ccModifiedDate+    , ccDeleted+    , ccFileId+    , ccCommentId++    -- ** Revision+    , Revision+    , revision+    , rEtag+    , rOriginalFilename+    , rKind+    , rPublishedLink+    , rPinned+    , rPublished+    , rLastModifyingUser+    , rFileSize+    , rPublishAuto+    , rMD5Checksum+    , rMimeType+    , rSelfLink+    , rLastModifyingUserName+    , rDownloadURL+    , rExportLinks+    , rPublishedOutsideDomain+    , rId+    , rModifiedDate++    -- ** AboutAdditionalRoleInfoItem+    , AboutAdditionalRoleInfoItem+    , aboutAdditionalRoleInfoItem+    , aariiRoleSets+    , aariiType++    -- ** Permission+    , Permission+    , permission+    , perPhotoLink+    , perEtag+    , perWithLink+    , perKind+    , perDomain+    , perValue+    , perAdditionalRoles+    , perRole+    , perSelfLink+    , perName+    , perAuthKey+    , perEmailAddress+    , perId+    , perType++    -- ** File+    , File+    , file+    , fOwnedByMe+    , fThumbnailLink+    , fFullFileExtension+    , fThumbnail+    , fMarkedViewedByMeDate+    , fEtag+    , fFileExtension+    , fCanComment+    , fOwners+    , fOwnerNames+    , fOpenWithLinks+    , fWebViewLink+    , fOriginalFilename+    , fKind+    , fLastModifyingUser+    , fIconLink+    , fEmbedLink+    , fFileSize+    , fAppDataContents+    , fImageMediaMetadata+    , fExplicitlyTrashed+    , fEditable+    , fModifiedByMeDate+    , fLastViewedByMeDate+    , fShared+    , fMD5Checksum+    , fFolderColorRgb+    , fMimeType+    , fCreatedDate+    , fSelfLink+    , fLastModifyingUserName+    , fShareable+    , fDownloadURL+    , fExportLinks+    , fCopyable+    , fParents+    , fSharedWithMeDate+    , fSpaces+    , fVersion+    , fUserPermission+    , fWritersCanShare+    , fDefaultOpenWithLink+    , fId+    , fLabels+    , fModifiedDate+    , fPermissions+    , fQuotaBytesUsed+    , fTitle+    , fAlternateLink+    , fVideoMediaMetadata+    , fHeadRevisionId+    , fDescription+    , fSharingUser+    , fWebContentLink+    , fProperties+    , fIndexableText++    -- ** PermissionId+    , PermissionId+    , permissionId+    , piKind+    , piId++    -- ** FilesCopyVisibility+    , FilesCopyVisibility (..)++    -- ** FilesGetProjection+    , FilesGetProjection (..)++    -- ** ParentList+    , ParentList+    , parentList+    , parEtag+    , parKind+    , parItems+    , parSelfLink++    -- ** GeneratedIds+    , GeneratedIds+    , generatedIds+    , giSpace+    , giKind+    , giIds++    -- ** FileExportLinks+    , FileExportLinks+    , fileExportLinks+    , felAddtional++    -- ** CommentList+    , CommentList+    , commentList+    , comoNextPageToken+    , comoNextLink+    , comoKind+    , comoItems+    , comoSelfLink++    -- ** RevisionList+    , RevisionList+    , revisionList+    , rlEtag+    , rlKind+    , rlItems+    , rlSelfLink++    -- ** PermissionList+    , PermissionList+    , permissionList+    , pllEtag+    , pllKind+    , pllItems+    , pllSelfLink+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude+import           Network.Google.Resource.Drive.About.Get+import           Network.Google.Resource.Drive.Apps.Get+import           Network.Google.Resource.Drive.Apps.List+import           Network.Google.Resource.Drive.Changes.Get+import           Network.Google.Resource.Drive.Changes.List+import           Network.Google.Resource.Drive.Changes.Watch+import           Network.Google.Resource.Drive.Channels.Stop+import           Network.Google.Resource.Drive.Children.Delete+import           Network.Google.Resource.Drive.Children.Get+import           Network.Google.Resource.Drive.Children.Insert+import           Network.Google.Resource.Drive.Children.List+import           Network.Google.Resource.Drive.Comments.Delete+import           Network.Google.Resource.Drive.Comments.Get+import           Network.Google.Resource.Drive.Comments.Insert+import           Network.Google.Resource.Drive.Comments.List+import           Network.Google.Resource.Drive.Comments.Patch+import           Network.Google.Resource.Drive.Comments.Update+import           Network.Google.Resource.Drive.Files.Copy+import           Network.Google.Resource.Drive.Files.Delete+import           Network.Google.Resource.Drive.Files.EmptyTrash+import           Network.Google.Resource.Drive.Files.GenerateIds+import           Network.Google.Resource.Drive.Files.Get+import           Network.Google.Resource.Drive.Files.Insert+import           Network.Google.Resource.Drive.Files.List+import           Network.Google.Resource.Drive.Files.Patch+import           Network.Google.Resource.Drive.Files.Touch+import           Network.Google.Resource.Drive.Files.Trash+import           Network.Google.Resource.Drive.Files.Untrash+import           Network.Google.Resource.Drive.Files.Update+import           Network.Google.Resource.Drive.Files.Watch+import           Network.Google.Resource.Drive.Parents.Delete+import           Network.Google.Resource.Drive.Parents.Get+import           Network.Google.Resource.Drive.Parents.Insert+import           Network.Google.Resource.Drive.Parents.List+import           Network.Google.Resource.Drive.Permissions.Delete+import           Network.Google.Resource.Drive.Permissions.Get+import           Network.Google.Resource.Drive.Permissions.GetIdForEmail+import           Network.Google.Resource.Drive.Permissions.Insert+import           Network.Google.Resource.Drive.Permissions.List+import           Network.Google.Resource.Drive.Permissions.Patch+import           Network.Google.Resource.Drive.Permissions.Update+import           Network.Google.Resource.Drive.Properties.Delete+import           Network.Google.Resource.Drive.Properties.Get+import           Network.Google.Resource.Drive.Properties.Insert+import           Network.Google.Resource.Drive.Properties.List+import           Network.Google.Resource.Drive.Properties.Patch+import           Network.Google.Resource.Drive.Properties.Update+import           Network.Google.Resource.Drive.Realtime.Get+import           Network.Google.Resource.Drive.Realtime.Update+import           Network.Google.Resource.Drive.Replies.Delete+import           Network.Google.Resource.Drive.Replies.Get+import           Network.Google.Resource.Drive.Replies.Insert+import           Network.Google.Resource.Drive.Replies.List+import           Network.Google.Resource.Drive.Replies.Patch+import           Network.Google.Resource.Drive.Replies.Update+import           Network.Google.Resource.Drive.Revisions.Delete+import           Network.Google.Resource.Drive.Revisions.Get+import           Network.Google.Resource.Drive.Revisions.List+import           Network.Google.Resource.Drive.Revisions.Patch+import           Network.Google.Resource.Drive.Revisions.Update++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Drive API service.+type DriveAPI =+     AppsListResource :<|> AppsGetResource :<|>+       ChangesListResource+       :<|> ChangesGetResource+       :<|> ChangesWatchResource+       :<|> ChannelsStopResource+       :<|> ChildrenInsertResource+       :<|> ChildrenListResource+       :<|> ChildrenGetResource+       :<|> ChildrenDeleteResource+       :<|> RepliesInsertResource+       :<|> RepliesListResource+       :<|> RepliesPatchResource+       :<|> RepliesGetResource+       :<|> RepliesDeleteResource+       :<|> RepliesUpdateResource+       :<|> ParentsInsertResource+       :<|> ParentsListResource+       :<|> ParentsGetResource+       :<|> ParentsDeleteResource+       :<|> RealtimeGetResource+       :<|> RealtimeUpdateResource+       :<|> AboutGetResource+       :<|> FilesInsertResource+       :<|> FilesListResource+       :<|> FilesCopyResource+       :<|> FilesPatchResource+       :<|> FilesGetResource+       :<|> FilesEmptyTrashResource+       :<|> FilesTrashResource+       :<|> FilesUntrashResource+       :<|> FilesTouchResource+       :<|> FilesGenerateIdsResource+       :<|> FilesDeleteResource+       :<|> FilesUpdateResource+       :<|> FilesWatchResource+       :<|> PermissionsGetIdForEmailResource+       :<|> PermissionsInsertResource+       :<|> PermissionsListResource+       :<|> PermissionsPatchResource+       :<|> PermissionsGetResource+       :<|> PermissionsDeleteResource+       :<|> PermissionsUpdateResource+       :<|> CommentsInsertResource+       :<|> CommentsListResource+       :<|> CommentsPatchResource+       :<|> CommentsGetResource+       :<|> CommentsDeleteResource+       :<|> CommentsUpdateResource+       :<|> RevisionsListResource+       :<|> RevisionsPatchResource+       :<|> RevisionsGetResource+       :<|> RevisionsDeleteResource+       :<|> RevisionsUpdateResource+       :<|> PropertiesInsertResource+       :<|> PropertiesListResource+       :<|> PropertiesPatchResource+       :<|> PropertiesGetResource+       :<|> PropertiesDeleteResource+       :<|> PropertiesUpdateResource
+ gen/Network/Google/Drive/Types.hs view
@@ -0,0 +1,594 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Drive.Types+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Drive.Types+    (+    -- * Service Configuration+      driveService++    -- * OAuth Scopes+    , driveMetadataReadonlyScope+    , driveAppsReadonlyScope+    , drivePhotosReadonlyScope+    , driveAppdataScope+    , driveReadonlyScope+    , driveScope+    , driveFileScope+    , driveMetadataScope+    , driveScriptsScope++    -- * CommentContext+    , CommentContext+    , commentContext+    , ccValue+    , ccType++    -- * AppIconsItem+    , AppIconsItem+    , appIconsItem+    , aiiSize+    , aiiCategory+    , aiiIconURL++    -- * FilesInsertVisibility+    , FilesInsertVisibility (..)++    -- * FileList+    , FileList+    , fileList+    , flEtag+    , flNextPageToken+    , flNextLink+    , flKind+    , flItems+    , flSelfLink++    -- * ParentReference+    , ParentReference+    , parentReference+    , prParentLink+    , prIsRoot+    , prKind+    , prSelfLink+    , prId++    -- * Property+    , Property+    , property+    , pEtag+    , pKind+    , pValue+    , pVisibility+    , pSelfLink+    , pKey++    -- * FilesListCorpus+    , FilesListCorpus (..)++    -- * FileThumbnail+    , FileThumbnail+    , fileThumbnail+    , ftImage+    , ftMimeType++    -- * FilesListProjection+    , FilesListProjection (..)++    -- * UserPicture+    , UserPicture+    , userPicture+    , upURL++    -- * FilesUpdateModifiedDateBehavior+    , FilesUpdateModifiedDateBehavior (..)++    -- * PropertyList+    , PropertyList+    , propertyList+    , plEtag+    , plKind+    , plItems+    , plSelfLink++    -- * ChildList+    , ChildList+    , childList+    , clEtag+    , clNextPageToken+    , clNextLink+    , clKind+    , clItems+    , clSelfLink++    -- * AppList+    , AppList+    , appList+    , alDefaultAppIds+    , alEtag+    , alKind+    , alItems+    , alSelfLink++    -- * FileOpenWithLinks+    , FileOpenWithLinks+    , fileOpenWithLinks+    , fowlAddtional++    -- * AboutAdditionalRoleInfoItemRoleSetsItem+    , AboutAdditionalRoleInfoItemRoleSetsItem+    , aboutAdditionalRoleInfoItemRoleSetsItem+    , aariirsiPrimaryRole+    , aariirsiAdditionalRoles++    -- * Channel+    , Channel+    , channel+    , cResourceURI+    , cResourceId+    , cKind+    , cExpiration+    , cToken+    , cAddress+    , cPayload+    , cParams+    , cId+    , cType++    -- * CommentReplyList+    , CommentReplyList+    , commentReplyList+    , crlNextPageToken+    , crlNextLink+    , crlKind+    , crlItems+    , crlSelfLink++    -- * FileVideoMediaMetadata+    , FileVideoMediaMetadata+    , fileVideoMediaMetadata+    , fvmmHeight+    , fvmmWidth+    , fvmmDurationMillis++    -- * Change+    , Change+    , change+    , chaKind+    , chaSelfLink+    , chaModificationDate+    , chaId+    , chaDeleted+    , chaFileId+    , chaFile++    -- * App+    , App+    , app+    , aLongDescription+    , aOpenURLTemplate+    , aAuthorized+    , aObjectType+    , aSecondaryMimeTypes+    , aCreateInFolderTemplate+    , aKind+    , aIcons+    , aProductURL+    , aUseByDefault+    , aShortDescription+    , aName+    , aCreateURL+    , aId+    , aPrimaryFileExtensions+    , aInstalled+    , aSupportsCreate+    , aPrimaryMimeTypes+    , aHasDriveWideScope+    , aProductId+    , aSecondaryFileExtensions+    , aSupportsMultiOpen+    , aSupportsImport+    , aSupportsOfflineCreate++    -- * ChildReference+    , ChildReference+    , childReference+    , crChildLink+    , crKind+    , crSelfLink+    , crId++    -- * FilesWatchProjection+    , FilesWatchProjection (..)++    -- * AboutMaxUploadSizesItem+    , AboutMaxUploadSizesItem+    , aboutMaxUploadSizesItem+    , amusiSize+    , amusiType++    -- * CommentReply+    , CommentReply+    , commentReply+    , comHTMLContent+    , comKind+    , comContent+    , comCreatedDate+    , comReplyId+    , comAuthor+    , comModifiedDate+    , comDeleted+    , comVerb++    -- * AboutQuotaBytesByServiceItem+    , AboutQuotaBytesByServiceItem+    , aboutQuotaBytesByServiceItem+    , aqbbsiBytesUsed+    , aqbbsiServiceName++    -- * User+    , User+    , user+    , uIsAuthenticatedUser+    , uKind+    , uPicture+    , uEmailAddress+    , uDisplayName+    , uPermissionId++    -- * AboutExportFormatsItem+    , AboutExportFormatsItem+    , aboutExportFormatsItem+    , aefiTargets+    , aefiSource++    -- * ChangeList+    , ChangeList+    , changeList+    , cllEtag+    , cllNextPageToken+    , cllNextLink+    , cllKind+    , cllItems+    , cllSelfLink+    , cllLargestChangeId++    -- * RevisionExportLinks+    , RevisionExportLinks+    , revisionExportLinks+    , relAddtional++    -- * FileIndexableText+    , FileIndexableText+    , fileIndexableText+    , fitText++    -- * AboutFeaturesItem+    , AboutFeaturesItem+    , aboutFeaturesItem+    , afiFeatureRate+    , afiFeatureName++    -- * ChannelParams+    , ChannelParams+    , channelParams+    , cpAddtional++    -- * FilesPatchModifiedDateBehavior+    , FilesPatchModifiedDateBehavior (..)++    -- * About+    , About+    , about+    , aboExportFormats+    , aboRemainingChangeIds+    , aboLanguageCode+    , aboEtag+    , aboImportFormats+    , aboKind+    , aboDomainSharingPolicy+    , aboQuotaBytesUsedInTrash+    , aboQuotaType+    , aboMaxUploadSizes+    , aboUser+    , aboSelfLink+    , aboName+    , aboFeatures+    , aboIsCurrentAppInstalled+    , aboQuotaBytesTotal+    , aboRootFolderId+    , aboQuotaBytesUsed+    , aboAdditionalRoleInfo+    , aboFolderColorPalette+    , aboPermissionId+    , aboQuotaBytesUsedAggregate+    , aboQuotaBytesByService+    , aboLargestChangeId++    -- * FileImageMediaMetadataLocation+    , FileImageMediaMetadataLocation+    , fileImageMediaMetadataLocation+    , fimmlLatitude+    , fimmlAltitude+    , fimmlLongitude++    -- * AboutImportFormatsItem+    , AboutImportFormatsItem+    , aboutImportFormatsItem+    , aifiTargets+    , aifiSource++    -- * FileImageMediaMetadata+    , FileImageMediaMetadata+    , fileImageMediaMetadata+    , fimmRotation+    , fimmHeight+    , fimmSubjectDistance+    , fimmMaxApertureValue+    , fimmIsoSpeed+    , fimmLocation+    , fimmAperture+    , fimmFocalLength+    , fimmCameraMake+    , fimmWidth+    , fimmExposureTime+    , fimmCameraModel+    , fimmWhiteBalance+    , fimmDate+    , fimmLens+    , fimmFlashUsed+    , fimmExposureBias+    , fimmMeteringMode+    , fimmExposureMode+    , fimmSensor+    , fimmColorSpace++    -- * FileLabels+    , FileLabels+    , fileLabels+    , flViewed+    , flTrashed+    , flStarred+    , flHidden+    , flRestricted++    -- * Comment+    , Comment+    , comment+    , ccStatus+    , ccHTMLContent+    , ccContext+    , ccKind+    , ccFileTitle+    , ccAnchor+    , ccContent+    , ccReplies+    , ccCreatedDate+    , ccSelfLink+    , ccAuthor+    , ccModifiedDate+    , ccDeleted+    , ccFileId+    , ccCommentId++    -- * Revision+    , Revision+    , revision+    , rEtag+    , rOriginalFilename+    , rKind+    , rPublishedLink+    , rPinned+    , rPublished+    , rLastModifyingUser+    , rFileSize+    , rPublishAuto+    , rMD5Checksum+    , rMimeType+    , rSelfLink+    , rLastModifyingUserName+    , rDownloadURL+    , rExportLinks+    , rPublishedOutsideDomain+    , rId+    , rModifiedDate++    -- * AboutAdditionalRoleInfoItem+    , AboutAdditionalRoleInfoItem+    , aboutAdditionalRoleInfoItem+    , aariiRoleSets+    , aariiType++    -- * Permission+    , Permission+    , permission+    , perPhotoLink+    , perEtag+    , perWithLink+    , perKind+    , perDomain+    , perValue+    , perAdditionalRoles+    , perRole+    , perSelfLink+    , perName+    , perAuthKey+    , perEmailAddress+    , perId+    , perType++    -- * File+    , File+    , file+    , fOwnedByMe+    , fThumbnailLink+    , fFullFileExtension+    , fThumbnail+    , fMarkedViewedByMeDate+    , fEtag+    , fFileExtension+    , fCanComment+    , fOwners+    , fOwnerNames+    , fOpenWithLinks+    , fWebViewLink+    , fOriginalFilename+    , fKind+    , fLastModifyingUser+    , fIconLink+    , fEmbedLink+    , fFileSize+    , fAppDataContents+    , fImageMediaMetadata+    , fExplicitlyTrashed+    , fEditable+    , fModifiedByMeDate+    , fLastViewedByMeDate+    , fShared+    , fMD5Checksum+    , fFolderColorRgb+    , fMimeType+    , fCreatedDate+    , fSelfLink+    , fLastModifyingUserName+    , fShareable+    , fDownloadURL+    , fExportLinks+    , fCopyable+    , fParents+    , fSharedWithMeDate+    , fSpaces+    , fVersion+    , fUserPermission+    , fWritersCanShare+    , fDefaultOpenWithLink+    , fId+    , fLabels+    , fModifiedDate+    , fPermissions+    , fQuotaBytesUsed+    , fTitle+    , fAlternateLink+    , fVideoMediaMetadata+    , fHeadRevisionId+    , fDescription+    , fSharingUser+    , fWebContentLink+    , fProperties+    , fIndexableText++    -- * PermissionId+    , PermissionId+    , permissionId+    , piKind+    , piId++    -- * FilesCopyVisibility+    , FilesCopyVisibility (..)++    -- * FilesGetProjection+    , FilesGetProjection (..)++    -- * ParentList+    , ParentList+    , parentList+    , parEtag+    , parKind+    , parItems+    , parSelfLink++    -- * GeneratedIds+    , GeneratedIds+    , generatedIds+    , giSpace+    , giKind+    , giIds++    -- * FileExportLinks+    , FileExportLinks+    , fileExportLinks+    , felAddtional++    -- * CommentList+    , CommentList+    , commentList+    , comoNextPageToken+    , comoNextLink+    , comoKind+    , comoItems+    , comoSelfLink++    -- * RevisionList+    , RevisionList+    , revisionList+    , rlEtag+    , rlKind+    , rlItems+    , rlSelfLink++    -- * PermissionList+    , PermissionList+    , permissionList+    , pllEtag+    , pllKind+    , pllItems+    , pllSelfLink+    ) where++import           Network.Google.Drive.Types.Product+import           Network.Google.Drive.Types.Sum+import           Network.Google.Prelude++-- | Default request referring to version 'v2' of the Drive API. This contains the host and root path used as a starting point for constructing service requests.+driveService :: Service+driveService+  = defaultService (ServiceId "drive:v2")+      "www.googleapis.com"++-- | View metadata for files in your Google Drive+driveMetadataReadonlyScope :: OAuthScope+driveMetadataReadonlyScope = "https://www.googleapis.com/auth/drive.metadata.readonly";++-- | View your Google Drive apps+driveAppsReadonlyScope :: OAuthScope+driveAppsReadonlyScope = "https://www.googleapis.com/auth/drive.apps.readonly";++-- | View the photos, videos and albums in your Google Photos+drivePhotosReadonlyScope :: OAuthScope+drivePhotosReadonlyScope = "https://www.googleapis.com/auth/drive.photos.readonly";++-- | View and manage its own configuration data in your Google Drive+driveAppdataScope :: OAuthScope+driveAppdataScope = "https://www.googleapis.com/auth/drive.appdata";++-- | View the files in your Google Drive+driveReadonlyScope :: OAuthScope+driveReadonlyScope = "https://www.googleapis.com/auth/drive.readonly";++-- | View and manage the files in your Google Drive+driveScope :: OAuthScope+driveScope = "https://www.googleapis.com/auth/drive";++-- | View and manage Google Drive files and folders that you have opened or+-- created with this app+driveFileScope :: OAuthScope+driveFileScope = "https://www.googleapis.com/auth/drive.file";++-- | View and manage metadata of files in your Google Drive+driveMetadataScope :: OAuthScope+driveMetadataScope = "https://www.googleapis.com/auth/drive.metadata";++-- | Modify your Google Apps Script scripts\' behavior+driveScriptsScope :: OAuthScope+driveScriptsScope = "https://www.googleapis.com/auth/drive.scripts";
+ gen/Network/Google/Drive/Types/Product.hs view
@@ -0,0 +1,4831 @@+{-# 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.Drive.Types.Product+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Drive.Types.Product where++import           Network.Google.Drive.Types.Sum+import           Network.Google.Prelude++-- | The context of the file which is being commented on.+--+-- /See:/ 'commentContext' smart constructor.+data CommentContext = CommentContext+    { _ccValue :: !(Maybe Text)+    , _ccType  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CommentContext' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ccValue'+--+-- * 'ccType'+commentContext+    :: CommentContext+commentContext =+    CommentContext+    { _ccValue = Nothing+    , _ccType = Nothing+    }++-- | Data representation of the segment of the file being commented on. In+-- the case of a text file for example, this would be the actual text that+-- the comment is about.+ccValue :: Lens' CommentContext (Maybe Text)+ccValue = lens _ccValue (\ s a -> s{_ccValue = a})++-- | The MIME type of the context snippet.+ccType :: Lens' CommentContext (Maybe Text)+ccType = lens _ccType (\ s a -> s{_ccType = a})++instance FromJSON CommentContext where+        parseJSON+          = withObject "CommentContext"+              (\ o ->+                 CommentContext <$>+                   (o .:? "value") <*> (o .:? "type"))++instance ToJSON CommentContext where+        toJSON CommentContext{..}+          = object+              (catMaybes+                 [("value" .=) <$> _ccValue, ("type" .=) <$> _ccType])++--+-- /See:/ 'appIconsItem' smart constructor.+data AppIconsItem = AppIconsItem+    { _aiiSize     :: !(Maybe (Textual Int32))+    , _aiiCategory :: !(Maybe Text)+    , _aiiIconURL  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AppIconsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aiiSize'+--+-- * 'aiiCategory'+--+-- * 'aiiIconURL'+appIconsItem+    :: AppIconsItem+appIconsItem =+    AppIconsItem+    { _aiiSize = Nothing+    , _aiiCategory = Nothing+    , _aiiIconURL = Nothing+    }++-- | Size of the icon. Represented as the maximum of the width and height.+aiiSize :: Lens' AppIconsItem (Maybe Int32)+aiiSize+  = lens _aiiSize (\ s a -> s{_aiiSize = a}) .+      mapping _Coerce++-- | Category of the icon. Allowed values are: - application - icon for the+-- application - document - icon for a file associated with the app -+-- documentShared - icon for a shared file associated with the app+aiiCategory :: Lens' AppIconsItem (Maybe Text)+aiiCategory+  = lens _aiiCategory (\ s a -> s{_aiiCategory = a})++-- | URL for the icon.+aiiIconURL :: Lens' AppIconsItem (Maybe Text)+aiiIconURL+  = lens _aiiIconURL (\ s a -> s{_aiiIconURL = a})++instance FromJSON AppIconsItem where+        parseJSON+          = withObject "AppIconsItem"+              (\ o ->+                 AppIconsItem <$>+                   (o .:? "size") <*> (o .:? "category") <*>+                     (o .:? "iconUrl"))++instance ToJSON AppIconsItem where+        toJSON AppIconsItem{..}+          = object+              (catMaybes+                 [("size" .=) <$> _aiiSize,+                  ("category" .=) <$> _aiiCategory,+                  ("iconUrl" .=) <$> _aiiIconURL])++-- | A list of files.+--+-- /See:/ 'fileList' smart constructor.+data FileList = FileList+    { _flEtag          :: !(Maybe Text)+    , _flNextPageToken :: !(Maybe Text)+    , _flNextLink      :: !(Maybe Text)+    , _flKind          :: !Text+    , _flItems         :: !(Maybe [File])+    , _flSelfLink      :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FileList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'flEtag'+--+-- * 'flNextPageToken'+--+-- * 'flNextLink'+--+-- * 'flKind'+--+-- * 'flItems'+--+-- * 'flSelfLink'+fileList+    :: FileList+fileList =+    FileList+    { _flEtag = Nothing+    , _flNextPageToken = Nothing+    , _flNextLink = Nothing+    , _flKind = "drive#fileList"+    , _flItems = Nothing+    , _flSelfLink = Nothing+    }++-- | The ETag of the list.+flEtag :: Lens' FileList (Maybe Text)+flEtag = lens _flEtag (\ s a -> s{_flEtag = a})++-- | The page token for the next page of files.+flNextPageToken :: Lens' FileList (Maybe Text)+flNextPageToken+  = lens _flNextPageToken+      (\ s a -> s{_flNextPageToken = a})++-- | A link to the next page of files.+flNextLink :: Lens' FileList (Maybe Text)+flNextLink+  = lens _flNextLink (\ s a -> s{_flNextLink = a})++-- | This is always drive#fileList.+flKind :: Lens' FileList Text+flKind = lens _flKind (\ s a -> s{_flKind = a})++-- | The actual list of files.+flItems :: Lens' FileList [File]+flItems+  = lens _flItems (\ s a -> s{_flItems = a}) . _Default+      . _Coerce++-- | A link back to this list.+flSelfLink :: Lens' FileList (Maybe Text)+flSelfLink+  = lens _flSelfLink (\ s a -> s{_flSelfLink = a})++instance FromJSON FileList where+        parseJSON+          = withObject "FileList"+              (\ o ->+                 FileList <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "nextLink")+                     <*> (o .:? "kind" .!= "drive#fileList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink"))++instance ToJSON FileList where+        toJSON FileList{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _flEtag,+                  ("nextPageToken" .=) <$> _flNextPageToken,+                  ("nextLink" .=) <$> _flNextLink,+                  Just ("kind" .= _flKind), ("items" .=) <$> _flItems,+                  ("selfLink" .=) <$> _flSelfLink])++-- | A reference to a file\'s parent.+--+-- /See:/ 'parentReference' smart constructor.+data ParentReference = ParentReference+    { _prParentLink :: !(Maybe Text)+    , _prIsRoot     :: !(Maybe Bool)+    , _prKind       :: !Text+    , _prSelfLink   :: !(Maybe Text)+    , _prId         :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ParentReference' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'prParentLink'+--+-- * 'prIsRoot'+--+-- * 'prKind'+--+-- * 'prSelfLink'+--+-- * 'prId'+parentReference+    :: ParentReference+parentReference =+    ParentReference+    { _prParentLink = Nothing+    , _prIsRoot = Nothing+    , _prKind = "drive#parentReference"+    , _prSelfLink = Nothing+    , _prId = Nothing+    }++-- | A link to the parent.+prParentLink :: Lens' ParentReference (Maybe Text)+prParentLink+  = lens _prParentLink (\ s a -> s{_prParentLink = a})++-- | Whether or not the parent is the root folder.+prIsRoot :: Lens' ParentReference (Maybe Bool)+prIsRoot = lens _prIsRoot (\ s a -> s{_prIsRoot = a})++-- | This is always drive#parentReference.+prKind :: Lens' ParentReference Text+prKind = lens _prKind (\ s a -> s{_prKind = a})++-- | A link back to this reference.+prSelfLink :: Lens' ParentReference (Maybe Text)+prSelfLink+  = lens _prSelfLink (\ s a -> s{_prSelfLink = a})++-- | The ID of the parent.+prId :: Lens' ParentReference (Maybe Text)+prId = lens _prId (\ s a -> s{_prId = a})++instance FromJSON ParentReference where+        parseJSON+          = withObject "ParentReference"+              (\ o ->+                 ParentReference <$>+                   (o .:? "parentLink") <*> (o .:? "isRoot") <*>+                     (o .:? "kind" .!= "drive#parentReference")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON ParentReference where+        toJSON ParentReference{..}+          = object+              (catMaybes+                 [("parentLink" .=) <$> _prParentLink,+                  ("isRoot" .=) <$> _prIsRoot,+                  Just ("kind" .= _prKind),+                  ("selfLink" .=) <$> _prSelfLink,+                  ("id" .=) <$> _prId])++-- | A key-value pair attached to a file that is either public or private to+-- an application. The following limits apply to file properties: - Maximum+-- of 100 properties total per file - Maximum of 30 private properties per+-- app - Maximum of 30 public properties - Maximum of 124 bytes size limit+-- on (key + value) string in UTF-8 encoding for a single property.+--+-- /See:/ 'property' smart constructor.+data Property = Property+    { _pEtag       :: !(Maybe Text)+    , _pKind       :: !Text+    , _pValue      :: !(Maybe Text)+    , _pVisibility :: !(Maybe Text)+    , _pSelfLink   :: !(Maybe Text)+    , _pKey        :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Property' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pEtag'+--+-- * 'pKind'+--+-- * 'pValue'+--+-- * 'pVisibility'+--+-- * 'pSelfLink'+--+-- * 'pKey'+property+    :: Property+property =+    Property+    { _pEtag = Nothing+    , _pKind = "drive#property"+    , _pValue = Nothing+    , _pVisibility = Nothing+    , _pSelfLink = Nothing+    , _pKey = Nothing+    }++-- | ETag of the property.+pEtag :: Lens' Property (Maybe Text)+pEtag = lens _pEtag (\ s a -> s{_pEtag = a})++-- | This is always drive#property.+pKind :: Lens' Property Text+pKind = lens _pKind (\ s a -> s{_pKind = a})++-- | The value of this property.+pValue :: Lens' Property (Maybe Text)+pValue = lens _pValue (\ s a -> s{_pValue = a})++-- | The visibility of this property.+pVisibility :: Lens' Property (Maybe Text)+pVisibility+  = lens _pVisibility (\ s a -> s{_pVisibility = a})++-- | The link back to this property.+pSelfLink :: Lens' Property (Maybe Text)+pSelfLink+  = lens _pSelfLink (\ s a -> s{_pSelfLink = a})++-- | The key of this property.+pKey :: Lens' Property (Maybe Text)+pKey = lens _pKey (\ s a -> s{_pKey = a})++instance FromJSON Property where+        parseJSON+          = withObject "Property"+              (\ o ->+                 Property <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "drive#property")+                     <*> (o .:? "value")+                     <*> (o .:? "visibility")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "key"))++instance ToJSON Property where+        toJSON Property{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _pEtag, Just ("kind" .= _pKind),+                  ("value" .=) <$> _pValue,+                  ("visibility" .=) <$> _pVisibility,+                  ("selfLink" .=) <$> _pSelfLink,+                  ("key" .=) <$> _pKey])++-- | Thumbnail for the file. Only accepted on upload and for files that are+-- not already thumbnailed by Google.+--+-- /See:/ 'fileThumbnail' smart constructor.+data FileThumbnail = FileThumbnail+    { _ftImage    :: !(Maybe (Textual Word8))+    , _ftMimeType :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FileThumbnail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ftImage'+--+-- * 'ftMimeType'+fileThumbnail+    :: FileThumbnail+fileThumbnail =+    FileThumbnail+    { _ftImage = Nothing+    , _ftMimeType = Nothing+    }++-- | The URL-safe Base64 encoded bytes of the thumbnail image. It should+-- conform to RFC 4648 section 5.+ftImage :: Lens' FileThumbnail (Maybe Word8)+ftImage+  = lens _ftImage (\ s a -> s{_ftImage = a}) .+      mapping _Coerce++-- | The MIME type of the thumbnail.+ftMimeType :: Lens' FileThumbnail (Maybe Text)+ftMimeType+  = lens _ftMimeType (\ s a -> s{_ftMimeType = a})++instance FromJSON FileThumbnail where+        parseJSON+          = withObject "FileThumbnail"+              (\ o ->+                 FileThumbnail <$>+                   (o .:? "image") <*> (o .:? "mimeType"))++instance ToJSON FileThumbnail where+        toJSON FileThumbnail{..}+          = object+              (catMaybes+                 [("image" .=) <$> _ftImage,+                  ("mimeType" .=) <$> _ftMimeType])++-- | The user\'s profile picture.+--+-- /See:/ 'userPicture' smart constructor.+newtype UserPicture = UserPicture+    { _upURL :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UserPicture' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'upURL'+userPicture+    :: UserPicture+userPicture =+    UserPicture+    { _upURL = Nothing+    }++-- | A URL that points to a profile picture of this user.+upURL :: Lens' UserPicture (Maybe Text)+upURL = lens _upURL (\ s a -> s{_upURL = a})++instance FromJSON UserPicture where+        parseJSON+          = withObject "UserPicture"+              (\ o -> UserPicture <$> (o .:? "url"))++instance ToJSON UserPicture where+        toJSON UserPicture{..}+          = object (catMaybes [("url" .=) <$> _upURL])++-- | A collection of properties, key-value pairs that are either public or+-- private to an application.+--+-- /See:/ 'propertyList' smart constructor.+data PropertyList = PropertyList+    { _plEtag     :: !(Maybe Text)+    , _plKind     :: !Text+    , _plItems    :: !(Maybe [Property])+    , _plSelfLink :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PropertyList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plEtag'+--+-- * 'plKind'+--+-- * 'plItems'+--+-- * 'plSelfLink'+propertyList+    :: PropertyList+propertyList =+    PropertyList+    { _plEtag = Nothing+    , _plKind = "drive#propertyList"+    , _plItems = Nothing+    , _plSelfLink = Nothing+    }++-- | The ETag of the list.+plEtag :: Lens' PropertyList (Maybe Text)+plEtag = lens _plEtag (\ s a -> s{_plEtag = a})++-- | This is always drive#propertyList.+plKind :: Lens' PropertyList Text+plKind = lens _plKind (\ s a -> s{_plKind = a})++-- | The list of properties.+plItems :: Lens' PropertyList [Property]+plItems+  = lens _plItems (\ s a -> s{_plItems = a}) . _Default+      . _Coerce++-- | The link back to this list.+plSelfLink :: Lens' PropertyList (Maybe Text)+plSelfLink+  = lens _plSelfLink (\ s a -> s{_plSelfLink = a})++instance FromJSON PropertyList where+        parseJSON+          = withObject "PropertyList"+              (\ o ->+                 PropertyList <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "drive#propertyList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink"))++instance ToJSON PropertyList where+        toJSON PropertyList{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _plEtag, Just ("kind" .= _plKind),+                  ("items" .=) <$> _plItems,+                  ("selfLink" .=) <$> _plSelfLink])++-- | A list of children of a file.+--+-- /See:/ 'childList' smart constructor.+data ChildList = ChildList+    { _clEtag          :: !(Maybe Text)+    , _clNextPageToken :: !(Maybe Text)+    , _clNextLink      :: !(Maybe Text)+    , _clKind          :: !Text+    , _clItems         :: !(Maybe [ChildReference])+    , _clSelfLink      :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChildList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'clEtag'+--+-- * 'clNextPageToken'+--+-- * 'clNextLink'+--+-- * 'clKind'+--+-- * 'clItems'+--+-- * 'clSelfLink'+childList+    :: ChildList+childList =+    ChildList+    { _clEtag = Nothing+    , _clNextPageToken = Nothing+    , _clNextLink = Nothing+    , _clKind = "drive#childList"+    , _clItems = Nothing+    , _clSelfLink = Nothing+    }++-- | The ETag of the list.+clEtag :: Lens' ChildList (Maybe Text)+clEtag = lens _clEtag (\ s a -> s{_clEtag = a})++-- | The page token for the next page of children.+clNextPageToken :: Lens' ChildList (Maybe Text)+clNextPageToken+  = lens _clNextPageToken+      (\ s a -> s{_clNextPageToken = a})++-- | A link to the next page of children.+clNextLink :: Lens' ChildList (Maybe Text)+clNextLink+  = lens _clNextLink (\ s a -> s{_clNextLink = a})++-- | This is always drive#childList.+clKind :: Lens' ChildList Text+clKind = lens _clKind (\ s a -> s{_clKind = a})++-- | The actual list of children.+clItems :: Lens' ChildList [ChildReference]+clItems+  = lens _clItems (\ s a -> s{_clItems = a}) . _Default+      . _Coerce++-- | A link back to this list.+clSelfLink :: Lens' ChildList (Maybe Text)+clSelfLink+  = lens _clSelfLink (\ s a -> s{_clSelfLink = a})++instance FromJSON ChildList where+        parseJSON+          = withObject "ChildList"+              (\ o ->+                 ChildList <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "nextLink")+                     <*> (o .:? "kind" .!= "drive#childList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink"))++instance ToJSON ChildList where+        toJSON ChildList{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _clEtag,+                  ("nextPageToken" .=) <$> _clNextPageToken,+                  ("nextLink" .=) <$> _clNextLink,+                  Just ("kind" .= _clKind), ("items" .=) <$> _clItems,+                  ("selfLink" .=) <$> _clSelfLink])++-- | A list of third-party applications which the user has installed or given+-- access to Google Drive.+--+-- /See:/ 'appList' smart constructor.+data AppList = AppList+    { _alDefaultAppIds :: !(Maybe [Text])+    , _alEtag          :: !(Maybe Text)+    , _alKind          :: !Text+    , _alItems         :: !(Maybe [App])+    , _alSelfLink      :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AppList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'alDefaultAppIds'+--+-- * 'alEtag'+--+-- * 'alKind'+--+-- * 'alItems'+--+-- * 'alSelfLink'+appList+    :: AppList+appList =+    AppList+    { _alDefaultAppIds = Nothing+    , _alEtag = Nothing+    , _alKind = "drive#appList"+    , _alItems = Nothing+    , _alSelfLink = Nothing+    }++-- | List of app IDs that the user has specified to use by default. The list+-- is in reverse-priority order (lowest to highest).+alDefaultAppIds :: Lens' AppList [Text]+alDefaultAppIds+  = lens _alDefaultAppIds+      (\ s a -> s{_alDefaultAppIds = a})+      . _Default+      . _Coerce++-- | The ETag of the list.+alEtag :: Lens' AppList (Maybe Text)+alEtag = lens _alEtag (\ s a -> s{_alEtag = a})++-- | This is always drive#appList.+alKind :: Lens' AppList Text+alKind = lens _alKind (\ s a -> s{_alKind = a})++-- | The actual list of apps.+alItems :: Lens' AppList [App]+alItems+  = lens _alItems (\ s a -> s{_alItems = a}) . _Default+      . _Coerce++-- | A link back to this list.+alSelfLink :: Lens' AppList (Maybe Text)+alSelfLink+  = lens _alSelfLink (\ s a -> s{_alSelfLink = a})++instance FromJSON AppList where+        parseJSON+          = withObject "AppList"+              (\ o ->+                 AppList <$>+                   (o .:? "defaultAppIds" .!= mempty) <*> (o .:? "etag")+                     <*> (o .:? "kind" .!= "drive#appList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink"))++instance ToJSON AppList where+        toJSON AppList{..}+          = object+              (catMaybes+                 [("defaultAppIds" .=) <$> _alDefaultAppIds,+                  ("etag" .=) <$> _alEtag, Just ("kind" .= _alKind),+                  ("items" .=) <$> _alItems,+                  ("selfLink" .=) <$> _alSelfLink])++-- | A map of the id of each of the user\'s apps to a link to open this file+-- with that app. Only populated when the drive.apps.readonly scope is+-- used.+--+-- /See:/ 'fileOpenWithLinks' smart constructor.+newtype FileOpenWithLinks = FileOpenWithLinks+    { _fowlAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FileOpenWithLinks' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fowlAddtional'+fileOpenWithLinks+    :: HashMap Text Text -- ^ 'fowlAddtional'+    -> FileOpenWithLinks+fileOpenWithLinks pFowlAddtional_ =+    FileOpenWithLinks+    { _fowlAddtional = _Coerce # pFowlAddtional_+    }++fowlAddtional :: Lens' FileOpenWithLinks (HashMap Text Text)+fowlAddtional+  = lens _fowlAddtional+      (\ s a -> s{_fowlAddtional = a})+      . _Coerce++instance FromJSON FileOpenWithLinks where+        parseJSON+          = withObject "FileOpenWithLinks"+              (\ o -> FileOpenWithLinks <$> (parseJSONObject o))++instance ToJSON FileOpenWithLinks where+        toJSON = toJSON . _fowlAddtional++--+-- /See:/ 'aboutAdditionalRoleInfoItemRoleSetsItem' smart constructor.+data AboutAdditionalRoleInfoItemRoleSetsItem = AboutAdditionalRoleInfoItemRoleSetsItem+    { _aariirsiPrimaryRole     :: !(Maybe Text)+    , _aariirsiAdditionalRoles :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AboutAdditionalRoleInfoItemRoleSetsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aariirsiPrimaryRole'+--+-- * 'aariirsiAdditionalRoles'+aboutAdditionalRoleInfoItemRoleSetsItem+    :: AboutAdditionalRoleInfoItemRoleSetsItem+aboutAdditionalRoleInfoItemRoleSetsItem =+    AboutAdditionalRoleInfoItemRoleSetsItem+    { _aariirsiPrimaryRole = Nothing+    , _aariirsiAdditionalRoles = Nothing+    }++-- | A primary permission role.+aariirsiPrimaryRole :: Lens' AboutAdditionalRoleInfoItemRoleSetsItem (Maybe Text)+aariirsiPrimaryRole+  = lens _aariirsiPrimaryRole+      (\ s a -> s{_aariirsiPrimaryRole = a})++-- | The supported additional roles with the primary role.+aariirsiAdditionalRoles :: Lens' AboutAdditionalRoleInfoItemRoleSetsItem [Text]+aariirsiAdditionalRoles+  = lens _aariirsiAdditionalRoles+      (\ s a -> s{_aariirsiAdditionalRoles = a})+      . _Default+      . _Coerce++instance FromJSON+         AboutAdditionalRoleInfoItemRoleSetsItem where+        parseJSON+          = withObject+              "AboutAdditionalRoleInfoItemRoleSetsItem"+              (\ o ->+                 AboutAdditionalRoleInfoItemRoleSetsItem <$>+                   (o .:? "primaryRole") <*>+                     (o .:? "additionalRoles" .!= mempty))++instance ToJSON+         AboutAdditionalRoleInfoItemRoleSetsItem where+        toJSON AboutAdditionalRoleInfoItemRoleSetsItem{..}+          = object+              (catMaybes+                 [("primaryRole" .=) <$> _aariirsiPrimaryRole,+                  ("additionalRoles" .=) <$> _aariirsiAdditionalRoles])++-- | An notification channel used to watch for resource changes.+--+-- /See:/ 'channel' smart constructor.+data Channel = Channel+    { _cResourceURI :: !(Maybe Text)+    , _cResourceId  :: !(Maybe Text)+    , _cKind        :: !Text+    , _cExpiration  :: !(Maybe (Textual Int64))+    , _cToken       :: !(Maybe Text)+    , _cAddress     :: !(Maybe Text)+    , _cPayload     :: !(Maybe Bool)+    , _cParams      :: !(Maybe ChannelParams)+    , _cId          :: !(Maybe Text)+    , _cType        :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Channel' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cResourceURI'+--+-- * 'cResourceId'+--+-- * 'cKind'+--+-- * 'cExpiration'+--+-- * 'cToken'+--+-- * 'cAddress'+--+-- * 'cPayload'+--+-- * 'cParams'+--+-- * 'cId'+--+-- * 'cType'+channel+    :: Channel+channel =+    Channel+    { _cResourceURI = Nothing+    , _cResourceId = Nothing+    , _cKind = "api#channel"+    , _cExpiration = Nothing+    , _cToken = Nothing+    , _cAddress = Nothing+    , _cPayload = Nothing+    , _cParams = Nothing+    , _cId = Nothing+    , _cType = Nothing+    }++-- | A version-specific identifier for the watched resource.+cResourceURI :: Lens' Channel (Maybe Text)+cResourceURI+  = lens _cResourceURI (\ s a -> s{_cResourceURI = a})++-- | An opaque ID that identifies the resource being watched on this channel.+-- Stable across different API versions.+cResourceId :: Lens' Channel (Maybe Text)+cResourceId+  = lens _cResourceId (\ s a -> s{_cResourceId = a})++-- | Identifies this as a notification channel used to watch for changes to a+-- resource. Value: the fixed string \"api#channel\".+cKind :: Lens' Channel Text+cKind = lens _cKind (\ s a -> s{_cKind = a})++-- | Date and time of notification channel expiration, expressed as a Unix+-- timestamp, in milliseconds. Optional.+cExpiration :: Lens' Channel (Maybe Int64)+cExpiration+  = lens _cExpiration (\ s a -> s{_cExpiration = a}) .+      mapping _Coerce++-- | An arbitrary string delivered to the target address with each+-- notification delivered over this channel. Optional.+cToken :: Lens' Channel (Maybe Text)+cToken = lens _cToken (\ s a -> s{_cToken = a})++-- | The address where notifications are delivered for this channel.+cAddress :: Lens' Channel (Maybe Text)+cAddress = lens _cAddress (\ s a -> s{_cAddress = a})++-- | A Boolean value to indicate whether payload is wanted. Optional.+cPayload :: Lens' Channel (Maybe Bool)+cPayload = lens _cPayload (\ s a -> s{_cPayload = a})++-- | Additional parameters controlling delivery channel behavior. Optional.+cParams :: Lens' Channel (Maybe ChannelParams)+cParams = lens _cParams (\ s a -> s{_cParams = a})++-- | A UUID or similar unique string that identifies this channel.+cId :: Lens' Channel (Maybe Text)+cId = lens _cId (\ s a -> s{_cId = a})++-- | The type of delivery mechanism used for this channel.+cType :: Lens' Channel (Maybe Text)+cType = lens _cType (\ s a -> s{_cType = a})++instance FromJSON Channel where+        parseJSON+          = withObject "Channel"+              (\ o ->+                 Channel <$>+                   (o .:? "resourceUri") <*> (o .:? "resourceId") <*>+                     (o .:? "kind" .!= "api#channel")+                     <*> (o .:? "expiration")+                     <*> (o .:? "token")+                     <*> (o .:? "address")+                     <*> (o .:? "payload")+                     <*> (o .:? "params")+                     <*> (o .:? "id")+                     <*> (o .:? "type"))++instance ToJSON Channel where+        toJSON Channel{..}+          = object+              (catMaybes+                 [("resourceUri" .=) <$> _cResourceURI,+                  ("resourceId" .=) <$> _cResourceId,+                  Just ("kind" .= _cKind),+                  ("expiration" .=) <$> _cExpiration,+                  ("token" .=) <$> _cToken,+                  ("address" .=) <$> _cAddress,+                  ("payload" .=) <$> _cPayload,+                  ("params" .=) <$> _cParams, ("id" .=) <$> _cId,+                  ("type" .=) <$> _cType])++-- | A JSON representation of a list of replies to a comment on a file in+-- Google Drive.+--+-- /See:/ 'commentReplyList' smart constructor.+data CommentReplyList = CommentReplyList+    { _crlNextPageToken :: !(Maybe Text)+    , _crlNextLink      :: !(Maybe Text)+    , _crlKind          :: !Text+    , _crlItems         :: !(Maybe [CommentReply])+    , _crlSelfLink      :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CommentReplyList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crlNextPageToken'+--+-- * 'crlNextLink'+--+-- * 'crlKind'+--+-- * 'crlItems'+--+-- * 'crlSelfLink'+commentReplyList+    :: CommentReplyList+commentReplyList =+    CommentReplyList+    { _crlNextPageToken = Nothing+    , _crlNextLink = Nothing+    , _crlKind = "drive#commentReplyList"+    , _crlItems = Nothing+    , _crlSelfLink = Nothing+    }++-- | The token to use to request the next page of results.+crlNextPageToken :: Lens' CommentReplyList (Maybe Text)+crlNextPageToken+  = lens _crlNextPageToken+      (\ s a -> s{_crlNextPageToken = a})++-- | A link to the next page of replies.+crlNextLink :: Lens' CommentReplyList (Maybe Text)+crlNextLink+  = lens _crlNextLink (\ s a -> s{_crlNextLink = a})++-- | This is always drive#commentReplyList.+crlKind :: Lens' CommentReplyList Text+crlKind = lens _crlKind (\ s a -> s{_crlKind = a})++-- | List of reply.+crlItems :: Lens' CommentReplyList [CommentReply]+crlItems+  = lens _crlItems (\ s a -> s{_crlItems = a}) .+      _Default+      . _Coerce++-- | A link back to this list.+crlSelfLink :: Lens' CommentReplyList (Maybe Text)+crlSelfLink+  = lens _crlSelfLink (\ s a -> s{_crlSelfLink = a})++instance FromJSON CommentReplyList where+        parseJSON+          = withObject "CommentReplyList"+              (\ o ->+                 CommentReplyList <$>+                   (o .:? "nextPageToken") <*> (o .:? "nextLink") <*>+                     (o .:? "kind" .!= "drive#commentReplyList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink"))++instance ToJSON CommentReplyList where+        toJSON CommentReplyList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _crlNextPageToken,+                  ("nextLink" .=) <$> _crlNextLink,+                  Just ("kind" .= _crlKind),+                  ("items" .=) <$> _crlItems,+                  ("selfLink" .=) <$> _crlSelfLink])++-- | Metadata about video media. This will only be present for video types.+--+-- /See:/ 'fileVideoMediaMetadata' smart constructor.+data FileVideoMediaMetadata = FileVideoMediaMetadata+    { _fvmmHeight         :: !(Maybe (Textual Int32))+    , _fvmmWidth          :: !(Maybe (Textual Int32))+    , _fvmmDurationMillis :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FileVideoMediaMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fvmmHeight'+--+-- * 'fvmmWidth'+--+-- * 'fvmmDurationMillis'+fileVideoMediaMetadata+    :: FileVideoMediaMetadata+fileVideoMediaMetadata =+    FileVideoMediaMetadata+    { _fvmmHeight = Nothing+    , _fvmmWidth = Nothing+    , _fvmmDurationMillis = Nothing+    }++-- | The height of the video in pixels.+fvmmHeight :: Lens' FileVideoMediaMetadata (Maybe Int32)+fvmmHeight+  = lens _fvmmHeight (\ s a -> s{_fvmmHeight = a}) .+      mapping _Coerce++-- | The width of the video in pixels.+fvmmWidth :: Lens' FileVideoMediaMetadata (Maybe Int32)+fvmmWidth+  = lens _fvmmWidth (\ s a -> s{_fvmmWidth = a}) .+      mapping _Coerce++-- | The duration of the video in milliseconds.+fvmmDurationMillis :: Lens' FileVideoMediaMetadata (Maybe Int64)+fvmmDurationMillis+  = lens _fvmmDurationMillis+      (\ s a -> s{_fvmmDurationMillis = a})+      . mapping _Coerce++instance FromJSON FileVideoMediaMetadata where+        parseJSON+          = withObject "FileVideoMediaMetadata"+              (\ o ->+                 FileVideoMediaMetadata <$>+                   (o .:? "height") <*> (o .:? "width") <*>+                     (o .:? "durationMillis"))++instance ToJSON FileVideoMediaMetadata where+        toJSON FileVideoMediaMetadata{..}+          = object+              (catMaybes+                 [("height" .=) <$> _fvmmHeight,+                  ("width" .=) <$> _fvmmWidth,+                  ("durationMillis" .=) <$> _fvmmDurationMillis])++-- | Representation of a change to a file.+--+-- /See:/ 'change' smart constructor.+data Change = Change+    { _chaKind             :: !Text+    , _chaSelfLink         :: !(Maybe Text)+    , _chaModificationDate :: !(Maybe DateTime')+    , _chaId               :: !(Maybe (Textual Int64))+    , _chaDeleted          :: !(Maybe Bool)+    , _chaFileId           :: !(Maybe Text)+    , _chaFile             :: !(Maybe File)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Change' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'chaKind'+--+-- * 'chaSelfLink'+--+-- * 'chaModificationDate'+--+-- * 'chaId'+--+-- * 'chaDeleted'+--+-- * 'chaFileId'+--+-- * 'chaFile'+change+    :: Change+change =+    Change+    { _chaKind = "drive#change"+    , _chaSelfLink = Nothing+    , _chaModificationDate = Nothing+    , _chaId = Nothing+    , _chaDeleted = Nothing+    , _chaFileId = Nothing+    , _chaFile = Nothing+    }++-- | This is always drive#change.+chaKind :: Lens' Change Text+chaKind = lens _chaKind (\ s a -> s{_chaKind = a})++-- | A link back to this change.+chaSelfLink :: Lens' Change (Maybe Text)+chaSelfLink+  = lens _chaSelfLink (\ s a -> s{_chaSelfLink = a})++-- | The time of this modification.+chaModificationDate :: Lens' Change (Maybe UTCTime)+chaModificationDate+  = lens _chaModificationDate+      (\ s a -> s{_chaModificationDate = a})+      . mapping _DateTime++-- | The ID of the change.+chaId :: Lens' Change (Maybe Int64)+chaId+  = lens _chaId (\ s a -> s{_chaId = a}) .+      mapping _Coerce++-- | Whether the file has been deleted.+chaDeleted :: Lens' Change (Maybe Bool)+chaDeleted+  = lens _chaDeleted (\ s a -> s{_chaDeleted = a})++-- | The ID of the file associated with this change.+chaFileId :: Lens' Change (Maybe Text)+chaFileId+  = lens _chaFileId (\ s a -> s{_chaFileId = a})++-- | The updated state of the file. Present if the file has not been deleted.+chaFile :: Lens' Change (Maybe File)+chaFile = lens _chaFile (\ s a -> s{_chaFile = a})++instance FromJSON Change where+        parseJSON+          = withObject "Change"+              (\ o ->+                 Change <$>+                   (o .:? "kind" .!= "drive#change") <*>+                     (o .:? "selfLink")+                     <*> (o .:? "modificationDate")+                     <*> (o .:? "id")+                     <*> (o .:? "deleted")+                     <*> (o .:? "fileId")+                     <*> (o .:? "file"))++instance ToJSON Change where+        toJSON Change{..}+          = object+              (catMaybes+                 [Just ("kind" .= _chaKind),+                  ("selfLink" .=) <$> _chaSelfLink,+                  ("modificationDate" .=) <$> _chaModificationDate,+                  ("id" .=) <$> _chaId, ("deleted" .=) <$> _chaDeleted,+                  ("fileId" .=) <$> _chaFileId,+                  ("file" .=) <$> _chaFile])++-- | The apps resource provides a list of the apps that a user has installed,+-- with information about each app\'s supported MIME types, file+-- extensions, and other details.+--+-- /See:/ 'app' smart constructor.+data App = App+    { _aLongDescription         :: !(Maybe Text)+    , _aOpenURLTemplate         :: !(Maybe Text)+    , _aAuthorized              :: !(Maybe Bool)+    , _aObjectType              :: !(Maybe Text)+    , _aSecondaryMimeTypes      :: !(Maybe [Text])+    , _aCreateInFolderTemplate  :: !(Maybe Text)+    , _aKind                    :: !Text+    , _aIcons                   :: !(Maybe [AppIconsItem])+    , _aProductURL              :: !(Maybe Text)+    , _aUseByDefault            :: !(Maybe Bool)+    , _aShortDescription        :: !(Maybe Text)+    , _aName                    :: !(Maybe Text)+    , _aCreateURL               :: !(Maybe Text)+    , _aId                      :: !(Maybe Text)+    , _aPrimaryFileExtensions   :: !(Maybe [Text])+    , _aInstalled               :: !(Maybe Bool)+    , _aSupportsCreate          :: !(Maybe Bool)+    , _aPrimaryMimeTypes        :: !(Maybe [Text])+    , _aHasDriveWideScope       :: !(Maybe Bool)+    , _aProductId               :: !(Maybe Text)+    , _aSecondaryFileExtensions :: !(Maybe [Text])+    , _aSupportsMultiOpen       :: !(Maybe Bool)+    , _aSupportsImport          :: !(Maybe Bool)+    , _aSupportsOfflineCreate   :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'App' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aLongDescription'+--+-- * 'aOpenURLTemplate'+--+-- * 'aAuthorized'+--+-- * 'aObjectType'+--+-- * 'aSecondaryMimeTypes'+--+-- * 'aCreateInFolderTemplate'+--+-- * 'aKind'+--+-- * 'aIcons'+--+-- * 'aProductURL'+--+-- * 'aUseByDefault'+--+-- * 'aShortDescription'+--+-- * 'aName'+--+-- * 'aCreateURL'+--+-- * 'aId'+--+-- * 'aPrimaryFileExtensions'+--+-- * 'aInstalled'+--+-- * 'aSupportsCreate'+--+-- * 'aPrimaryMimeTypes'+--+-- * 'aHasDriveWideScope'+--+-- * 'aProductId'+--+-- * 'aSecondaryFileExtensions'+--+-- * 'aSupportsMultiOpen'+--+-- * 'aSupportsImport'+--+-- * 'aSupportsOfflineCreate'+app+    :: App+app =+    App+    { _aLongDescription = Nothing+    , _aOpenURLTemplate = Nothing+    , _aAuthorized = Nothing+    , _aObjectType = Nothing+    , _aSecondaryMimeTypes = Nothing+    , _aCreateInFolderTemplate = Nothing+    , _aKind = "drive#app"+    , _aIcons = Nothing+    , _aProductURL = Nothing+    , _aUseByDefault = Nothing+    , _aShortDescription = Nothing+    , _aName = Nothing+    , _aCreateURL = Nothing+    , _aId = Nothing+    , _aPrimaryFileExtensions = Nothing+    , _aInstalled = Nothing+    , _aSupportsCreate = Nothing+    , _aPrimaryMimeTypes = Nothing+    , _aHasDriveWideScope = Nothing+    , _aProductId = Nothing+    , _aSecondaryFileExtensions = Nothing+    , _aSupportsMultiOpen = Nothing+    , _aSupportsImport = Nothing+    , _aSupportsOfflineCreate = Nothing+    }++-- | A long description of the app.+aLongDescription :: Lens' App (Maybe Text)+aLongDescription+  = lens _aLongDescription+      (\ s a -> s{_aLongDescription = a})++-- | The template url for opening files with this app. The template will+-- contain {ids} and\/or {exportIds} to be replaced by the actual file ids.+-- See Open Files for the full documentation.+aOpenURLTemplate :: Lens' App (Maybe Text)+aOpenURLTemplate+  = lens _aOpenURLTemplate+      (\ s a -> s{_aOpenURLTemplate = a})++-- | Whether the app is authorized to access data on the user\'s Drive.+aAuthorized :: Lens' App (Maybe Bool)+aAuthorized+  = lens _aAuthorized (\ s a -> s{_aAuthorized = a})++-- | The type of object this app creates (e.g. Chart). If empty, the app name+-- should be used instead.+aObjectType :: Lens' App (Maybe Text)+aObjectType+  = lens _aObjectType (\ s a -> s{_aObjectType = a})++-- | The list of secondary mime types.+aSecondaryMimeTypes :: Lens' App [Text]+aSecondaryMimeTypes+  = lens _aSecondaryMimeTypes+      (\ s a -> s{_aSecondaryMimeTypes = a})+      . _Default+      . _Coerce++-- | The template url to create a new file with this app in a given folder.+-- The template will contain {folderId} to be replaced by the folder to+-- create the new file in.+aCreateInFolderTemplate :: Lens' App (Maybe Text)+aCreateInFolderTemplate+  = lens _aCreateInFolderTemplate+      (\ s a -> s{_aCreateInFolderTemplate = a})++-- | This is always drive#app.+aKind :: Lens' App Text+aKind = lens _aKind (\ s a -> s{_aKind = a})++-- | The various icons for the app.+aIcons :: Lens' App [AppIconsItem]+aIcons+  = lens _aIcons (\ s a -> s{_aIcons = a}) . _Default .+      _Coerce++-- | A link to the product listing for this app.+aProductURL :: Lens' App (Maybe Text)+aProductURL+  = lens _aProductURL (\ s a -> s{_aProductURL = a})++-- | Whether the app is selected as the default handler for the types it+-- supports.+aUseByDefault :: Lens' App (Maybe Bool)+aUseByDefault+  = lens _aUseByDefault+      (\ s a -> s{_aUseByDefault = a})++-- | A short description of the app.+aShortDescription :: Lens' App (Maybe Text)+aShortDescription+  = lens _aShortDescription+      (\ s a -> s{_aShortDescription = a})++-- | The name of the app.+aName :: Lens' App (Maybe Text)+aName = lens _aName (\ s a -> s{_aName = a})++-- | The url to create a new file with this app.+aCreateURL :: Lens' App (Maybe Text)+aCreateURL+  = lens _aCreateURL (\ s a -> s{_aCreateURL = a})++-- | The ID of the app.+aId :: Lens' App (Maybe Text)+aId = lens _aId (\ s a -> s{_aId = a})++-- | The list of primary file extensions.+aPrimaryFileExtensions :: Lens' App [Text]+aPrimaryFileExtensions+  = lens _aPrimaryFileExtensions+      (\ s a -> s{_aPrimaryFileExtensions = a})+      . _Default+      . _Coerce++-- | Whether the app is installed.+aInstalled :: Lens' App (Maybe Bool)+aInstalled+  = lens _aInstalled (\ s a -> s{_aInstalled = a})++-- | Whether this app supports creating new objects.+aSupportsCreate :: Lens' App (Maybe Bool)+aSupportsCreate+  = lens _aSupportsCreate+      (\ s a -> s{_aSupportsCreate = a})++-- | The list of primary mime types.+aPrimaryMimeTypes :: Lens' App [Text]+aPrimaryMimeTypes+  = lens _aPrimaryMimeTypes+      (\ s a -> s{_aPrimaryMimeTypes = a})+      . _Default+      . _Coerce++-- | Whether the app has drive-wide scope. An app with drive-wide scope can+-- access all files in the user\'s drive.+aHasDriveWideScope :: Lens' App (Maybe Bool)+aHasDriveWideScope+  = lens _aHasDriveWideScope+      (\ s a -> s{_aHasDriveWideScope = a})++-- | The ID of the product listing for this app.+aProductId :: Lens' App (Maybe Text)+aProductId+  = lens _aProductId (\ s a -> s{_aProductId = a})++-- | The list of secondary file extensions.+aSecondaryFileExtensions :: Lens' App [Text]+aSecondaryFileExtensions+  = lens _aSecondaryFileExtensions+      (\ s a -> s{_aSecondaryFileExtensions = a})+      . _Default+      . _Coerce++-- | Whether this app supports opening more than one file.+aSupportsMultiOpen :: Lens' App (Maybe Bool)+aSupportsMultiOpen+  = lens _aSupportsMultiOpen+      (\ s a -> s{_aSupportsMultiOpen = a})++-- | Whether this app supports importing Google Docs.+aSupportsImport :: Lens' App (Maybe Bool)+aSupportsImport+  = lens _aSupportsImport+      (\ s a -> s{_aSupportsImport = a})++-- | Whether this app supports creating new files when offline.+aSupportsOfflineCreate :: Lens' App (Maybe Bool)+aSupportsOfflineCreate+  = lens _aSupportsOfflineCreate+      (\ s a -> s{_aSupportsOfflineCreate = a})++instance FromJSON App where+        parseJSON+          = withObject "App"+              (\ o ->+                 App <$>+                   (o .:? "longDescription") <*>+                     (o .:? "openUrlTemplate")+                     <*> (o .:? "authorized")+                     <*> (o .:? "objectType")+                     <*> (o .:? "secondaryMimeTypes" .!= mempty)+                     <*> (o .:? "createInFolderTemplate")+                     <*> (o .:? "kind" .!= "drive#app")+                     <*> (o .:? "icons" .!= mempty)+                     <*> (o .:? "productUrl")+                     <*> (o .:? "useByDefault")+                     <*> (o .:? "shortDescription")+                     <*> (o .:? "name")+                     <*> (o .:? "createUrl")+                     <*> (o .:? "id")+                     <*> (o .:? "primaryFileExtensions" .!= mempty)+                     <*> (o .:? "installed")+                     <*> (o .:? "supportsCreate")+                     <*> (o .:? "primaryMimeTypes" .!= mempty)+                     <*> (o .:? "hasDriveWideScope")+                     <*> (o .:? "productId")+                     <*> (o .:? "secondaryFileExtensions" .!= mempty)+                     <*> (o .:? "supportsMultiOpen")+                     <*> (o .:? "supportsImport")+                     <*> (o .:? "supportsOfflineCreate"))++instance ToJSON App where+        toJSON App{..}+          = object+              (catMaybes+                 [("longDescription" .=) <$> _aLongDescription,+                  ("openUrlTemplate" .=) <$> _aOpenURLTemplate,+                  ("authorized" .=) <$> _aAuthorized,+                  ("objectType" .=) <$> _aObjectType,+                  ("secondaryMimeTypes" .=) <$> _aSecondaryMimeTypes,+                  ("createInFolderTemplate" .=) <$>+                    _aCreateInFolderTemplate,+                  Just ("kind" .= _aKind), ("icons" .=) <$> _aIcons,+                  ("productUrl" .=) <$> _aProductURL,+                  ("useByDefault" .=) <$> _aUseByDefault,+                  ("shortDescription" .=) <$> _aShortDescription,+                  ("name" .=) <$> _aName,+                  ("createUrl" .=) <$> _aCreateURL, ("id" .=) <$> _aId,+                  ("primaryFileExtensions" .=) <$>+                    _aPrimaryFileExtensions,+                  ("installed" .=) <$> _aInstalled,+                  ("supportsCreate" .=) <$> _aSupportsCreate,+                  ("primaryMimeTypes" .=) <$> _aPrimaryMimeTypes,+                  ("hasDriveWideScope" .=) <$> _aHasDriveWideScope,+                  ("productId" .=) <$> _aProductId,+                  ("secondaryFileExtensions" .=) <$>+                    _aSecondaryFileExtensions,+                  ("supportsMultiOpen" .=) <$> _aSupportsMultiOpen,+                  ("supportsImport" .=) <$> _aSupportsImport,+                  ("supportsOfflineCreate" .=) <$>+                    _aSupportsOfflineCreate])++-- | A reference to a folder\'s child.+--+-- /See:/ 'childReference' smart constructor.+data ChildReference = ChildReference+    { _crChildLink :: !(Maybe Text)+    , _crKind      :: !Text+    , _crSelfLink  :: !(Maybe Text)+    , _crId        :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChildReference' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crChildLink'+--+-- * 'crKind'+--+-- * 'crSelfLink'+--+-- * 'crId'+childReference+    :: ChildReference+childReference =+    ChildReference+    { _crChildLink = Nothing+    , _crKind = "drive#childReference"+    , _crSelfLink = Nothing+    , _crId = Nothing+    }++-- | A link to the child.+crChildLink :: Lens' ChildReference (Maybe Text)+crChildLink+  = lens _crChildLink (\ s a -> s{_crChildLink = a})++-- | This is always drive#childReference.+crKind :: Lens' ChildReference Text+crKind = lens _crKind (\ s a -> s{_crKind = a})++-- | A link back to this reference.+crSelfLink :: Lens' ChildReference (Maybe Text)+crSelfLink+  = lens _crSelfLink (\ s a -> s{_crSelfLink = a})++-- | The ID of the child.+crId :: Lens' ChildReference (Maybe Text)+crId = lens _crId (\ s a -> s{_crId = a})++instance FromJSON ChildReference where+        parseJSON+          = withObject "ChildReference"+              (\ o ->+                 ChildReference <$>+                   (o .:? "childLink") <*>+                     (o .:? "kind" .!= "drive#childReference")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON ChildReference where+        toJSON ChildReference{..}+          = object+              (catMaybes+                 [("childLink" .=) <$> _crChildLink,+                  Just ("kind" .= _crKind),+                  ("selfLink" .=) <$> _crSelfLink,+                  ("id" .=) <$> _crId])++--+-- /See:/ 'aboutMaxUploadSizesItem' smart constructor.+data AboutMaxUploadSizesItem = AboutMaxUploadSizesItem+    { _amusiSize :: !(Maybe (Textual Int64))+    , _amusiType :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AboutMaxUploadSizesItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'amusiSize'+--+-- * 'amusiType'+aboutMaxUploadSizesItem+    :: AboutMaxUploadSizesItem+aboutMaxUploadSizesItem =+    AboutMaxUploadSizesItem+    { _amusiSize = Nothing+    , _amusiType = Nothing+    }++-- | The max upload size for this type.+amusiSize :: Lens' AboutMaxUploadSizesItem (Maybe Int64)+amusiSize+  = lens _amusiSize (\ s a -> s{_amusiSize = a}) .+      mapping _Coerce++-- | The file type.+amusiType :: Lens' AboutMaxUploadSizesItem (Maybe Text)+amusiType+  = lens _amusiType (\ s a -> s{_amusiType = a})++instance FromJSON AboutMaxUploadSizesItem where+        parseJSON+          = withObject "AboutMaxUploadSizesItem"+              (\ o ->+                 AboutMaxUploadSizesItem <$>+                   (o .:? "size") <*> (o .:? "type"))++instance ToJSON AboutMaxUploadSizesItem where+        toJSON AboutMaxUploadSizesItem{..}+          = object+              (catMaybes+                 [("size" .=) <$> _amusiSize,+                  ("type" .=) <$> _amusiType])++-- | A JSON representation of a reply to a comment on a file in Google Drive.+--+-- /See:/ 'commentReply' smart constructor.+data CommentReply = CommentReply+    { _comHTMLContent  :: !(Maybe Text)+    , _comKind         :: !Text+    , _comContent      :: !(Maybe Text)+    , _comCreatedDate  :: !(Maybe DateTime')+    , _comReplyId      :: !(Maybe Text)+    , _comAuthor       :: !(Maybe User)+    , _comModifiedDate :: !(Maybe DateTime')+    , _comDeleted      :: !(Maybe Bool)+    , _comVerb         :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CommentReply' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'comHTMLContent'+--+-- * 'comKind'+--+-- * 'comContent'+--+-- * 'comCreatedDate'+--+-- * 'comReplyId'+--+-- * 'comAuthor'+--+-- * 'comModifiedDate'+--+-- * 'comDeleted'+--+-- * 'comVerb'+commentReply+    :: CommentReply+commentReply =+    CommentReply+    { _comHTMLContent = Nothing+    , _comKind = "drive#commentReply"+    , _comContent = Nothing+    , _comCreatedDate = Nothing+    , _comReplyId = Nothing+    , _comAuthor = Nothing+    , _comModifiedDate = Nothing+    , _comDeleted = Nothing+    , _comVerb = Nothing+    }++-- | HTML formatted content for this reply.+comHTMLContent :: Lens' CommentReply (Maybe Text)+comHTMLContent+  = lens _comHTMLContent+      (\ s a -> s{_comHTMLContent = a})++-- | This is always drive#commentReply.+comKind :: Lens' CommentReply Text+comKind = lens _comKind (\ s a -> s{_comKind = a})++-- | The plain text content used to create this reply. This is not HTML safe+-- and should only be used as a starting point to make edits to a reply\'s+-- content. This field is required on inserts if no verb is specified+-- (resolve\/reopen).+comContent :: Lens' CommentReply (Maybe Text)+comContent+  = lens _comContent (\ s a -> s{_comContent = a})++-- | The date when this reply was first created.+comCreatedDate :: Lens' CommentReply (Maybe UTCTime)+comCreatedDate+  = lens _comCreatedDate+      (\ s a -> s{_comCreatedDate = a})+      . mapping _DateTime++-- | The ID of the reply.+comReplyId :: Lens' CommentReply (Maybe Text)+comReplyId+  = lens _comReplyId (\ s a -> s{_comReplyId = a})++-- | The user who wrote this reply.+comAuthor :: Lens' CommentReply (Maybe User)+comAuthor+  = lens _comAuthor (\ s a -> s{_comAuthor = a})++-- | The date when this reply was last modified.+comModifiedDate :: Lens' CommentReply (Maybe UTCTime)+comModifiedDate+  = lens _comModifiedDate+      (\ s a -> s{_comModifiedDate = a})+      . mapping _DateTime++-- | Whether this reply has been deleted. If a reply has been deleted the+-- content will be cleared and this will only represent a reply that once+-- existed.+comDeleted :: Lens' CommentReply (Maybe Bool)+comDeleted+  = lens _comDeleted (\ s a -> s{_comDeleted = a})++-- | The action this reply performed to the parent comment. When creating a+-- new reply this is the action to be perform to the parent comment.+-- Possible values are: - \"resolve\" - To resolve a comment. - \"reopen\"+-- - To reopen (un-resolve) a comment.+comVerb :: Lens' CommentReply (Maybe Text)+comVerb = lens _comVerb (\ s a -> s{_comVerb = a})++instance FromJSON CommentReply where+        parseJSON+          = withObject "CommentReply"+              (\ o ->+                 CommentReply <$>+                   (o .:? "htmlContent") <*>+                     (o .:? "kind" .!= "drive#commentReply")+                     <*> (o .:? "content")+                     <*> (o .:? "createdDate")+                     <*> (o .:? "replyId")+                     <*> (o .:? "author")+                     <*> (o .:? "modifiedDate")+                     <*> (o .:? "deleted")+                     <*> (o .:? "verb"))++instance ToJSON CommentReply where+        toJSON CommentReply{..}+          = object+              (catMaybes+                 [("htmlContent" .=) <$> _comHTMLContent,+                  Just ("kind" .= _comKind),+                  ("content" .=) <$> _comContent,+                  ("createdDate" .=) <$> _comCreatedDate,+                  ("replyId" .=) <$> _comReplyId,+                  ("author" .=) <$> _comAuthor,+                  ("modifiedDate" .=) <$> _comModifiedDate,+                  ("deleted" .=) <$> _comDeleted,+                  ("verb" .=) <$> _comVerb])++--+-- /See:/ 'aboutQuotaBytesByServiceItem' smart constructor.+data AboutQuotaBytesByServiceItem = AboutQuotaBytesByServiceItem+    { _aqbbsiBytesUsed   :: !(Maybe (Textual Int64))+    , _aqbbsiServiceName :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AboutQuotaBytesByServiceItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aqbbsiBytesUsed'+--+-- * 'aqbbsiServiceName'+aboutQuotaBytesByServiceItem+    :: AboutQuotaBytesByServiceItem+aboutQuotaBytesByServiceItem =+    AboutQuotaBytesByServiceItem+    { _aqbbsiBytesUsed = Nothing+    , _aqbbsiServiceName = Nothing+    }++-- | The storage quota bytes used by the service.+aqbbsiBytesUsed :: Lens' AboutQuotaBytesByServiceItem (Maybe Int64)+aqbbsiBytesUsed+  = lens _aqbbsiBytesUsed+      (\ s a -> s{_aqbbsiBytesUsed = a})+      . mapping _Coerce++-- | The service\'s name, e.g. DRIVE, GMAIL, or PHOTOS.+aqbbsiServiceName :: Lens' AboutQuotaBytesByServiceItem (Maybe Text)+aqbbsiServiceName+  = lens _aqbbsiServiceName+      (\ s a -> s{_aqbbsiServiceName = a})++instance FromJSON AboutQuotaBytesByServiceItem where+        parseJSON+          = withObject "AboutQuotaBytesByServiceItem"+              (\ o ->+                 AboutQuotaBytesByServiceItem <$>+                   (o .:? "bytesUsed") <*> (o .:? "serviceName"))++instance ToJSON AboutQuotaBytesByServiceItem where+        toJSON AboutQuotaBytesByServiceItem{..}+          = object+              (catMaybes+                 [("bytesUsed" .=) <$> _aqbbsiBytesUsed,+                  ("serviceName" .=) <$> _aqbbsiServiceName])++-- | The JSON template for a user.+--+-- /See:/ 'user' smart constructor.+data User = User+    { _uIsAuthenticatedUser :: !(Maybe Bool)+    , _uKind                :: !Text+    , _uPicture             :: !(Maybe UserPicture)+    , _uEmailAddress        :: !(Maybe Text)+    , _uDisplayName         :: !(Maybe Text)+    , _uPermissionId        :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'User' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uIsAuthenticatedUser'+--+-- * 'uKind'+--+-- * 'uPicture'+--+-- * 'uEmailAddress'+--+-- * 'uDisplayName'+--+-- * 'uPermissionId'+user+    :: User+user =+    User+    { _uIsAuthenticatedUser = Nothing+    , _uKind = "drive#user"+    , _uPicture = Nothing+    , _uEmailAddress = Nothing+    , _uDisplayName = Nothing+    , _uPermissionId = Nothing+    }++-- | Whether this user is the same as the authenticated user for whom the+-- request was made.+uIsAuthenticatedUser :: Lens' User (Maybe Bool)+uIsAuthenticatedUser+  = lens _uIsAuthenticatedUser+      (\ s a -> s{_uIsAuthenticatedUser = a})++-- | This is always drive#user.+uKind :: Lens' User Text+uKind = lens _uKind (\ s a -> s{_uKind = a})++-- | The user\'s profile picture.+uPicture :: Lens' User (Maybe UserPicture)+uPicture = lens _uPicture (\ s a -> s{_uPicture = a})++-- | The email address of the user.+uEmailAddress :: Lens' User (Maybe Text)+uEmailAddress+  = lens _uEmailAddress+      (\ s a -> s{_uEmailAddress = a})++-- | A plain text displayable name for this user.+uDisplayName :: Lens' User (Maybe Text)+uDisplayName+  = lens _uDisplayName (\ s a -> s{_uDisplayName = a})++-- | The user\'s ID as visible in the permissions collection.+uPermissionId :: Lens' User (Maybe Text)+uPermissionId+  = lens _uPermissionId+      (\ s a -> s{_uPermissionId = a})++instance FromJSON User where+        parseJSON+          = withObject "User"+              (\ o ->+                 User <$>+                   (o .:? "isAuthenticatedUser") <*>+                     (o .:? "kind" .!= "drive#user")+                     <*> (o .:? "picture")+                     <*> (o .:? "emailAddress")+                     <*> (o .:? "displayName")+                     <*> (o .:? "permissionId"))++instance ToJSON User where+        toJSON User{..}+          = object+              (catMaybes+                 [("isAuthenticatedUser" .=) <$>+                    _uIsAuthenticatedUser,+                  Just ("kind" .= _uKind),+                  ("picture" .=) <$> _uPicture,+                  ("emailAddress" .=) <$> _uEmailAddress,+                  ("displayName" .=) <$> _uDisplayName,+                  ("permissionId" .=) <$> _uPermissionId])++--+-- /See:/ 'aboutExportFormatsItem' smart constructor.+data AboutExportFormatsItem = AboutExportFormatsItem+    { _aefiTargets :: !(Maybe [Text])+    , _aefiSource  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AboutExportFormatsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aefiTargets'+--+-- * 'aefiSource'+aboutExportFormatsItem+    :: AboutExportFormatsItem+aboutExportFormatsItem =+    AboutExportFormatsItem+    { _aefiTargets = Nothing+    , _aefiSource = Nothing+    }++-- | The possible content types to convert to.+aefiTargets :: Lens' AboutExportFormatsItem [Text]+aefiTargets+  = lens _aefiTargets (\ s a -> s{_aefiTargets = a}) .+      _Default+      . _Coerce++-- | The content type to convert from.+aefiSource :: Lens' AboutExportFormatsItem (Maybe Text)+aefiSource+  = lens _aefiSource (\ s a -> s{_aefiSource = a})++instance FromJSON AboutExportFormatsItem where+        parseJSON+          = withObject "AboutExportFormatsItem"+              (\ o ->+                 AboutExportFormatsItem <$>+                   (o .:? "targets" .!= mempty) <*> (o .:? "source"))++instance ToJSON AboutExportFormatsItem where+        toJSON AboutExportFormatsItem{..}+          = object+              (catMaybes+                 [("targets" .=) <$> _aefiTargets,+                  ("source" .=) <$> _aefiSource])++-- | A list of changes for a user.+--+-- /See:/ 'changeList' smart constructor.+data ChangeList = ChangeList+    { _cllEtag            :: !(Maybe Text)+    , _cllNextPageToken   :: !(Maybe Text)+    , _cllNextLink        :: !(Maybe Text)+    , _cllKind            :: !Text+    , _cllItems           :: !(Maybe [Change])+    , _cllSelfLink        :: !(Maybe Text)+    , _cllLargestChangeId :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChangeList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cllEtag'+--+-- * 'cllNextPageToken'+--+-- * 'cllNextLink'+--+-- * 'cllKind'+--+-- * 'cllItems'+--+-- * 'cllSelfLink'+--+-- * 'cllLargestChangeId'+changeList+    :: ChangeList+changeList =+    ChangeList+    { _cllEtag = Nothing+    , _cllNextPageToken = Nothing+    , _cllNextLink = Nothing+    , _cllKind = "drive#changeList"+    , _cllItems = Nothing+    , _cllSelfLink = Nothing+    , _cllLargestChangeId = Nothing+    }++-- | The ETag of the list.+cllEtag :: Lens' ChangeList (Maybe Text)+cllEtag = lens _cllEtag (\ s a -> s{_cllEtag = a})++-- | The page token for the next page of changes.+cllNextPageToken :: Lens' ChangeList (Maybe Text)+cllNextPageToken+  = lens _cllNextPageToken+      (\ s a -> s{_cllNextPageToken = a})++-- | A link to the next page of changes.+cllNextLink :: Lens' ChangeList (Maybe Text)+cllNextLink+  = lens _cllNextLink (\ s a -> s{_cllNextLink = a})++-- | This is always drive#changeList.+cllKind :: Lens' ChangeList Text+cllKind = lens _cllKind (\ s a -> s{_cllKind = a})++-- | The actual list of changes.+cllItems :: Lens' ChangeList [Change]+cllItems+  = lens _cllItems (\ s a -> s{_cllItems = a}) .+      _Default+      . _Coerce++-- | A link back to this list.+cllSelfLink :: Lens' ChangeList (Maybe Text)+cllSelfLink+  = lens _cllSelfLink (\ s a -> s{_cllSelfLink = a})++-- | The current largest change ID.+cllLargestChangeId :: Lens' ChangeList (Maybe Int64)+cllLargestChangeId+  = lens _cllLargestChangeId+      (\ s a -> s{_cllLargestChangeId = a})+      . mapping _Coerce++instance FromJSON ChangeList where+        parseJSON+          = withObject "ChangeList"+              (\ o ->+                 ChangeList <$>+                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>+                     (o .:? "nextLink")+                     <*> (o .:? "kind" .!= "drive#changeList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "largestChangeId"))++instance ToJSON ChangeList where+        toJSON ChangeList{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _cllEtag,+                  ("nextPageToken" .=) <$> _cllNextPageToken,+                  ("nextLink" .=) <$> _cllNextLink,+                  Just ("kind" .= _cllKind),+                  ("items" .=) <$> _cllItems,+                  ("selfLink" .=) <$> _cllSelfLink,+                  ("largestChangeId" .=) <$> _cllLargestChangeId])++-- | Links for exporting Google Docs to specific formats.+--+-- /See:/ 'revisionExportLinks' smart constructor.+newtype RevisionExportLinks = RevisionExportLinks+    { _relAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RevisionExportLinks' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'relAddtional'+revisionExportLinks+    :: HashMap Text Text -- ^ 'relAddtional'+    -> RevisionExportLinks+revisionExportLinks pRelAddtional_ =+    RevisionExportLinks+    { _relAddtional = _Coerce # pRelAddtional_+    }++-- | A mapping from export format to URL+relAddtional :: Lens' RevisionExportLinks (HashMap Text Text)+relAddtional+  = lens _relAddtional (\ s a -> s{_relAddtional = a})+      . _Coerce++instance FromJSON RevisionExportLinks where+        parseJSON+          = withObject "RevisionExportLinks"+              (\ o -> RevisionExportLinks <$> (parseJSONObject o))++instance ToJSON RevisionExportLinks where+        toJSON = toJSON . _relAddtional++-- | Indexable text attributes for the file (can only be written)+--+-- /See:/ 'fileIndexableText' smart constructor.+newtype FileIndexableText = FileIndexableText+    { _fitText :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FileIndexableText' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fitText'+fileIndexableText+    :: FileIndexableText+fileIndexableText =+    FileIndexableText+    { _fitText = Nothing+    }++-- | The text to be indexed for this file.+fitText :: Lens' FileIndexableText (Maybe Text)+fitText = lens _fitText (\ s a -> s{_fitText = a})++instance FromJSON FileIndexableText where+        parseJSON+          = withObject "FileIndexableText"+              (\ o -> FileIndexableText <$> (o .:? "text"))++instance ToJSON FileIndexableText where+        toJSON FileIndexableText{..}+          = object (catMaybes [("text" .=) <$> _fitText])++--+-- /See:/ 'aboutFeaturesItem' smart constructor.+data AboutFeaturesItem = AboutFeaturesItem+    { _afiFeatureRate :: !(Maybe (Textual Double))+    , _afiFeatureName :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AboutFeaturesItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'afiFeatureRate'+--+-- * 'afiFeatureName'+aboutFeaturesItem+    :: AboutFeaturesItem+aboutFeaturesItem =+    AboutFeaturesItem+    { _afiFeatureRate = Nothing+    , _afiFeatureName = Nothing+    }++-- | The request limit rate for this feature, in queries per second.+afiFeatureRate :: Lens' AboutFeaturesItem (Maybe Double)+afiFeatureRate+  = lens _afiFeatureRate+      (\ s a -> s{_afiFeatureRate = a})+      . mapping _Coerce++-- | The name of the feature.+afiFeatureName :: Lens' AboutFeaturesItem (Maybe Text)+afiFeatureName+  = lens _afiFeatureName+      (\ s a -> s{_afiFeatureName = a})++instance FromJSON AboutFeaturesItem where+        parseJSON+          = withObject "AboutFeaturesItem"+              (\ o ->+                 AboutFeaturesItem <$>+                   (o .:? "featureRate") <*> (o .:? "featureName"))++instance ToJSON AboutFeaturesItem where+        toJSON AboutFeaturesItem{..}+          = object+              (catMaybes+                 [("featureRate" .=) <$> _afiFeatureRate,+                  ("featureName" .=) <$> _afiFeatureName])++-- | Additional parameters controlling delivery channel behavior. Optional.+--+-- /See:/ 'channelParams' smart constructor.+newtype ChannelParams = ChannelParams+    { _cpAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChannelParams' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpAddtional'+channelParams+    :: HashMap Text Text -- ^ 'cpAddtional'+    -> ChannelParams+channelParams pCpAddtional_ =+    ChannelParams+    { _cpAddtional = _Coerce # pCpAddtional_+    }++-- | Declares a new parameter by name.+cpAddtional :: Lens' ChannelParams (HashMap Text Text)+cpAddtional+  = lens _cpAddtional (\ s a -> s{_cpAddtional = a}) .+      _Coerce++instance FromJSON ChannelParams where+        parseJSON+          = withObject "ChannelParams"+              (\ o -> ChannelParams <$> (parseJSONObject o))++instance ToJSON ChannelParams where+        toJSON = toJSON . _cpAddtional++-- | An item with user information and settings.+--+-- /See:/ 'about' smart constructor.+data About = About+    { _aboExportFormats           :: !(Maybe [AboutExportFormatsItem])+    , _aboRemainingChangeIds      :: !(Maybe (Textual Int64))+    , _aboLanguageCode            :: !(Maybe Text)+    , _aboEtag                    :: !(Maybe Text)+    , _aboImportFormats           :: !(Maybe [AboutImportFormatsItem])+    , _aboKind                    :: !Text+    , _aboDomainSharingPolicy     :: !(Maybe Text)+    , _aboQuotaBytesUsedInTrash   :: !(Maybe (Textual Int64))+    , _aboQuotaType               :: !(Maybe Text)+    , _aboMaxUploadSizes          :: !(Maybe [AboutMaxUploadSizesItem])+    , _aboUser                    :: !(Maybe User)+    , _aboSelfLink                :: !(Maybe Text)+    , _aboName                    :: !(Maybe Text)+    , _aboFeatures                :: !(Maybe [AboutFeaturesItem])+    , _aboIsCurrentAppInstalled   :: !(Maybe Bool)+    , _aboQuotaBytesTotal         :: !(Maybe (Textual Int64))+    , _aboRootFolderId            :: !(Maybe Text)+    , _aboQuotaBytesUsed          :: !(Maybe (Textual Int64))+    , _aboAdditionalRoleInfo      :: !(Maybe [AboutAdditionalRoleInfoItem])+    , _aboFolderColorPalette      :: !(Maybe [Text])+    , _aboPermissionId            :: !(Maybe Text)+    , _aboQuotaBytesUsedAggregate :: !(Maybe (Textual Int64))+    , _aboQuotaBytesByService     :: !(Maybe [AboutQuotaBytesByServiceItem])+    , _aboLargestChangeId         :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'About' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aboExportFormats'+--+-- * 'aboRemainingChangeIds'+--+-- * 'aboLanguageCode'+--+-- * 'aboEtag'+--+-- * 'aboImportFormats'+--+-- * 'aboKind'+--+-- * 'aboDomainSharingPolicy'+--+-- * 'aboQuotaBytesUsedInTrash'+--+-- * 'aboQuotaType'+--+-- * 'aboMaxUploadSizes'+--+-- * 'aboUser'+--+-- * 'aboSelfLink'+--+-- * 'aboName'+--+-- * 'aboFeatures'+--+-- * 'aboIsCurrentAppInstalled'+--+-- * 'aboQuotaBytesTotal'+--+-- * 'aboRootFolderId'+--+-- * 'aboQuotaBytesUsed'+--+-- * 'aboAdditionalRoleInfo'+--+-- * 'aboFolderColorPalette'+--+-- * 'aboPermissionId'+--+-- * 'aboQuotaBytesUsedAggregate'+--+-- * 'aboQuotaBytesByService'+--+-- * 'aboLargestChangeId'+about+    :: About+about =+    About+    { _aboExportFormats = Nothing+    , _aboRemainingChangeIds = Nothing+    , _aboLanguageCode = Nothing+    , _aboEtag = Nothing+    , _aboImportFormats = Nothing+    , _aboKind = "drive#about"+    , _aboDomainSharingPolicy = Nothing+    , _aboQuotaBytesUsedInTrash = Nothing+    , _aboQuotaType = Nothing+    , _aboMaxUploadSizes = Nothing+    , _aboUser = Nothing+    , _aboSelfLink = Nothing+    , _aboName = Nothing+    , _aboFeatures = Nothing+    , _aboIsCurrentAppInstalled = Nothing+    , _aboQuotaBytesTotal = Nothing+    , _aboRootFolderId = Nothing+    , _aboQuotaBytesUsed = Nothing+    , _aboAdditionalRoleInfo = Nothing+    , _aboFolderColorPalette = Nothing+    , _aboPermissionId = Nothing+    , _aboQuotaBytesUsedAggregate = Nothing+    , _aboQuotaBytesByService = Nothing+    , _aboLargestChangeId = Nothing+    }++-- | The allowable export formats.+aboExportFormats :: Lens' About [AboutExportFormatsItem]+aboExportFormats+  = lens _aboExportFormats+      (\ s a -> s{_aboExportFormats = a})+      . _Default+      . _Coerce++-- | The number of remaining change ids.+aboRemainingChangeIds :: Lens' About (Maybe Int64)+aboRemainingChangeIds+  = lens _aboRemainingChangeIds+      (\ s a -> s{_aboRemainingChangeIds = a})+      . mapping _Coerce++-- | The user\'s language or locale code, as defined by BCP 47, with some+-- extensions from Unicode\'s LDML format+-- (http:\/\/www.unicode.org\/reports\/tr35\/).+aboLanguageCode :: Lens' About (Maybe Text)+aboLanguageCode+  = lens _aboLanguageCode+      (\ s a -> s{_aboLanguageCode = a})++-- | The ETag of the item.+aboEtag :: Lens' About (Maybe Text)+aboEtag = lens _aboEtag (\ s a -> s{_aboEtag = a})++-- | The allowable import formats.+aboImportFormats :: Lens' About [AboutImportFormatsItem]+aboImportFormats+  = lens _aboImportFormats+      (\ s a -> s{_aboImportFormats = a})+      . _Default+      . _Coerce++-- | This is always drive#about.+aboKind :: Lens' About Text+aboKind = lens _aboKind (\ s a -> s{_aboKind = a})++-- | The domain sharing policy for the current user. Possible values are: -+-- allowed - allowedWithWarning - incomingOnly - disallowed+aboDomainSharingPolicy :: Lens' About (Maybe Text)+aboDomainSharingPolicy+  = lens _aboDomainSharingPolicy+      (\ s a -> s{_aboDomainSharingPolicy = a})++-- | The number of quota bytes used by trashed items.+aboQuotaBytesUsedInTrash :: Lens' About (Maybe Int64)+aboQuotaBytesUsedInTrash+  = lens _aboQuotaBytesUsedInTrash+      (\ s a -> s{_aboQuotaBytesUsedInTrash = a})+      . mapping _Coerce++-- | The type of the user\'s storage quota. Possible values are: - LIMITED -+-- UNLIMITED+aboQuotaType :: Lens' About (Maybe Text)+aboQuotaType+  = lens _aboQuotaType (\ s a -> s{_aboQuotaType = a})++-- | List of max upload sizes for each file type. The most specific type+-- takes precedence.+aboMaxUploadSizes :: Lens' About [AboutMaxUploadSizesItem]+aboMaxUploadSizes+  = lens _aboMaxUploadSizes+      (\ s a -> s{_aboMaxUploadSizes = a})+      . _Default+      . _Coerce++-- | The authenticated user.+aboUser :: Lens' About (Maybe User)+aboUser = lens _aboUser (\ s a -> s{_aboUser = a})++-- | A link back to this item.+aboSelfLink :: Lens' About (Maybe Text)+aboSelfLink+  = lens _aboSelfLink (\ s a -> s{_aboSelfLink = a})++-- | The name of the current user.+aboName :: Lens' About (Maybe Text)+aboName = lens _aboName (\ s a -> s{_aboName = a})++-- | List of additional features enabled on this account.+aboFeatures :: Lens' About [AboutFeaturesItem]+aboFeatures+  = lens _aboFeatures (\ s a -> s{_aboFeatures = a}) .+      _Default+      . _Coerce++-- | A boolean indicating whether the authenticated app is installed by the+-- authenticated user.+aboIsCurrentAppInstalled :: Lens' About (Maybe Bool)+aboIsCurrentAppInstalled+  = lens _aboIsCurrentAppInstalled+      (\ s a -> s{_aboIsCurrentAppInstalled = a})++-- | The total number of quota bytes.+aboQuotaBytesTotal :: Lens' About (Maybe Int64)+aboQuotaBytesTotal+  = lens _aboQuotaBytesTotal+      (\ s a -> s{_aboQuotaBytesTotal = a})+      . mapping _Coerce++-- | The id of the root folder.+aboRootFolderId :: Lens' About (Maybe Text)+aboRootFolderId+  = lens _aboRootFolderId+      (\ s a -> s{_aboRootFolderId = a})++-- | The number of quota bytes used by Google Drive.+aboQuotaBytesUsed :: Lens' About (Maybe Int64)+aboQuotaBytesUsed+  = lens _aboQuotaBytesUsed+      (\ s a -> s{_aboQuotaBytesUsed = a})+      . mapping _Coerce++-- | Information about supported additional roles per file type. The most+-- specific type takes precedence.+aboAdditionalRoleInfo :: Lens' About [AboutAdditionalRoleInfoItem]+aboAdditionalRoleInfo+  = lens _aboAdditionalRoleInfo+      (\ s a -> s{_aboAdditionalRoleInfo = a})+      . _Default+      . _Coerce++-- | The palette of allowable folder colors as RGB hex strings.+aboFolderColorPalette :: Lens' About [Text]+aboFolderColorPalette+  = lens _aboFolderColorPalette+      (\ s a -> s{_aboFolderColorPalette = a})+      . _Default+      . _Coerce++-- | The current user\'s ID as visible in the permissions collection.+aboPermissionId :: Lens' About (Maybe Text)+aboPermissionId+  = lens _aboPermissionId+      (\ s a -> s{_aboPermissionId = a})++-- | The number of quota bytes used by all Google apps (Drive, Picasa, etc.).+aboQuotaBytesUsedAggregate :: Lens' About (Maybe Int64)+aboQuotaBytesUsedAggregate+  = lens _aboQuotaBytesUsedAggregate+      (\ s a -> s{_aboQuotaBytesUsedAggregate = a})+      . mapping _Coerce++-- | The amount of storage quota used by different Google services.+aboQuotaBytesByService :: Lens' About [AboutQuotaBytesByServiceItem]+aboQuotaBytesByService+  = lens _aboQuotaBytesByService+      (\ s a -> s{_aboQuotaBytesByService = a})+      . _Default+      . _Coerce++-- | The largest change id.+aboLargestChangeId :: Lens' About (Maybe Int64)+aboLargestChangeId+  = lens _aboLargestChangeId+      (\ s a -> s{_aboLargestChangeId = a})+      . mapping _Coerce++instance FromJSON About where+        parseJSON+          = withObject "About"+              (\ o ->+                 About <$>+                   (o .:? "exportFormats" .!= mempty) <*>+                     (o .:? "remainingChangeIds")+                     <*> (o .:? "languageCode")+                     <*> (o .:? "etag")+                     <*> (o .:? "importFormats" .!= mempty)+                     <*> (o .:? "kind" .!= "drive#about")+                     <*> (o .:? "domainSharingPolicy")+                     <*> (o .:? "quotaBytesUsedInTrash")+                     <*> (o .:? "quotaType")+                     <*> (o .:? "maxUploadSizes" .!= mempty)+                     <*> (o .:? "user")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "features" .!= mempty)+                     <*> (o .:? "isCurrentAppInstalled")+                     <*> (o .:? "quotaBytesTotal")+                     <*> (o .:? "rootFolderId")+                     <*> (o .:? "quotaBytesUsed")+                     <*> (o .:? "additionalRoleInfo" .!= mempty)+                     <*> (o .:? "folderColorPalette" .!= mempty)+                     <*> (o .:? "permissionId")+                     <*> (o .:? "quotaBytesUsedAggregate")+                     <*> (o .:? "quotaBytesByService" .!= mempty)+                     <*> (o .:? "largestChangeId"))++instance ToJSON About where+        toJSON About{..}+          = object+              (catMaybes+                 [("exportFormats" .=) <$> _aboExportFormats,+                  ("remainingChangeIds" .=) <$> _aboRemainingChangeIds,+                  ("languageCode" .=) <$> _aboLanguageCode,+                  ("etag" .=) <$> _aboEtag,+                  ("importFormats" .=) <$> _aboImportFormats,+                  Just ("kind" .= _aboKind),+                  ("domainSharingPolicy" .=) <$>+                    _aboDomainSharingPolicy,+                  ("quotaBytesUsedInTrash" .=) <$>+                    _aboQuotaBytesUsedInTrash,+                  ("quotaType" .=) <$> _aboQuotaType,+                  ("maxUploadSizes" .=) <$> _aboMaxUploadSizes,+                  ("user" .=) <$> _aboUser,+                  ("selfLink" .=) <$> _aboSelfLink,+                  ("name" .=) <$> _aboName,+                  ("features" .=) <$> _aboFeatures,+                  ("isCurrentAppInstalled" .=) <$>+                    _aboIsCurrentAppInstalled,+                  ("quotaBytesTotal" .=) <$> _aboQuotaBytesTotal,+                  ("rootFolderId" .=) <$> _aboRootFolderId,+                  ("quotaBytesUsed" .=) <$> _aboQuotaBytesUsed,+                  ("additionalRoleInfo" .=) <$> _aboAdditionalRoleInfo,+                  ("folderColorPalette" .=) <$> _aboFolderColorPalette,+                  ("permissionId" .=) <$> _aboPermissionId,+                  ("quotaBytesUsedAggregate" .=) <$>+                    _aboQuotaBytesUsedAggregate,+                  ("quotaBytesByService" .=) <$>+                    _aboQuotaBytesByService,+                  ("largestChangeId" .=) <$> _aboLargestChangeId])++-- | Geographic location information stored in the image.+--+-- /See:/ 'fileImageMediaMetadataLocation' smart constructor.+data FileImageMediaMetadataLocation = FileImageMediaMetadataLocation+    { _fimmlLatitude  :: !(Maybe (Textual Double))+    , _fimmlAltitude  :: !(Maybe (Textual Double))+    , _fimmlLongitude :: !(Maybe (Textual Double))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FileImageMediaMetadataLocation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fimmlLatitude'+--+-- * 'fimmlAltitude'+--+-- * 'fimmlLongitude'+fileImageMediaMetadataLocation+    :: FileImageMediaMetadataLocation+fileImageMediaMetadataLocation =+    FileImageMediaMetadataLocation+    { _fimmlLatitude = Nothing+    , _fimmlAltitude = Nothing+    , _fimmlLongitude = Nothing+    }++-- | The latitude stored in the image.+fimmlLatitude :: Lens' FileImageMediaMetadataLocation (Maybe Double)+fimmlLatitude+  = lens _fimmlLatitude+      (\ s a -> s{_fimmlLatitude = a})+      . mapping _Coerce++-- | The altitude stored in the image.+fimmlAltitude :: Lens' FileImageMediaMetadataLocation (Maybe Double)+fimmlAltitude+  = lens _fimmlAltitude+      (\ s a -> s{_fimmlAltitude = a})+      . mapping _Coerce++-- | The longitude stored in the image.+fimmlLongitude :: Lens' FileImageMediaMetadataLocation (Maybe Double)+fimmlLongitude+  = lens _fimmlLongitude+      (\ s a -> s{_fimmlLongitude = a})+      . mapping _Coerce++instance FromJSON FileImageMediaMetadataLocation+         where+        parseJSON+          = withObject "FileImageMediaMetadataLocation"+              (\ o ->+                 FileImageMediaMetadataLocation <$>+                   (o .:? "latitude") <*> (o .:? "altitude") <*>+                     (o .:? "longitude"))++instance ToJSON FileImageMediaMetadataLocation where+        toJSON FileImageMediaMetadataLocation{..}+          = object+              (catMaybes+                 [("latitude" .=) <$> _fimmlLatitude,+                  ("altitude" .=) <$> _fimmlAltitude,+                  ("longitude" .=) <$> _fimmlLongitude])++--+-- /See:/ 'aboutImportFormatsItem' smart constructor.+data AboutImportFormatsItem = AboutImportFormatsItem+    { _aifiTargets :: !(Maybe [Text])+    , _aifiSource  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AboutImportFormatsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aifiTargets'+--+-- * 'aifiSource'+aboutImportFormatsItem+    :: AboutImportFormatsItem+aboutImportFormatsItem =+    AboutImportFormatsItem+    { _aifiTargets = Nothing+    , _aifiSource = Nothing+    }++-- | The possible content types to convert to.+aifiTargets :: Lens' AboutImportFormatsItem [Text]+aifiTargets+  = lens _aifiTargets (\ s a -> s{_aifiTargets = a}) .+      _Default+      . _Coerce++-- | The imported file\'s content type to convert from.+aifiSource :: Lens' AboutImportFormatsItem (Maybe Text)+aifiSource+  = lens _aifiSource (\ s a -> s{_aifiSource = a})++instance FromJSON AboutImportFormatsItem where+        parseJSON+          = withObject "AboutImportFormatsItem"+              (\ o ->+                 AboutImportFormatsItem <$>+                   (o .:? "targets" .!= mempty) <*> (o .:? "source"))++instance ToJSON AboutImportFormatsItem where+        toJSON AboutImportFormatsItem{..}+          = object+              (catMaybes+                 [("targets" .=) <$> _aifiTargets,+                  ("source" .=) <$> _aifiSource])++-- | Metadata about image media. This will only be present for image types,+-- and its contents will depend on what can be parsed from the image+-- content.+--+-- /See:/ 'fileImageMediaMetadata' smart constructor.+data FileImageMediaMetadata = FileImageMediaMetadata+    { _fimmRotation         :: !(Maybe (Textual Int32))+    , _fimmHeight           :: !(Maybe (Textual Int32))+    , _fimmSubjectDistance  :: !(Maybe (Textual Int32))+    , _fimmMaxApertureValue :: !(Maybe (Textual Double))+    , _fimmIsoSpeed         :: !(Maybe (Textual Int32))+    , _fimmLocation         :: !(Maybe FileImageMediaMetadataLocation)+    , _fimmAperture         :: !(Maybe (Textual Double))+    , _fimmFocalLength      :: !(Maybe (Textual Double))+    , _fimmCameraMake       :: !(Maybe Text)+    , _fimmWidth            :: !(Maybe (Textual Int32))+    , _fimmExposureTime     :: !(Maybe (Textual Double))+    , _fimmCameraModel      :: !(Maybe Text)+    , _fimmWhiteBalance     :: !(Maybe Text)+    , _fimmDate             :: !(Maybe Text)+    , _fimmLens             :: !(Maybe Text)+    , _fimmFlashUsed        :: !(Maybe Bool)+    , _fimmExposureBias     :: !(Maybe (Textual Double))+    , _fimmMeteringMode     :: !(Maybe Text)+    , _fimmExposureMode     :: !(Maybe Text)+    , _fimmSensor           :: !(Maybe Text)+    , _fimmColorSpace       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FileImageMediaMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fimmRotation'+--+-- * 'fimmHeight'+--+-- * 'fimmSubjectDistance'+--+-- * 'fimmMaxApertureValue'+--+-- * 'fimmIsoSpeed'+--+-- * 'fimmLocation'+--+-- * 'fimmAperture'+--+-- * 'fimmFocalLength'+--+-- * 'fimmCameraMake'+--+-- * 'fimmWidth'+--+-- * 'fimmExposureTime'+--+-- * 'fimmCameraModel'+--+-- * 'fimmWhiteBalance'+--+-- * 'fimmDate'+--+-- * 'fimmLens'+--+-- * 'fimmFlashUsed'+--+-- * 'fimmExposureBias'+--+-- * 'fimmMeteringMode'+--+-- * 'fimmExposureMode'+--+-- * 'fimmSensor'+--+-- * 'fimmColorSpace'+fileImageMediaMetadata+    :: FileImageMediaMetadata+fileImageMediaMetadata =+    FileImageMediaMetadata+    { _fimmRotation = Nothing+    , _fimmHeight = Nothing+    , _fimmSubjectDistance = Nothing+    , _fimmMaxApertureValue = Nothing+    , _fimmIsoSpeed = Nothing+    , _fimmLocation = Nothing+    , _fimmAperture = Nothing+    , _fimmFocalLength = Nothing+    , _fimmCameraMake = Nothing+    , _fimmWidth = Nothing+    , _fimmExposureTime = Nothing+    , _fimmCameraModel = Nothing+    , _fimmWhiteBalance = Nothing+    , _fimmDate = Nothing+    , _fimmLens = Nothing+    , _fimmFlashUsed = Nothing+    , _fimmExposureBias = Nothing+    , _fimmMeteringMode = Nothing+    , _fimmExposureMode = Nothing+    , _fimmSensor = Nothing+    , _fimmColorSpace = Nothing+    }++-- | The rotation in clockwise degrees from the image\'s original+-- orientation.+fimmRotation :: Lens' FileImageMediaMetadata (Maybe Int32)+fimmRotation+  = lens _fimmRotation (\ s a -> s{_fimmRotation = a})+      . mapping _Coerce++-- | The height of the image in pixels.+fimmHeight :: Lens' FileImageMediaMetadata (Maybe Int32)+fimmHeight+  = lens _fimmHeight (\ s a -> s{_fimmHeight = a}) .+      mapping _Coerce++-- | The distance to the subject of the photo, in meters.+fimmSubjectDistance :: Lens' FileImageMediaMetadata (Maybe Int32)+fimmSubjectDistance+  = lens _fimmSubjectDistance+      (\ s a -> s{_fimmSubjectDistance = a})+      . mapping _Coerce++-- | The smallest f-number of the lens at the focal length used to create the+-- photo (APEX value).+fimmMaxApertureValue :: Lens' FileImageMediaMetadata (Maybe Double)+fimmMaxApertureValue+  = lens _fimmMaxApertureValue+      (\ s a -> s{_fimmMaxApertureValue = a})+      . mapping _Coerce++-- | The ISO speed used to create the photo.+fimmIsoSpeed :: Lens' FileImageMediaMetadata (Maybe Int32)+fimmIsoSpeed+  = lens _fimmIsoSpeed (\ s a -> s{_fimmIsoSpeed = a})+      . mapping _Coerce++-- | Geographic location information stored in the image.+fimmLocation :: Lens' FileImageMediaMetadata (Maybe FileImageMediaMetadataLocation)+fimmLocation+  = lens _fimmLocation (\ s a -> s{_fimmLocation = a})++-- | The aperture used to create the photo (f-number).+fimmAperture :: Lens' FileImageMediaMetadata (Maybe Double)+fimmAperture+  = lens _fimmAperture (\ s a -> s{_fimmAperture = a})+      . mapping _Coerce++-- | The focal length used to create the photo, in millimeters.+fimmFocalLength :: Lens' FileImageMediaMetadata (Maybe Double)+fimmFocalLength+  = lens _fimmFocalLength+      (\ s a -> s{_fimmFocalLength = a})+      . mapping _Coerce++-- | The make of the camera used to create the photo.+fimmCameraMake :: Lens' FileImageMediaMetadata (Maybe Text)+fimmCameraMake+  = lens _fimmCameraMake+      (\ s a -> s{_fimmCameraMake = a})++-- | The width of the image in pixels.+fimmWidth :: Lens' FileImageMediaMetadata (Maybe Int32)+fimmWidth+  = lens _fimmWidth (\ s a -> s{_fimmWidth = a}) .+      mapping _Coerce++-- | The length of the exposure, in seconds.+fimmExposureTime :: Lens' FileImageMediaMetadata (Maybe Double)+fimmExposureTime+  = lens _fimmExposureTime+      (\ s a -> s{_fimmExposureTime = a})+      . mapping _Coerce++-- | The model of the camera used to create the photo.+fimmCameraModel :: Lens' FileImageMediaMetadata (Maybe Text)+fimmCameraModel+  = lens _fimmCameraModel+      (\ s a -> s{_fimmCameraModel = a})++-- | The white balance mode used to create the photo.+fimmWhiteBalance :: Lens' FileImageMediaMetadata (Maybe Text)+fimmWhiteBalance+  = lens _fimmWhiteBalance+      (\ s a -> s{_fimmWhiteBalance = a})++-- | The date and time the photo was taken (EXIF format timestamp).+fimmDate :: Lens' FileImageMediaMetadata (Maybe Text)+fimmDate = lens _fimmDate (\ s a -> s{_fimmDate = a})++-- | The lens used to create the photo.+fimmLens :: Lens' FileImageMediaMetadata (Maybe Text)+fimmLens = lens _fimmLens (\ s a -> s{_fimmLens = a})++-- | Whether a flash was used to create the photo.+fimmFlashUsed :: Lens' FileImageMediaMetadata (Maybe Bool)+fimmFlashUsed+  = lens _fimmFlashUsed+      (\ s a -> s{_fimmFlashUsed = a})++-- | The exposure bias of the photo (APEX value).+fimmExposureBias :: Lens' FileImageMediaMetadata (Maybe Double)+fimmExposureBias+  = lens _fimmExposureBias+      (\ s a -> s{_fimmExposureBias = a})+      . mapping _Coerce++-- | The metering mode used to create the photo.+fimmMeteringMode :: Lens' FileImageMediaMetadata (Maybe Text)+fimmMeteringMode+  = lens _fimmMeteringMode+      (\ s a -> s{_fimmMeteringMode = a})++-- | The exposure mode used to create the photo.+fimmExposureMode :: Lens' FileImageMediaMetadata (Maybe Text)+fimmExposureMode+  = lens _fimmExposureMode+      (\ s a -> s{_fimmExposureMode = a})++-- | The type of sensor used to create the photo.+fimmSensor :: Lens' FileImageMediaMetadata (Maybe Text)+fimmSensor+  = lens _fimmSensor (\ s a -> s{_fimmSensor = a})++-- | The color space of the photo.+fimmColorSpace :: Lens' FileImageMediaMetadata (Maybe Text)+fimmColorSpace+  = lens _fimmColorSpace+      (\ s a -> s{_fimmColorSpace = a})++instance FromJSON FileImageMediaMetadata where+        parseJSON+          = withObject "FileImageMediaMetadata"+              (\ o ->+                 FileImageMediaMetadata <$>+                   (o .:? "rotation") <*> (o .:? "height") <*>+                     (o .:? "subjectDistance")+                     <*> (o .:? "maxApertureValue")+                     <*> (o .:? "isoSpeed")+                     <*> (o .:? "location")+                     <*> (o .:? "aperture")+                     <*> (o .:? "focalLength")+                     <*> (o .:? "cameraMake")+                     <*> (o .:? "width")+                     <*> (o .:? "exposureTime")+                     <*> (o .:? "cameraModel")+                     <*> (o .:? "whiteBalance")+                     <*> (o .:? "date")+                     <*> (o .:? "lens")+                     <*> (o .:? "flashUsed")+                     <*> (o .:? "exposureBias")+                     <*> (o .:? "meteringMode")+                     <*> (o .:? "exposureMode")+                     <*> (o .:? "sensor")+                     <*> (o .:? "colorSpace"))++instance ToJSON FileImageMediaMetadata where+        toJSON FileImageMediaMetadata{..}+          = object+              (catMaybes+                 [("rotation" .=) <$> _fimmRotation,+                  ("height" .=) <$> _fimmHeight,+                  ("subjectDistance" .=) <$> _fimmSubjectDistance,+                  ("maxApertureValue" .=) <$> _fimmMaxApertureValue,+                  ("isoSpeed" .=) <$> _fimmIsoSpeed,+                  ("location" .=) <$> _fimmLocation,+                  ("aperture" .=) <$> _fimmAperture,+                  ("focalLength" .=) <$> _fimmFocalLength,+                  ("cameraMake" .=) <$> _fimmCameraMake,+                  ("width" .=) <$> _fimmWidth,+                  ("exposureTime" .=) <$> _fimmExposureTime,+                  ("cameraModel" .=) <$> _fimmCameraModel,+                  ("whiteBalance" .=) <$> _fimmWhiteBalance,+                  ("date" .=) <$> _fimmDate, ("lens" .=) <$> _fimmLens,+                  ("flashUsed" .=) <$> _fimmFlashUsed,+                  ("exposureBias" .=) <$> _fimmExposureBias,+                  ("meteringMode" .=) <$> _fimmMeteringMode,+                  ("exposureMode" .=) <$> _fimmExposureMode,+                  ("sensor" .=) <$> _fimmSensor,+                  ("colorSpace" .=) <$> _fimmColorSpace])++-- | A group of labels for the file.+--+-- /See:/ 'fileLabels' smart constructor.+data FileLabels = FileLabels+    { _flViewed     :: !(Maybe Bool)+    , _flTrashed    :: !(Maybe Bool)+    , _flStarred    :: !(Maybe Bool)+    , _flHidden     :: !(Maybe Bool)+    , _flRestricted :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FileLabels' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'flViewed'+--+-- * 'flTrashed'+--+-- * 'flStarred'+--+-- * 'flHidden'+--+-- * 'flRestricted'+fileLabels+    :: FileLabels+fileLabels =+    FileLabels+    { _flViewed = Nothing+    , _flTrashed = Nothing+    , _flStarred = Nothing+    , _flHidden = Nothing+    , _flRestricted = Nothing+    }++-- | Whether this file has been viewed by this user.+flViewed :: Lens' FileLabels (Maybe Bool)+flViewed = lens _flViewed (\ s a -> s{_flViewed = a})++-- | Whether this file has been trashed. This label applies to all users+-- accessing the file; however, only owners are allowed to see and untrash+-- files.+flTrashed :: Lens' FileLabels (Maybe Bool)+flTrashed+  = lens _flTrashed (\ s a -> s{_flTrashed = a})++-- | Whether this file is starred by the user.+flStarred :: Lens' FileLabels (Maybe Bool)+flStarred+  = lens _flStarred (\ s a -> s{_flStarred = a})++-- | Deprecated.+flHidden :: Lens' FileLabels (Maybe Bool)+flHidden = lens _flHidden (\ s a -> s{_flHidden = a})++-- | Whether viewers and commenters are prevented from downloading, printing,+-- and copying this file.+flRestricted :: Lens' FileLabels (Maybe Bool)+flRestricted+  = lens _flRestricted (\ s a -> s{_flRestricted = a})++instance FromJSON FileLabels where+        parseJSON+          = withObject "FileLabels"+              (\ o ->+                 FileLabels <$>+                   (o .:? "viewed") <*> (o .:? "trashed") <*>+                     (o .:? "starred")+                     <*> (o .:? "hidden")+                     <*> (o .:? "restricted"))++instance ToJSON FileLabels where+        toJSON FileLabels{..}+          = object+              (catMaybes+                 [("viewed" .=) <$> _flViewed,+                  ("trashed" .=) <$> _flTrashed,+                  ("starred" .=) <$> _flStarred,+                  ("hidden" .=) <$> _flHidden,+                  ("restricted" .=) <$> _flRestricted])++-- | A JSON representation of a comment on a file in Google Drive.+--+-- /See:/ 'comment' smart constructor.+data Comment = Comment+    { _ccStatus       :: !(Maybe Text)+    , _ccHTMLContent  :: !(Maybe Text)+    , _ccContext      :: !(Maybe CommentContext)+    , _ccKind         :: !Text+    , _ccFileTitle    :: !(Maybe Text)+    , _ccAnchor       :: !(Maybe Text)+    , _ccContent      :: !(Maybe Text)+    , _ccReplies      :: !(Maybe [CommentReply])+    , _ccCreatedDate  :: !(Maybe DateTime')+    , _ccSelfLink     :: !(Maybe Text)+    , _ccAuthor       :: !(Maybe User)+    , _ccModifiedDate :: !(Maybe DateTime')+    , _ccDeleted      :: !(Maybe Bool)+    , _ccFileId       :: !(Maybe Text)+    , _ccCommentId    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Comment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ccStatus'+--+-- * 'ccHTMLContent'+--+-- * 'ccContext'+--+-- * 'ccKind'+--+-- * 'ccFileTitle'+--+-- * 'ccAnchor'+--+-- * 'ccContent'+--+-- * 'ccReplies'+--+-- * 'ccCreatedDate'+--+-- * 'ccSelfLink'+--+-- * 'ccAuthor'+--+-- * 'ccModifiedDate'+--+-- * 'ccDeleted'+--+-- * 'ccFileId'+--+-- * 'ccCommentId'+comment+    :: Comment+comment =+    Comment+    { _ccStatus = Nothing+    , _ccHTMLContent = Nothing+    , _ccContext = Nothing+    , _ccKind = "drive#comment"+    , _ccFileTitle = Nothing+    , _ccAnchor = Nothing+    , _ccContent = Nothing+    , _ccReplies = Nothing+    , _ccCreatedDate = Nothing+    , _ccSelfLink = Nothing+    , _ccAuthor = Nothing+    , _ccModifiedDate = Nothing+    , _ccDeleted = Nothing+    , _ccFileId = Nothing+    , _ccCommentId = Nothing+    }++-- | The status of this comment. Status can be changed by posting a reply to+-- a comment with the desired status. - \"open\" - The comment is still+-- open. - \"resolved\" - The comment has been resolved by one of its+-- replies.+ccStatus :: Lens' Comment (Maybe Text)+ccStatus = lens _ccStatus (\ s a -> s{_ccStatus = a})++-- | HTML formatted content for this comment.+ccHTMLContent :: Lens' Comment (Maybe Text)+ccHTMLContent+  = lens _ccHTMLContent+      (\ s a -> s{_ccHTMLContent = a})++-- | The context of the file which is being commented on.+ccContext :: Lens' Comment (Maybe CommentContext)+ccContext+  = lens _ccContext (\ s a -> s{_ccContext = a})++-- | This is always drive#comment.+ccKind :: Lens' Comment Text+ccKind = lens _ccKind (\ s a -> s{_ccKind = a})++-- | The title of the file which this comment is addressing.+ccFileTitle :: Lens' Comment (Maybe Text)+ccFileTitle+  = lens _ccFileTitle (\ s a -> s{_ccFileTitle = a})++-- | A region of the document represented as a JSON string. See anchor+-- documentation for details on how to define and interpret anchor+-- properties.+ccAnchor :: Lens' Comment (Maybe Text)+ccAnchor = lens _ccAnchor (\ s a -> s{_ccAnchor = a})++-- | The plain text content used to create this comment. This is not HTML+-- safe and should only be used as a starting point to make edits to a+-- comment\'s content.+ccContent :: Lens' Comment (Maybe Text)+ccContent+  = lens _ccContent (\ s a -> s{_ccContent = a})++-- | Replies to this post.+ccReplies :: Lens' Comment [CommentReply]+ccReplies+  = lens _ccReplies (\ s a -> s{_ccReplies = a}) .+      _Default+      . _Coerce++-- | The date when this comment was first created.+ccCreatedDate :: Lens' Comment (Maybe UTCTime)+ccCreatedDate+  = lens _ccCreatedDate+      (\ s a -> s{_ccCreatedDate = a})+      . mapping _DateTime++-- | A link back to this comment.+ccSelfLink :: Lens' Comment (Maybe Text)+ccSelfLink+  = lens _ccSelfLink (\ s a -> s{_ccSelfLink = a})++-- | The user who wrote this comment.+ccAuthor :: Lens' Comment (Maybe User)+ccAuthor = lens _ccAuthor (\ s a -> s{_ccAuthor = a})++-- | The date when this comment or any of its replies were last modified.+ccModifiedDate :: Lens' Comment (Maybe UTCTime)+ccModifiedDate+  = lens _ccModifiedDate+      (\ s a -> s{_ccModifiedDate = a})+      . mapping _DateTime++-- | Whether this comment has been deleted. If a comment has been deleted the+-- content will be cleared and this will only represent a comment that once+-- existed.+ccDeleted :: Lens' Comment (Maybe Bool)+ccDeleted+  = lens _ccDeleted (\ s a -> s{_ccDeleted = a})++-- | The file which this comment is addressing.+ccFileId :: Lens' Comment (Maybe Text)+ccFileId = lens _ccFileId (\ s a -> s{_ccFileId = a})++-- | The ID of the comment.+ccCommentId :: Lens' Comment (Maybe Text)+ccCommentId+  = lens _ccCommentId (\ s a -> s{_ccCommentId = a})++instance FromJSON Comment where+        parseJSON+          = withObject "Comment"+              (\ o ->+                 Comment <$>+                   (o .:? "status") <*> (o .:? "htmlContent") <*>+                     (o .:? "context")+                     <*> (o .:? "kind" .!= "drive#comment")+                     <*> (o .:? "fileTitle")+                     <*> (o .:? "anchor")+                     <*> (o .:? "content")+                     <*> (o .:? "replies" .!= mempty)+                     <*> (o .:? "createdDate")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "author")+                     <*> (o .:? "modifiedDate")+                     <*> (o .:? "deleted")+                     <*> (o .:? "fileId")+                     <*> (o .:? "commentId"))++instance ToJSON Comment where+        toJSON Comment{..}+          = object+              (catMaybes+                 [("status" .=) <$> _ccStatus,+                  ("htmlContent" .=) <$> _ccHTMLContent,+                  ("context" .=) <$> _ccContext,+                  Just ("kind" .= _ccKind),+                  ("fileTitle" .=) <$> _ccFileTitle,+                  ("anchor" .=) <$> _ccAnchor,+                  ("content" .=) <$> _ccContent,+                  ("replies" .=) <$> _ccReplies,+                  ("createdDate" .=) <$> _ccCreatedDate,+                  ("selfLink" .=) <$> _ccSelfLink,+                  ("author" .=) <$> _ccAuthor,+                  ("modifiedDate" .=) <$> _ccModifiedDate,+                  ("deleted" .=) <$> _ccDeleted,+                  ("fileId" .=) <$> _ccFileId,+                  ("commentId" .=) <$> _ccCommentId])++-- | A revision of a file.+--+-- /See:/ 'revision' smart constructor.+data Revision = Revision+    { _rEtag                   :: !(Maybe Text)+    , _rOriginalFilename       :: !(Maybe Text)+    , _rKind                   :: !Text+    , _rPublishedLink          :: !(Maybe Text)+    , _rPinned                 :: !(Maybe Bool)+    , _rPublished              :: !(Maybe Bool)+    , _rLastModifyingUser      :: !(Maybe User)+    , _rFileSize               :: !(Maybe (Textual Int64))+    , _rPublishAuto            :: !(Maybe Bool)+    , _rMD5Checksum            :: !(Maybe Text)+    , _rMimeType               :: !(Maybe Text)+    , _rSelfLink               :: !(Maybe Text)+    , _rLastModifyingUserName  :: !(Maybe Text)+    , _rDownloadURL            :: !(Maybe Text)+    , _rExportLinks            :: !(Maybe RevisionExportLinks)+    , _rPublishedOutsideDomain :: !(Maybe Bool)+    , _rId                     :: !(Maybe Text)+    , _rModifiedDate           :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Revision' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rEtag'+--+-- * 'rOriginalFilename'+--+-- * 'rKind'+--+-- * 'rPublishedLink'+--+-- * 'rPinned'+--+-- * 'rPublished'+--+-- * 'rLastModifyingUser'+--+-- * 'rFileSize'+--+-- * 'rPublishAuto'+--+-- * 'rMD5Checksum'+--+-- * 'rMimeType'+--+-- * 'rSelfLink'+--+-- * 'rLastModifyingUserName'+--+-- * 'rDownloadURL'+--+-- * 'rExportLinks'+--+-- * 'rPublishedOutsideDomain'+--+-- * 'rId'+--+-- * 'rModifiedDate'+revision+    :: Revision+revision =+    Revision+    { _rEtag = Nothing+    , _rOriginalFilename = Nothing+    , _rKind = "drive#revision"+    , _rPublishedLink = Nothing+    , _rPinned = Nothing+    , _rPublished = Nothing+    , _rLastModifyingUser = Nothing+    , _rFileSize = Nothing+    , _rPublishAuto = Nothing+    , _rMD5Checksum = Nothing+    , _rMimeType = Nothing+    , _rSelfLink = Nothing+    , _rLastModifyingUserName = Nothing+    , _rDownloadURL = Nothing+    , _rExportLinks = Nothing+    , _rPublishedOutsideDomain = Nothing+    , _rId = Nothing+    , _rModifiedDate = Nothing+    }++-- | The ETag of the revision.+rEtag :: Lens' Revision (Maybe Text)+rEtag = lens _rEtag (\ s a -> s{_rEtag = a})++-- | The original filename when this revision was created. This will only be+-- populated on files with content stored in Drive.+rOriginalFilename :: Lens' Revision (Maybe Text)+rOriginalFilename+  = lens _rOriginalFilename+      (\ s a -> s{_rOriginalFilename = a})++-- | This is always drive#revision.+rKind :: Lens' Revision Text+rKind = lens _rKind (\ s a -> s{_rKind = a})++-- | A link to the published revision.+rPublishedLink :: Lens' Revision (Maybe Text)+rPublishedLink+  = lens _rPublishedLink+      (\ s a -> s{_rPublishedLink = a})++-- | Whether this revision is pinned to prevent automatic purging. This will+-- only be populated and can only be modified on files with content stored+-- in Drive which are not Google Docs. Revisions can also be pinned when+-- they are created through the drive.files.insert\/update\/copy by using+-- the pinned query parameter.+rPinned :: Lens' Revision (Maybe Bool)+rPinned = lens _rPinned (\ s a -> s{_rPinned = a})++-- | Whether this revision is published. This is only populated and can only+-- be modified for Google Docs.+rPublished :: Lens' Revision (Maybe Bool)+rPublished+  = lens _rPublished (\ s a -> s{_rPublished = a})++-- | The last user to modify this revision.+rLastModifyingUser :: Lens' Revision (Maybe User)+rLastModifyingUser+  = lens _rLastModifyingUser+      (\ s a -> s{_rLastModifyingUser = a})++-- | The size of the revision in bytes. This will only be populated on files+-- with content stored in Drive.+rFileSize :: Lens' Revision (Maybe Int64)+rFileSize+  = lens _rFileSize (\ s a -> s{_rFileSize = a}) .+      mapping _Coerce++-- | Whether subsequent revisions will be automatically republished. This is+-- only populated and can only be modified for Google Docs.+rPublishAuto :: Lens' Revision (Maybe Bool)+rPublishAuto+  = lens _rPublishAuto (\ s a -> s{_rPublishAuto = a})++-- | An MD5 checksum for the content of this revision. This will only be+-- populated on files with content stored in Drive.+rMD5Checksum :: Lens' Revision (Maybe Text)+rMD5Checksum+  = lens _rMD5Checksum (\ s a -> s{_rMD5Checksum = a})++-- | The MIME type of the revision.+rMimeType :: Lens' Revision (Maybe Text)+rMimeType+  = lens _rMimeType (\ s a -> s{_rMimeType = a})++-- | A link back to this revision.+rSelfLink :: Lens' Revision (Maybe Text)+rSelfLink+  = lens _rSelfLink (\ s a -> s{_rSelfLink = a})++-- | Name of the last user to modify this revision.+rLastModifyingUserName :: Lens' Revision (Maybe Text)+rLastModifyingUserName+  = lens _rLastModifyingUserName+      (\ s a -> s{_rLastModifyingUserName = a})++-- | Short term download URL for the file. This will only be populated on+-- files with content stored in Drive.+rDownloadURL :: Lens' Revision (Maybe Text)+rDownloadURL+  = lens _rDownloadURL (\ s a -> s{_rDownloadURL = a})++-- | Links for exporting Google Docs to specific formats.+rExportLinks :: Lens' Revision (Maybe RevisionExportLinks)+rExportLinks+  = lens _rExportLinks (\ s a -> s{_rExportLinks = a})++-- | Whether this revision is published outside the domain. This is only+-- populated and can only be modified for Google Docs.+rPublishedOutsideDomain :: Lens' Revision (Maybe Bool)+rPublishedOutsideDomain+  = lens _rPublishedOutsideDomain+      (\ s a -> s{_rPublishedOutsideDomain = a})++-- | The ID of the revision.+rId :: Lens' Revision (Maybe Text)+rId = lens _rId (\ s a -> s{_rId = a})++-- | Last time this revision was modified (formatted RFC 3339 timestamp).+rModifiedDate :: Lens' Revision (Maybe UTCTime)+rModifiedDate+  = lens _rModifiedDate+      (\ s a -> s{_rModifiedDate = a})+      . mapping _DateTime++instance FromJSON Revision where+        parseJSON+          = withObject "Revision"+              (\ o ->+                 Revision <$>+                   (o .:? "etag") <*> (o .:? "originalFilename") <*>+                     (o .:? "kind" .!= "drive#revision")+                     <*> (o .:? "publishedLink")+                     <*> (o .:? "pinned")+                     <*> (o .:? "published")+                     <*> (o .:? "lastModifyingUser")+                     <*> (o .:? "fileSize")+                     <*> (o .:? "publishAuto")+                     <*> (o .:? "md5Checksum")+                     <*> (o .:? "mimeType")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "lastModifyingUserName")+                     <*> (o .:? "downloadUrl")+                     <*> (o .:? "exportLinks")+                     <*> (o .:? "publishedOutsideDomain")+                     <*> (o .:? "id")+                     <*> (o .:? "modifiedDate"))++instance ToJSON Revision where+        toJSON Revision{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _rEtag,+                  ("originalFilename" .=) <$> _rOriginalFilename,+                  Just ("kind" .= _rKind),+                  ("publishedLink" .=) <$> _rPublishedLink,+                  ("pinned" .=) <$> _rPinned,+                  ("published" .=) <$> _rPublished,+                  ("lastModifyingUser" .=) <$> _rLastModifyingUser,+                  ("fileSize" .=) <$> _rFileSize,+                  ("publishAuto" .=) <$> _rPublishAuto,+                  ("md5Checksum" .=) <$> _rMD5Checksum,+                  ("mimeType" .=) <$> _rMimeType,+                  ("selfLink" .=) <$> _rSelfLink,+                  ("lastModifyingUserName" .=) <$>+                    _rLastModifyingUserName,+                  ("downloadUrl" .=) <$> _rDownloadURL,+                  ("exportLinks" .=) <$> _rExportLinks,+                  ("publishedOutsideDomain" .=) <$>+                    _rPublishedOutsideDomain,+                  ("id" .=) <$> _rId,+                  ("modifiedDate" .=) <$> _rModifiedDate])++--+-- /See:/ 'aboutAdditionalRoleInfoItem' smart constructor.+data AboutAdditionalRoleInfoItem = AboutAdditionalRoleInfoItem+    { _aariiRoleSets :: !(Maybe [AboutAdditionalRoleInfoItemRoleSetsItem])+    , _aariiType     :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AboutAdditionalRoleInfoItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aariiRoleSets'+--+-- * 'aariiType'+aboutAdditionalRoleInfoItem+    :: AboutAdditionalRoleInfoItem+aboutAdditionalRoleInfoItem =+    AboutAdditionalRoleInfoItem+    { _aariiRoleSets = Nothing+    , _aariiType = Nothing+    }++-- | The supported additional roles per primary role.+aariiRoleSets :: Lens' AboutAdditionalRoleInfoItem [AboutAdditionalRoleInfoItemRoleSetsItem]+aariiRoleSets+  = lens _aariiRoleSets+      (\ s a -> s{_aariiRoleSets = a})+      . _Default+      . _Coerce++-- | The content type that this additional role info applies to.+aariiType :: Lens' AboutAdditionalRoleInfoItem (Maybe Text)+aariiType+  = lens _aariiType (\ s a -> s{_aariiType = a})++instance FromJSON AboutAdditionalRoleInfoItem where+        parseJSON+          = withObject "AboutAdditionalRoleInfoItem"+              (\ o ->+                 AboutAdditionalRoleInfoItem <$>+                   (o .:? "roleSets" .!= mempty) <*> (o .:? "type"))++instance ToJSON AboutAdditionalRoleInfoItem where+        toJSON AboutAdditionalRoleInfoItem{..}+          = object+              (catMaybes+                 [("roleSets" .=) <$> _aariiRoleSets,+                  ("type" .=) <$> _aariiType])++-- | A permission for a file.+--+-- /See:/ 'permission' smart constructor.+data Permission = Permission+    { _perPhotoLink       :: !(Maybe Text)+    , _perEtag            :: !(Maybe Text)+    , _perWithLink        :: !(Maybe Bool)+    , _perKind            :: !Text+    , _perDomain          :: !(Maybe Text)+    , _perValue           :: !(Maybe Text)+    , _perAdditionalRoles :: !(Maybe [Text])+    , _perRole            :: !(Maybe Text)+    , _perSelfLink        :: !(Maybe Text)+    , _perName            :: !(Maybe Text)+    , _perAuthKey         :: !(Maybe Text)+    , _perEmailAddress    :: !(Maybe Text)+    , _perId              :: !(Maybe Text)+    , _perType            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Permission' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'perPhotoLink'+--+-- * 'perEtag'+--+-- * 'perWithLink'+--+-- * 'perKind'+--+-- * 'perDomain'+--+-- * 'perValue'+--+-- * 'perAdditionalRoles'+--+-- * 'perRole'+--+-- * 'perSelfLink'+--+-- * 'perName'+--+-- * 'perAuthKey'+--+-- * 'perEmailAddress'+--+-- * 'perId'+--+-- * 'perType'+permission+    :: Permission+permission =+    Permission+    { _perPhotoLink = Nothing+    , _perEtag = Nothing+    , _perWithLink = Nothing+    , _perKind = "drive#permission"+    , _perDomain = Nothing+    , _perValue = Nothing+    , _perAdditionalRoles = Nothing+    , _perRole = Nothing+    , _perSelfLink = Nothing+    , _perName = Nothing+    , _perAuthKey = Nothing+    , _perEmailAddress = Nothing+    , _perId = Nothing+    , _perType = Nothing+    }++-- | A link to the profile photo, if available.+perPhotoLink :: Lens' Permission (Maybe Text)+perPhotoLink+  = lens _perPhotoLink (\ s a -> s{_perPhotoLink = a})++-- | The ETag of the permission.+perEtag :: Lens' Permission (Maybe Text)+perEtag = lens _perEtag (\ s a -> s{_perEtag = a})++-- | Whether the link is required for this permission.+perWithLink :: Lens' Permission (Maybe Bool)+perWithLink+  = lens _perWithLink (\ s a -> s{_perWithLink = a})++-- | This is always drive#permission.+perKind :: Lens' Permission Text+perKind = lens _perKind (\ s a -> s{_perKind = a})++-- | The domain name of the entity this permission refers to. This is an+-- output-only field which is present when the permission type is user,+-- group or domain.+perDomain :: Lens' Permission (Maybe Text)+perDomain+  = lens _perDomain (\ s a -> s{_perDomain = a})++-- | The email address or domain name for the entity. This is used during+-- inserts and is not populated in responses. When making a+-- drive.permissions.insert request, exactly one of the id or value fields+-- must be specified.+perValue :: Lens' Permission (Maybe Text)+perValue = lens _perValue (\ s a -> s{_perValue = a})++-- | Additional roles for this user. Only commenter is currently allowed.+perAdditionalRoles :: Lens' Permission [Text]+perAdditionalRoles+  = lens _perAdditionalRoles+      (\ s a -> s{_perAdditionalRoles = a})+      . _Default+      . _Coerce++-- | The primary role for this user. Allowed values are: - owner - reader -+-- writer+perRole :: Lens' Permission (Maybe Text)+perRole = lens _perRole (\ s a -> s{_perRole = a})++-- | A link back to this permission.+perSelfLink :: Lens' Permission (Maybe Text)+perSelfLink+  = lens _perSelfLink (\ s a -> s{_perSelfLink = a})++-- | The name for this permission.+perName :: Lens' Permission (Maybe Text)+perName = lens _perName (\ s a -> s{_perName = a})++-- | The authkey parameter required for this permission.+perAuthKey :: Lens' Permission (Maybe Text)+perAuthKey+  = lens _perAuthKey (\ s a -> s{_perAuthKey = a})++-- | The email address of the user or group this permission refers to. This+-- is an output-only field which is present when the permission type is+-- user or group.+perEmailAddress :: Lens' Permission (Maybe Text)+perEmailAddress+  = lens _perEmailAddress+      (\ s a -> s{_perEmailAddress = a})++-- | The ID of the user this permission refers to, and identical to the+-- permissionId in the About and Files resources. When making a+-- drive.permissions.insert request, exactly one of the id or value fields+-- must be specified.+perId :: Lens' Permission (Maybe Text)+perId = lens _perId (\ s a -> s{_perId = a})++-- | The account type. Allowed values are: - user - group - domain - anyone+perType :: Lens' Permission (Maybe Text)+perType = lens _perType (\ s a -> s{_perType = a})++instance FromJSON Permission where+        parseJSON+          = withObject "Permission"+              (\ o ->+                 Permission <$>+                   (o .:? "photoLink") <*> (o .:? "etag") <*>+                     (o .:? "withLink")+                     <*> (o .:? "kind" .!= "drive#permission")+                     <*> (o .:? "domain")+                     <*> (o .:? "value")+                     <*> (o .:? "additionalRoles" .!= mempty)+                     <*> (o .:? "role")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "authKey")+                     <*> (o .:? "emailAddress")+                     <*> (o .:? "id")+                     <*> (o .:? "type"))++instance ToJSON Permission where+        toJSON Permission{..}+          = object+              (catMaybes+                 [("photoLink" .=) <$> _perPhotoLink,+                  ("etag" .=) <$> _perEtag,+                  ("withLink" .=) <$> _perWithLink,+                  Just ("kind" .= _perKind),+                  ("domain" .=) <$> _perDomain,+                  ("value" .=) <$> _perValue,+                  ("additionalRoles" .=) <$> _perAdditionalRoles,+                  ("role" .=) <$> _perRole,+                  ("selfLink" .=) <$> _perSelfLink,+                  ("name" .=) <$> _perName,+                  ("authKey" .=) <$> _perAuthKey,+                  ("emailAddress" .=) <$> _perEmailAddress,+                  ("id" .=) <$> _perId, ("type" .=) <$> _perType])++-- | The metadata for a file.+--+-- /See:/ 'file' smart constructor.+data File = File+    { _fOwnedByMe             :: !(Maybe Bool)+    , _fThumbnailLink         :: !(Maybe Text)+    , _fFullFileExtension     :: !(Maybe Text)+    , _fThumbnail             :: !(Maybe FileThumbnail)+    , _fMarkedViewedByMeDate  :: !(Maybe DateTime')+    , _fEtag                  :: !(Maybe Text)+    , _fFileExtension         :: !(Maybe Text)+    , _fCanComment            :: !(Maybe Bool)+    , _fOwners                :: !(Maybe [User])+    , _fOwnerNames            :: !(Maybe [Text])+    , _fOpenWithLinks         :: !(Maybe FileOpenWithLinks)+    , _fWebViewLink           :: !(Maybe Text)+    , _fOriginalFilename      :: !(Maybe Text)+    , _fKind                  :: !Text+    , _fLastModifyingUser     :: !(Maybe User)+    , _fIconLink              :: !(Maybe Text)+    , _fEmbedLink             :: !(Maybe Text)+    , _fFileSize              :: !(Maybe (Textual Int64))+    , _fAppDataContents       :: !(Maybe Bool)+    , _fImageMediaMetadata    :: !(Maybe FileImageMediaMetadata)+    , _fExplicitlyTrashed     :: !(Maybe Bool)+    , _fEditable              :: !(Maybe Bool)+    , _fModifiedByMeDate      :: !(Maybe DateTime')+    , _fLastViewedByMeDate    :: !(Maybe DateTime')+    , _fShared                :: !(Maybe Bool)+    , _fMD5Checksum           :: !(Maybe Text)+    , _fFolderColorRgb        :: !(Maybe Text)+    , _fMimeType              :: !(Maybe Text)+    , _fCreatedDate           :: !(Maybe DateTime')+    , _fSelfLink              :: !(Maybe Text)+    , _fLastModifyingUserName :: !(Maybe Text)+    , _fShareable             :: !(Maybe Bool)+    , _fDownloadURL           :: !(Maybe Text)+    , _fExportLinks           :: !(Maybe FileExportLinks)+    , _fCopyable              :: !(Maybe Bool)+    , _fParents               :: !(Maybe [ParentReference])+    , _fSharedWithMeDate      :: !(Maybe DateTime')+    , _fSpaces                :: !(Maybe [Text])+    , _fVersion               :: !(Maybe (Textual Int64))+    , _fUserPermission        :: !(Maybe Permission)+    , _fWritersCanShare       :: !(Maybe Bool)+    , _fDefaultOpenWithLink   :: !(Maybe Text)+    , _fId                    :: !(Maybe Text)+    , _fLabels                :: !(Maybe FileLabels)+    , _fModifiedDate          :: !(Maybe DateTime')+    , _fPermissions           :: !(Maybe [Permission])+    , _fQuotaBytesUsed        :: !(Maybe (Textual Int64))+    , _fTitle                 :: !(Maybe Text)+    , _fAlternateLink         :: !(Maybe Text)+    , _fVideoMediaMetadata    :: !(Maybe FileVideoMediaMetadata)+    , _fHeadRevisionId        :: !(Maybe Text)+    , _fDescription           :: !(Maybe Text)+    , _fSharingUser           :: !(Maybe User)+    , _fWebContentLink        :: !(Maybe Text)+    , _fProperties            :: !(Maybe [Property])+    , _fIndexableText         :: !(Maybe FileIndexableText)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'File' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fOwnedByMe'+--+-- * 'fThumbnailLink'+--+-- * 'fFullFileExtension'+--+-- * 'fThumbnail'+--+-- * 'fMarkedViewedByMeDate'+--+-- * 'fEtag'+--+-- * 'fFileExtension'+--+-- * 'fCanComment'+--+-- * 'fOwners'+--+-- * 'fOwnerNames'+--+-- * 'fOpenWithLinks'+--+-- * 'fWebViewLink'+--+-- * 'fOriginalFilename'+--+-- * 'fKind'+--+-- * 'fLastModifyingUser'+--+-- * 'fIconLink'+--+-- * 'fEmbedLink'+--+-- * 'fFileSize'+--+-- * 'fAppDataContents'+--+-- * 'fImageMediaMetadata'+--+-- * 'fExplicitlyTrashed'+--+-- * 'fEditable'+--+-- * 'fModifiedByMeDate'+--+-- * 'fLastViewedByMeDate'+--+-- * 'fShared'+--+-- * 'fMD5Checksum'+--+-- * 'fFolderColorRgb'+--+-- * 'fMimeType'+--+-- * 'fCreatedDate'+--+-- * 'fSelfLink'+--+-- * 'fLastModifyingUserName'+--+-- * 'fShareable'+--+-- * 'fDownloadURL'+--+-- * 'fExportLinks'+--+-- * 'fCopyable'+--+-- * 'fParents'+--+-- * 'fSharedWithMeDate'+--+-- * 'fSpaces'+--+-- * 'fVersion'+--+-- * 'fUserPermission'+--+-- * 'fWritersCanShare'+--+-- * 'fDefaultOpenWithLink'+--+-- * 'fId'+--+-- * 'fLabels'+--+-- * 'fModifiedDate'+--+-- * 'fPermissions'+--+-- * 'fQuotaBytesUsed'+--+-- * 'fTitle'+--+-- * 'fAlternateLink'+--+-- * 'fVideoMediaMetadata'+--+-- * 'fHeadRevisionId'+--+-- * 'fDescription'+--+-- * 'fSharingUser'+--+-- * 'fWebContentLink'+--+-- * 'fProperties'+--+-- * 'fIndexableText'+file+    :: File+file =+    File+    { _fOwnedByMe = Nothing+    , _fThumbnailLink = Nothing+    , _fFullFileExtension = Nothing+    , _fThumbnail = Nothing+    , _fMarkedViewedByMeDate = Nothing+    , _fEtag = Nothing+    , _fFileExtension = Nothing+    , _fCanComment = Nothing+    , _fOwners = Nothing+    , _fOwnerNames = Nothing+    , _fOpenWithLinks = Nothing+    , _fWebViewLink = Nothing+    , _fOriginalFilename = Nothing+    , _fKind = "drive#file"+    , _fLastModifyingUser = Nothing+    , _fIconLink = Nothing+    , _fEmbedLink = Nothing+    , _fFileSize = Nothing+    , _fAppDataContents = Nothing+    , _fImageMediaMetadata = Nothing+    , _fExplicitlyTrashed = Nothing+    , _fEditable = Nothing+    , _fModifiedByMeDate = Nothing+    , _fLastViewedByMeDate = Nothing+    , _fShared = Nothing+    , _fMD5Checksum = Nothing+    , _fFolderColorRgb = Nothing+    , _fMimeType = Nothing+    , _fCreatedDate = Nothing+    , _fSelfLink = Nothing+    , _fLastModifyingUserName = Nothing+    , _fShareable = Nothing+    , _fDownloadURL = Nothing+    , _fExportLinks = Nothing+    , _fCopyable = Nothing+    , _fParents = Nothing+    , _fSharedWithMeDate = Nothing+    , _fSpaces = Nothing+    , _fVersion = Nothing+    , _fUserPermission = Nothing+    , _fWritersCanShare = Nothing+    , _fDefaultOpenWithLink = Nothing+    , _fId = Nothing+    , _fLabels = Nothing+    , _fModifiedDate = Nothing+    , _fPermissions = Nothing+    , _fQuotaBytesUsed = Nothing+    , _fTitle = Nothing+    , _fAlternateLink = Nothing+    , _fVideoMediaMetadata = Nothing+    , _fHeadRevisionId = Nothing+    , _fDescription = Nothing+    , _fSharingUser = Nothing+    , _fWebContentLink = Nothing+    , _fProperties = Nothing+    , _fIndexableText = Nothing+    }++-- | Whether the file is owned by the current user.+fOwnedByMe :: Lens' File (Maybe Bool)+fOwnedByMe+  = lens _fOwnedByMe (\ s a -> s{_fOwnedByMe = a})++-- | A short-lived link to the file\'s thumbnail. Typically lasts on the+-- order of hours.+fThumbnailLink :: Lens' File (Maybe Text)+fThumbnailLink+  = lens _fThumbnailLink+      (\ s a -> s{_fThumbnailLink = a})++-- | The full file extension; extracted from the title. May contain multiple+-- concatenated extensions, such as \"tar.gz\". Removing an extension from+-- the title does not clear this field; however, changing the extension on+-- the title does update this field. This field is only populated for files+-- with content stored in Drive; it is not populated for Google Docs or+-- shortcut files.+fFullFileExtension :: Lens' File (Maybe Text)+fFullFileExtension+  = lens _fFullFileExtension+      (\ s a -> s{_fFullFileExtension = a})++-- | Thumbnail for the file. Only accepted on upload and for files that are+-- not already thumbnailed by Google.+fThumbnail :: Lens' File (Maybe FileThumbnail)+fThumbnail+  = lens _fThumbnail (\ s a -> s{_fThumbnail = a})++-- | Deprecated.+fMarkedViewedByMeDate :: Lens' File (Maybe UTCTime)+fMarkedViewedByMeDate+  = lens _fMarkedViewedByMeDate+      (\ s a -> s{_fMarkedViewedByMeDate = a})+      . mapping _DateTime++-- | ETag of the file.+fEtag :: Lens' File (Maybe Text)+fEtag = lens _fEtag (\ s a -> s{_fEtag = a})++-- | The final component of fullFileExtension with trailing text that does+-- not appear to be part of the extension removed. This field is only+-- populated for files with content stored in Drive; it is not populated+-- for Google Docs or shortcut files.+fFileExtension :: Lens' File (Maybe Text)+fFileExtension+  = lens _fFileExtension+      (\ s a -> s{_fFileExtension = a})++-- | Whether the current user can comment on the file.+fCanComment :: Lens' File (Maybe Bool)+fCanComment+  = lens _fCanComment (\ s a -> s{_fCanComment = a})++-- | The owner(s) of this file.+fOwners :: Lens' File [User]+fOwners+  = lens _fOwners (\ s a -> s{_fOwners = a}) . _Default+      . _Coerce++-- | Name(s) of the owner(s) of this file.+fOwnerNames :: Lens' File [Text]+fOwnerNames+  = lens _fOwnerNames (\ s a -> s{_fOwnerNames = a}) .+      _Default+      . _Coerce++-- | A map of the id of each of the user\'s apps to a link to open this file+-- with that app. Only populated when the drive.apps.readonly scope is+-- used.+fOpenWithLinks :: Lens' File (Maybe FileOpenWithLinks)+fOpenWithLinks+  = lens _fOpenWithLinks+      (\ s a -> s{_fOpenWithLinks = a})++-- | A link only available on public folders for viewing their static web+-- assets (HTML, CSS, JS, etc) via Google Drive\'s Website Hosting.+fWebViewLink :: Lens' File (Maybe Text)+fWebViewLink+  = lens _fWebViewLink (\ s a -> s{_fWebViewLink = a})++-- | The original filename if the file was uploaded manually, or the original+-- title if the file was inserted through the API. Note that renames of the+-- title will not change the original filename. This field is only+-- populated for files with content stored in Drive; it is not populated+-- for Google Docs or shortcut files.+fOriginalFilename :: Lens' File (Maybe Text)+fOriginalFilename+  = lens _fOriginalFilename+      (\ s a -> s{_fOriginalFilename = a})++-- | The type of file. This is always drive#file.+fKind :: Lens' File Text+fKind = lens _fKind (\ s a -> s{_fKind = a})++-- | The last user to modify this file.+fLastModifyingUser :: Lens' File (Maybe User)+fLastModifyingUser+  = lens _fLastModifyingUser+      (\ s a -> s{_fLastModifyingUser = a})++-- | A link to the file\'s icon.+fIconLink :: Lens' File (Maybe Text)+fIconLink+  = lens _fIconLink (\ s a -> s{_fIconLink = a})++-- | A link for embedding the file.+fEmbedLink :: Lens' File (Maybe Text)+fEmbedLink+  = lens _fEmbedLink (\ s a -> s{_fEmbedLink = a})++-- | The size of the file in bytes. This field is only populated for files+-- with content stored in Drive; it is not populated for Google Docs or+-- shortcut files.+fFileSize :: Lens' File (Maybe Int64)+fFileSize+  = lens _fFileSize (\ s a -> s{_fFileSize = a}) .+      mapping _Coerce++-- | Whether this file is in the Application Data folder.+fAppDataContents :: Lens' File (Maybe Bool)+fAppDataContents+  = lens _fAppDataContents+      (\ s a -> s{_fAppDataContents = a})++-- | Metadata about image media. This will only be present for image types,+-- and its contents will depend on what can be parsed from the image+-- content.+fImageMediaMetadata :: Lens' File (Maybe FileImageMediaMetadata)+fImageMediaMetadata+  = lens _fImageMediaMetadata+      (\ s a -> s{_fImageMediaMetadata = a})++-- | Whether this file has been explicitly trashed, as opposed to recursively+-- trashed.+fExplicitlyTrashed :: Lens' File (Maybe Bool)+fExplicitlyTrashed+  = lens _fExplicitlyTrashed+      (\ s a -> s{_fExplicitlyTrashed = a})++-- | Whether the file can be edited by the current user.+fEditable :: Lens' File (Maybe Bool)+fEditable+  = lens _fEditable (\ s a -> s{_fEditable = a})++-- | Last time this file was modified by the user (formatted RFC 3339+-- timestamp). Note that setting modifiedDate will also update the+-- modifiedByMe date for the user which set the date.+fModifiedByMeDate :: Lens' File (Maybe UTCTime)+fModifiedByMeDate+  = lens _fModifiedByMeDate+      (\ s a -> s{_fModifiedByMeDate = a})+      . mapping _DateTime++-- | Last time this file was viewed by the user (formatted RFC 3339+-- timestamp).+fLastViewedByMeDate :: Lens' File (Maybe UTCTime)+fLastViewedByMeDate+  = lens _fLastViewedByMeDate+      (\ s a -> s{_fLastViewedByMeDate = a})+      . mapping _DateTime++-- | Whether the file has been shared.+fShared :: Lens' File (Maybe Bool)+fShared = lens _fShared (\ s a -> s{_fShared = a})++-- | An MD5 checksum for the content of this file. This field is only+-- populated for files with content stored in Drive; it is not populated+-- for Google Docs or shortcut files.+fMD5Checksum :: Lens' File (Maybe Text)+fMD5Checksum+  = lens _fMD5Checksum (\ s a -> s{_fMD5Checksum = a})++-- | Folder color as an RGB hex string if the file is a folder. The list of+-- supported colors is available in the folderColorPalette field of the+-- About resource. If an unsupported color is specified, it will be changed+-- to the closest color in the palette.+fFolderColorRgb :: Lens' File (Maybe Text)+fFolderColorRgb+  = lens _fFolderColorRgb+      (\ s a -> s{_fFolderColorRgb = a})++-- | The MIME type of the file. This is only mutable on update when uploading+-- new content. This field can be left blank, and the mimetype will be+-- determined from the uploaded content\'s MIME type.+fMimeType :: Lens' File (Maybe Text)+fMimeType+  = lens _fMimeType (\ s a -> s{_fMimeType = a})++-- | Create time for this file (formatted RFC 3339 timestamp).+fCreatedDate :: Lens' File (Maybe UTCTime)+fCreatedDate+  = lens _fCreatedDate (\ s a -> s{_fCreatedDate = a})+      . mapping _DateTime++-- | A link back to this file.+fSelfLink :: Lens' File (Maybe Text)+fSelfLink+  = lens _fSelfLink (\ s a -> s{_fSelfLink = a})++-- | Name of the last user to modify this file.+fLastModifyingUserName :: Lens' File (Maybe Text)+fLastModifyingUserName+  = lens _fLastModifyingUserName+      (\ s a -> s{_fLastModifyingUserName = a})++-- | Whether the file\'s sharing settings can be modified by the current+-- user.+fShareable :: Lens' File (Maybe Bool)+fShareable+  = lens _fShareable (\ s a -> s{_fShareable = a})++fDownloadURL :: Lens' File (Maybe Text)+fDownloadURL+  = lens _fDownloadURL (\ s a -> s{_fDownloadURL = a})++-- | Links for exporting Google Docs to specific formats.+fExportLinks :: Lens' File (Maybe FileExportLinks)+fExportLinks+  = lens _fExportLinks (\ s a -> s{_fExportLinks = a})++-- | Whether the file can be copied by the current user.+fCopyable :: Lens' File (Maybe Bool)+fCopyable+  = lens _fCopyable (\ s a -> s{_fCopyable = a})++-- | Collection of parent folders which contain this file. Setting this field+-- will put the file in all of the provided folders. On insert, if no+-- folders are provided, the file will be placed in the default root+-- folder.+fParents :: Lens' File [ParentReference]+fParents+  = lens _fParents (\ s a -> s{_fParents = a}) .+      _Default+      . _Coerce++-- | Time at which this file was shared with the user (formatted RFC 3339+-- timestamp).+fSharedWithMeDate :: Lens' File (Maybe UTCTime)+fSharedWithMeDate+  = lens _fSharedWithMeDate+      (\ s a -> s{_fSharedWithMeDate = a})+      . mapping _DateTime++-- | The list of spaces which contain the file. Supported values are+-- \'drive\', \'appDataFolder\' and \'photos\'.+fSpaces :: Lens' File [Text]+fSpaces+  = lens _fSpaces (\ s a -> s{_fSpaces = a}) . _Default+      . _Coerce++-- | A monotonically increasing version number for the file. This reflects+-- every change made to the file on the server, even those not visible to+-- the requesting user.+fVersion :: Lens' File (Maybe Int64)+fVersion+  = lens _fVersion (\ s a -> s{_fVersion = a}) .+      mapping _Coerce++-- | The permissions for the authenticated user on this file.+fUserPermission :: Lens' File (Maybe Permission)+fUserPermission+  = lens _fUserPermission+      (\ s a -> s{_fUserPermission = a})++-- | Whether writers can share the document with other users.+fWritersCanShare :: Lens' File (Maybe Bool)+fWritersCanShare+  = lens _fWritersCanShare+      (\ s a -> s{_fWritersCanShare = a})++-- | A link to open this file with the user\'s default app for this file.+-- Only populated when the drive.apps.readonly scope is used.+fDefaultOpenWithLink :: Lens' File (Maybe Text)+fDefaultOpenWithLink+  = lens _fDefaultOpenWithLink+      (\ s a -> s{_fDefaultOpenWithLink = a})++-- | The ID of the file.+fId :: Lens' File (Maybe Text)+fId = lens _fId (\ s a -> s{_fId = a})++-- | A group of labels for the file.+fLabels :: Lens' File (Maybe FileLabels)+fLabels = lens _fLabels (\ s a -> s{_fLabels = a})++-- | Last time this file was modified by anyone (formatted RFC 3339+-- timestamp). This is only mutable on update when the setModifiedDate+-- parameter is set.+fModifiedDate :: Lens' File (Maybe UTCTime)+fModifiedDate+  = lens _fModifiedDate+      (\ s a -> s{_fModifiedDate = a})+      . mapping _DateTime++-- | The list of permissions for users with access to this file.+fPermissions :: Lens' File [Permission]+fPermissions+  = lens _fPermissions (\ s a -> s{_fPermissions = a})+      . _Default+      . _Coerce++-- | The number of quota bytes used by this file.+fQuotaBytesUsed :: Lens' File (Maybe Int64)+fQuotaBytesUsed+  = lens _fQuotaBytesUsed+      (\ s a -> s{_fQuotaBytesUsed = a})+      . mapping _Coerce++-- | The title of this file.+fTitle :: Lens' File (Maybe Text)+fTitle = lens _fTitle (\ s a -> s{_fTitle = a})++-- | A link for opening the file in a relevant Google editor or viewer.+fAlternateLink :: Lens' File (Maybe Text)+fAlternateLink+  = lens _fAlternateLink+      (\ s a -> s{_fAlternateLink = a})++-- | Metadata about video media. This will only be present for video types.+fVideoMediaMetadata :: Lens' File (Maybe FileVideoMediaMetadata)+fVideoMediaMetadata+  = lens _fVideoMediaMetadata+      (\ s a -> s{_fVideoMediaMetadata = a})++-- | The ID of the file\'s head revision. This field is only populated for+-- files with content stored in Drive; it is not populated for Google Docs+-- or shortcut files.+fHeadRevisionId :: Lens' File (Maybe Text)+fHeadRevisionId+  = lens _fHeadRevisionId+      (\ s a -> s{_fHeadRevisionId = a})++-- | A short description of the file.+fDescription :: Lens' File (Maybe Text)+fDescription+  = lens _fDescription (\ s a -> s{_fDescription = a})++-- | User that shared the item with the current user, if available.+fSharingUser :: Lens' File (Maybe User)+fSharingUser+  = lens _fSharingUser (\ s a -> s{_fSharingUser = a})++-- | A link for downloading the content of the file in a browser using cookie+-- based authentication. In cases where the content is shared publicly, the+-- content can be downloaded without any credentials.+fWebContentLink :: Lens' File (Maybe Text)+fWebContentLink+  = lens _fWebContentLink+      (\ s a -> s{_fWebContentLink = a})++-- | The list of properties.+fProperties :: Lens' File [Property]+fProperties+  = lens _fProperties (\ s a -> s{_fProperties = a}) .+      _Default+      . _Coerce++-- | Indexable text attributes for the file (can only be written)+fIndexableText :: Lens' File (Maybe FileIndexableText)+fIndexableText+  = lens _fIndexableText+      (\ s a -> s{_fIndexableText = a})++instance FromJSON File where+        parseJSON+          = withObject "File"+              (\ o ->+                 File <$>+                   (o .:? "ownedByMe") <*> (o .:? "thumbnailLink") <*>+                     (o .:? "fullFileExtension")+                     <*> (o .:? "thumbnail")+                     <*> (o .:? "markedViewedByMeDate")+                     <*> (o .:? "etag")+                     <*> (o .:? "fileExtension")+                     <*> (o .:? "canComment")+                     <*> (o .:? "owners" .!= mempty)+                     <*> (o .:? "ownerNames" .!= mempty)+                     <*> (o .:? "openWithLinks")+                     <*> (o .:? "webViewLink")+                     <*> (o .:? "originalFilename")+                     <*> (o .:? "kind" .!= "drive#file")+                     <*> (o .:? "lastModifyingUser")+                     <*> (o .:? "iconLink")+                     <*> (o .:? "embedLink")+                     <*> (o .:? "fileSize")+                     <*> (o .:? "appDataContents")+                     <*> (o .:? "imageMediaMetadata")+                     <*> (o .:? "explicitlyTrashed")+                     <*> (o .:? "editable")+                     <*> (o .:? "modifiedByMeDate")+                     <*> (o .:? "lastViewedByMeDate")+                     <*> (o .:? "shared")+                     <*> (o .:? "md5Checksum")+                     <*> (o .:? "folderColorRgb")+                     <*> (o .:? "mimeType")+                     <*> (o .:? "createdDate")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "lastModifyingUserName")+                     <*> (o .:? "shareable")+                     <*> (o .:? "downloadUrl")+                     <*> (o .:? "exportLinks")+                     <*> (o .:? "copyable")+                     <*> (o .:? "parents" .!= mempty)+                     <*> (o .:? "sharedWithMeDate")+                     <*> (o .:? "spaces" .!= mempty)+                     <*> (o .:? "version")+                     <*> (o .:? "userPermission")+                     <*> (o .:? "writersCanShare")+                     <*> (o .:? "defaultOpenWithLink")+                     <*> (o .:? "id")+                     <*> (o .:? "labels")+                     <*> (o .:? "modifiedDate")+                     <*> (o .:? "permissions" .!= mempty)+                     <*> (o .:? "quotaBytesUsed")+                     <*> (o .:? "title")+                     <*> (o .:? "alternateLink")+                     <*> (o .:? "videoMediaMetadata")+                     <*> (o .:? "headRevisionId")+                     <*> (o .:? "description")+                     <*> (o .:? "sharingUser")+                     <*> (o .:? "webContentLink")+                     <*> (o .:? "properties" .!= mempty)+                     <*> (o .:? "indexableText"))++instance ToJSON File where+        toJSON File{..}+          = object+              (catMaybes+                 [("ownedByMe" .=) <$> _fOwnedByMe,+                  ("thumbnailLink" .=) <$> _fThumbnailLink,+                  ("fullFileExtension" .=) <$> _fFullFileExtension,+                  ("thumbnail" .=) <$> _fThumbnail,+                  ("markedViewedByMeDate" .=) <$>+                    _fMarkedViewedByMeDate,+                  ("etag" .=) <$> _fEtag,+                  ("fileExtension" .=) <$> _fFileExtension,+                  ("canComment" .=) <$> _fCanComment,+                  ("owners" .=) <$> _fOwners,+                  ("ownerNames" .=) <$> _fOwnerNames,+                  ("openWithLinks" .=) <$> _fOpenWithLinks,+                  ("webViewLink" .=) <$> _fWebViewLink,+                  ("originalFilename" .=) <$> _fOriginalFilename,+                  Just ("kind" .= _fKind),+                  ("lastModifyingUser" .=) <$> _fLastModifyingUser,+                  ("iconLink" .=) <$> _fIconLink,+                  ("embedLink" .=) <$> _fEmbedLink,+                  ("fileSize" .=) <$> _fFileSize,+                  ("appDataContents" .=) <$> _fAppDataContents,+                  ("imageMediaMetadata" .=) <$> _fImageMediaMetadata,+                  ("explicitlyTrashed" .=) <$> _fExplicitlyTrashed,+                  ("editable" .=) <$> _fEditable,+                  ("modifiedByMeDate" .=) <$> _fModifiedByMeDate,+                  ("lastViewedByMeDate" .=) <$> _fLastViewedByMeDate,+                  ("shared" .=) <$> _fShared,+                  ("md5Checksum" .=) <$> _fMD5Checksum,+                  ("folderColorRgb" .=) <$> _fFolderColorRgb,+                  ("mimeType" .=) <$> _fMimeType,+                  ("createdDate" .=) <$> _fCreatedDate,+                  ("selfLink" .=) <$> _fSelfLink,+                  ("lastModifyingUserName" .=) <$>+                    _fLastModifyingUserName,+                  ("shareable" .=) <$> _fShareable,+                  ("downloadUrl" .=) <$> _fDownloadURL,+                  ("exportLinks" .=) <$> _fExportLinks,+                  ("copyable" .=) <$> _fCopyable,+                  ("parents" .=) <$> _fParents,+                  ("sharedWithMeDate" .=) <$> _fSharedWithMeDate,+                  ("spaces" .=) <$> _fSpaces,+                  ("version" .=) <$> _fVersion,+                  ("userPermission" .=) <$> _fUserPermission,+                  ("writersCanShare" .=) <$> _fWritersCanShare,+                  ("defaultOpenWithLink" .=) <$> _fDefaultOpenWithLink,+                  ("id" .=) <$> _fId, ("labels" .=) <$> _fLabels,+                  ("modifiedDate" .=) <$> _fModifiedDate,+                  ("permissions" .=) <$> _fPermissions,+                  ("quotaBytesUsed" .=) <$> _fQuotaBytesUsed,+                  ("title" .=) <$> _fTitle,+                  ("alternateLink" .=) <$> _fAlternateLink,+                  ("videoMediaMetadata" .=) <$> _fVideoMediaMetadata,+                  ("headRevisionId" .=) <$> _fHeadRevisionId,+                  ("description" .=) <$> _fDescription,+                  ("sharingUser" .=) <$> _fSharingUser,+                  ("webContentLink" .=) <$> _fWebContentLink,+                  ("properties" .=) <$> _fProperties,+                  ("indexableText" .=) <$> _fIndexableText])++-- | An ID for a user or group as seen in Permission items.+--+-- /See:/ 'permissionId' smart constructor.+data PermissionId = PermissionId+    { _piKind :: !Text+    , _piId   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PermissionId' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'piKind'+--+-- * 'piId'+permissionId+    :: PermissionId+permissionId =+    PermissionId+    { _piKind = "drive#permissionId"+    , _piId = Nothing+    }++-- | This is always drive#permissionId.+piKind :: Lens' PermissionId Text+piKind = lens _piKind (\ s a -> s{_piKind = a})++-- | The permission ID.+piId :: Lens' PermissionId (Maybe Text)+piId = lens _piId (\ s a -> s{_piId = a})++instance FromJSON PermissionId where+        parseJSON+          = withObject "PermissionId"+              (\ o ->+                 PermissionId <$>+                   (o .:? "kind" .!= "drive#permissionId") <*>+                     (o .:? "id"))++instance ToJSON PermissionId where+        toJSON PermissionId{..}+          = object+              (catMaybes+                 [Just ("kind" .= _piKind), ("id" .=) <$> _piId])++-- | A list of a file\'s parents.+--+-- /See:/ 'parentList' smart constructor.+data ParentList = ParentList+    { _parEtag     :: !(Maybe Text)+    , _parKind     :: !Text+    , _parItems    :: !(Maybe [ParentReference])+    , _parSelfLink :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ParentList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'parEtag'+--+-- * 'parKind'+--+-- * 'parItems'+--+-- * 'parSelfLink'+parentList+    :: ParentList+parentList =+    ParentList+    { _parEtag = Nothing+    , _parKind = "drive#parentList"+    , _parItems = Nothing+    , _parSelfLink = Nothing+    }++-- | The ETag of the list.+parEtag :: Lens' ParentList (Maybe Text)+parEtag = lens _parEtag (\ s a -> s{_parEtag = a})++-- | This is always drive#parentList.+parKind :: Lens' ParentList Text+parKind = lens _parKind (\ s a -> s{_parKind = a})++-- | The actual list of parents.+parItems :: Lens' ParentList [ParentReference]+parItems+  = lens _parItems (\ s a -> s{_parItems = a}) .+      _Default+      . _Coerce++-- | A link back to this list.+parSelfLink :: Lens' ParentList (Maybe Text)+parSelfLink+  = lens _parSelfLink (\ s a -> s{_parSelfLink = a})++instance FromJSON ParentList where+        parseJSON+          = withObject "ParentList"+              (\ o ->+                 ParentList <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "drive#parentList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink"))++instance ToJSON ParentList where+        toJSON ParentList{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _parEtag, Just ("kind" .= _parKind),+                  ("items" .=) <$> _parItems,+                  ("selfLink" .=) <$> _parSelfLink])++-- | A list of generated IDs which can be provided in insert requests+--+-- /See:/ 'generatedIds' smart constructor.+data GeneratedIds = GeneratedIds+    { _giSpace :: !(Maybe Text)+    , _giKind  :: !Text+    , _giIds   :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GeneratedIds' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'giSpace'+--+-- * 'giKind'+--+-- * 'giIds'+generatedIds+    :: GeneratedIds+generatedIds =+    GeneratedIds+    { _giSpace = Nothing+    , _giKind = "drive#generatedIds"+    , _giIds = Nothing+    }++-- | The type of file that can be created with these IDs.+giSpace :: Lens' GeneratedIds (Maybe Text)+giSpace = lens _giSpace (\ s a -> s{_giSpace = a})++-- | This is always drive#generatedIds+giKind :: Lens' GeneratedIds Text+giKind = lens _giKind (\ s a -> s{_giKind = a})++-- | The IDs generated for the requesting user in the specified space.+giIds :: Lens' GeneratedIds [Text]+giIds+  = lens _giIds (\ s a -> s{_giIds = a}) . _Default .+      _Coerce++instance FromJSON GeneratedIds where+        parseJSON+          = withObject "GeneratedIds"+              (\ o ->+                 GeneratedIds <$>+                   (o .:? "space") <*>+                     (o .:? "kind" .!= "drive#generatedIds")+                     <*> (o .:? "ids" .!= mempty))++instance ToJSON GeneratedIds where+        toJSON GeneratedIds{..}+          = object+              (catMaybes+                 [("space" .=) <$> _giSpace, Just ("kind" .= _giKind),+                  ("ids" .=) <$> _giIds])++-- | Links for exporting Google Docs to specific formats.+--+-- /See:/ 'fileExportLinks' smart constructor.+newtype FileExportLinks = FileExportLinks+    { _felAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FileExportLinks' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'felAddtional'+fileExportLinks+    :: HashMap Text Text -- ^ 'felAddtional'+    -> FileExportLinks+fileExportLinks pFelAddtional_ =+    FileExportLinks+    { _felAddtional = _Coerce # pFelAddtional_+    }++-- | A mapping from export format to URL+felAddtional :: Lens' FileExportLinks (HashMap Text Text)+felAddtional+  = lens _felAddtional (\ s a -> s{_felAddtional = a})+      . _Coerce++instance FromJSON FileExportLinks where+        parseJSON+          = withObject "FileExportLinks"+              (\ o -> FileExportLinks <$> (parseJSONObject o))++instance ToJSON FileExportLinks where+        toJSON = toJSON . _felAddtional++-- | A JSON representation of a list of comments on a file in Google Drive.+--+-- /See:/ 'commentList' smart constructor.+data CommentList = CommentList+    { _comoNextPageToken :: !(Maybe Text)+    , _comoNextLink      :: !(Maybe Text)+    , _comoKind          :: !Text+    , _comoItems         :: !(Maybe [Comment])+    , _comoSelfLink      :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CommentList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'comoNextPageToken'+--+-- * 'comoNextLink'+--+-- * 'comoKind'+--+-- * 'comoItems'+--+-- * 'comoSelfLink'+commentList+    :: CommentList+commentList =+    CommentList+    { _comoNextPageToken = Nothing+    , _comoNextLink = Nothing+    , _comoKind = "drive#commentList"+    , _comoItems = Nothing+    , _comoSelfLink = Nothing+    }++-- | The token to use to request the next page of results.+comoNextPageToken :: Lens' CommentList (Maybe Text)+comoNextPageToken+  = lens _comoNextPageToken+      (\ s a -> s{_comoNextPageToken = a})++-- | A link to the next page of comments.+comoNextLink :: Lens' CommentList (Maybe Text)+comoNextLink+  = lens _comoNextLink (\ s a -> s{_comoNextLink = a})++-- | This is always drive#commentList.+comoKind :: Lens' CommentList Text+comoKind = lens _comoKind (\ s a -> s{_comoKind = a})++-- | List of comments.+comoItems :: Lens' CommentList [Comment]+comoItems+  = lens _comoItems (\ s a -> s{_comoItems = a}) .+      _Default+      . _Coerce++-- | A link back to this list.+comoSelfLink :: Lens' CommentList (Maybe Text)+comoSelfLink+  = lens _comoSelfLink (\ s a -> s{_comoSelfLink = a})++instance FromJSON CommentList where+        parseJSON+          = withObject "CommentList"+              (\ o ->+                 CommentList <$>+                   (o .:? "nextPageToken") <*> (o .:? "nextLink") <*>+                     (o .:? "kind" .!= "drive#commentList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink"))++instance ToJSON CommentList where+        toJSON CommentList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _comoNextPageToken,+                  ("nextLink" .=) <$> _comoNextLink,+                  Just ("kind" .= _comoKind),+                  ("items" .=) <$> _comoItems,+                  ("selfLink" .=) <$> _comoSelfLink])++-- | A list of revisions of a file.+--+-- /See:/ 'revisionList' smart constructor.+data RevisionList = RevisionList+    { _rlEtag     :: !(Maybe Text)+    , _rlKind     :: !Text+    , _rlItems    :: !(Maybe [Revision])+    , _rlSelfLink :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RevisionList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rlEtag'+--+-- * 'rlKind'+--+-- * 'rlItems'+--+-- * 'rlSelfLink'+revisionList+    :: RevisionList+revisionList =+    RevisionList+    { _rlEtag = Nothing+    , _rlKind = "drive#revisionList"+    , _rlItems = Nothing+    , _rlSelfLink = Nothing+    }++-- | The ETag of the list.+rlEtag :: Lens' RevisionList (Maybe Text)+rlEtag = lens _rlEtag (\ s a -> s{_rlEtag = a})++-- | This is always drive#revisionList.+rlKind :: Lens' RevisionList Text+rlKind = lens _rlKind (\ s a -> s{_rlKind = a})++-- | The actual list of revisions.+rlItems :: Lens' RevisionList [Revision]+rlItems+  = lens _rlItems (\ s a -> s{_rlItems = a}) . _Default+      . _Coerce++-- | A link back to this list.+rlSelfLink :: Lens' RevisionList (Maybe Text)+rlSelfLink+  = lens _rlSelfLink (\ s a -> s{_rlSelfLink = a})++instance FromJSON RevisionList where+        parseJSON+          = withObject "RevisionList"+              (\ o ->+                 RevisionList <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "drive#revisionList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink"))++instance ToJSON RevisionList where+        toJSON RevisionList{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _rlEtag, Just ("kind" .= _rlKind),+                  ("items" .=) <$> _rlItems,+                  ("selfLink" .=) <$> _rlSelfLink])++-- | A list of permissions associated with a file.+--+-- /See:/ 'permissionList' smart constructor.+data PermissionList = PermissionList+    { _pllEtag     :: !(Maybe Text)+    , _pllKind     :: !Text+    , _pllItems    :: !(Maybe [Permission])+    , _pllSelfLink :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PermissionList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pllEtag'+--+-- * 'pllKind'+--+-- * 'pllItems'+--+-- * 'pllSelfLink'+permissionList+    :: PermissionList+permissionList =+    PermissionList+    { _pllEtag = Nothing+    , _pllKind = "drive#permissionList"+    , _pllItems = Nothing+    , _pllSelfLink = Nothing+    }++-- | The ETag of the list.+pllEtag :: Lens' PermissionList (Maybe Text)+pllEtag = lens _pllEtag (\ s a -> s{_pllEtag = a})++-- | This is always drive#permissionList.+pllKind :: Lens' PermissionList Text+pllKind = lens _pllKind (\ s a -> s{_pllKind = a})++-- | The actual list of permissions.+pllItems :: Lens' PermissionList [Permission]+pllItems+  = lens _pllItems (\ s a -> s{_pllItems = a}) .+      _Default+      . _Coerce++-- | A link back to this list.+pllSelfLink :: Lens' PermissionList (Maybe Text)+pllSelfLink+  = lens _pllSelfLink (\ s a -> s{_pllSelfLink = a})++instance FromJSON PermissionList where+        parseJSON+          = withObject "PermissionList"+              (\ o ->+                 PermissionList <$>+                   (o .:? "etag") <*>+                     (o .:? "kind" .!= "drive#permissionList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink"))++instance ToJSON PermissionList where+        toJSON PermissionList{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _pllEtag, Just ("kind" .= _pllKind),+                  ("items" .=) <$> _pllItems,+                  ("selfLink" .=) <$> _pllSelfLink])
+ gen/Network/Google/Drive/Types/Sum.hs view
@@ -0,0 +1,305 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Drive.Types.Sum+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Drive.Types.Sum where++import           Network.Google.Prelude++-- | The visibility of the new file. This parameter is only relevant when+-- convert=false.+data FilesInsertVisibility+    = Default+      -- ^ @DEFAULT@+      -- The visibility of the new file is determined by the user\'s default+      -- visibility\/sharing policies.+    | Private+      -- ^ @PRIVATE@+      -- The new file will be visible to only the owner.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable FilesInsertVisibility++instance FromText FilesInsertVisibility where+    fromText = \case+        "DEFAULT" -> Just Default+        "PRIVATE" -> Just Private+        _ -> Nothing++instance ToText FilesInsertVisibility where+    toText = \case+        Default -> "DEFAULT"+        Private -> "PRIVATE"++instance FromJSON FilesInsertVisibility where+    parseJSON = parseJSONText "FilesInsertVisibility"++instance ToJSON FilesInsertVisibility where+    toJSON = toJSONText++-- | The body of items (files\/documents) to which the query applies.+data FilesListCorpus+    = FLCDefault+      -- ^ @DEFAULT@+      -- The items that the user has accessed.+    | FLCDomain+      -- ^ @DOMAIN@+      -- Items shared to the user\'s domain.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable FilesListCorpus++instance FromText FilesListCorpus where+    fromText = \case+        "DEFAULT" -> Just FLCDefault+        "DOMAIN" -> Just FLCDomain+        _ -> Nothing++instance ToText FilesListCorpus where+    toText = \case+        FLCDefault -> "DEFAULT"+        FLCDomain -> "DOMAIN"++instance FromJSON FilesListCorpus where+    parseJSON = parseJSONText "FilesListCorpus"++instance ToJSON FilesListCorpus where+    toJSON = toJSONText++-- | This parameter is deprecated and has no function.+data FilesListProjection+    = Basic+      -- ^ @BASIC@+      -- Deprecated+    | Full+      -- ^ @FULL@+      -- Deprecated+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable FilesListProjection++instance FromText FilesListProjection where+    fromText = \case+        "BASIC" -> Just Basic+        "FULL" -> Just Full+        _ -> Nothing++instance ToText FilesListProjection where+    toText = \case+        Basic -> "BASIC"+        Full -> "FULL"++instance FromJSON FilesListProjection where+    parseJSON = parseJSONText "FilesListProjection"++instance ToJSON FilesListProjection where+    toJSON = toJSONText++-- | Determines the behavior in which modifiedDate is updated. This overrides+-- setModifiedDate.+data FilesUpdateModifiedDateBehavior+    = FromBody+      -- ^ @fromBody@+      -- Set modifiedDate to the value provided in the body of the request. No+      -- change if no value was provided.+    | FromBodyIfNeeded+      -- ^ @fromBodyIfNeeded@+      -- Set modifiedDate to the value provided in the body of the request+      -- depending on other contents of the update.+    | FromBodyOrNow+      -- ^ @fromBodyOrNow@+      -- Set modifiedDate to the value provided in the body of the request, or to+      -- the current time if no value was provided.+    | NoChange+      -- ^ @noChange@+      -- Maintain the previous value of modifiedDate.+    | Now+      -- ^ @now@+      -- Set modifiedDate to the current time.+    | NowIfNeeded+      -- ^ @nowIfNeeded@+      -- Set modifiedDate to the current time depending on contents of the+      -- update.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable FilesUpdateModifiedDateBehavior++instance FromText FilesUpdateModifiedDateBehavior where+    fromText = \case+        "fromBody" -> Just FromBody+        "fromBodyIfNeeded" -> Just FromBodyIfNeeded+        "fromBodyOrNow" -> Just FromBodyOrNow+        "noChange" -> Just NoChange+        "now" -> Just Now+        "nowIfNeeded" -> Just NowIfNeeded+        _ -> Nothing++instance ToText FilesUpdateModifiedDateBehavior where+    toText = \case+        FromBody -> "fromBody"+        FromBodyIfNeeded -> "fromBodyIfNeeded"+        FromBodyOrNow -> "fromBodyOrNow"+        NoChange -> "noChange"+        Now -> "now"+        NowIfNeeded -> "nowIfNeeded"++instance FromJSON FilesUpdateModifiedDateBehavior where+    parseJSON = parseJSONText "FilesUpdateModifiedDateBehavior"++instance ToJSON FilesUpdateModifiedDateBehavior where+    toJSON = toJSONText++-- | This parameter is deprecated and has no function.+data FilesWatchProjection+    = FWPBasic+      -- ^ @BASIC@+      -- Deprecated+    | FWPFull+      -- ^ @FULL@+      -- Deprecated+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable FilesWatchProjection++instance FromText FilesWatchProjection where+    fromText = \case+        "BASIC" -> Just FWPBasic+        "FULL" -> Just FWPFull+        _ -> Nothing++instance ToText FilesWatchProjection where+    toText = \case+        FWPBasic -> "BASIC"+        FWPFull -> "FULL"++instance FromJSON FilesWatchProjection where+    parseJSON = parseJSONText "FilesWatchProjection"++instance ToJSON FilesWatchProjection where+    toJSON = toJSONText++-- | Determines the behavior in which modifiedDate is updated. This overrides+-- setModifiedDate.+data FilesPatchModifiedDateBehavior+    = FPMDBFromBody+      -- ^ @fromBody@+      -- Set modifiedDate to the value provided in the body of the request. No+      -- change if no value was provided.+    | FPMDBFromBodyIfNeeded+      -- ^ @fromBodyIfNeeded@+      -- Set modifiedDate to the value provided in the body of the request+      -- depending on other contents of the update.+    | FPMDBFromBodyOrNow+      -- ^ @fromBodyOrNow@+      -- Set modifiedDate to the value provided in the body of the request, or to+      -- the current time if no value was provided.+    | FPMDBNoChange+      -- ^ @noChange@+      -- Maintain the previous value of modifiedDate.+    | FPMDBNow+      -- ^ @now@+      -- Set modifiedDate to the current time.+    | FPMDBNowIfNeeded+      -- ^ @nowIfNeeded@+      -- Set modifiedDate to the current time depending on contents of the+      -- update.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable FilesPatchModifiedDateBehavior++instance FromText FilesPatchModifiedDateBehavior where+    fromText = \case+        "fromBody" -> Just FPMDBFromBody+        "fromBodyIfNeeded" -> Just FPMDBFromBodyIfNeeded+        "fromBodyOrNow" -> Just FPMDBFromBodyOrNow+        "noChange" -> Just FPMDBNoChange+        "now" -> Just FPMDBNow+        "nowIfNeeded" -> Just FPMDBNowIfNeeded+        _ -> Nothing++instance ToText FilesPatchModifiedDateBehavior where+    toText = \case+        FPMDBFromBody -> "fromBody"+        FPMDBFromBodyIfNeeded -> "fromBodyIfNeeded"+        FPMDBFromBodyOrNow -> "fromBodyOrNow"+        FPMDBNoChange -> "noChange"+        FPMDBNow -> "now"+        FPMDBNowIfNeeded -> "nowIfNeeded"++instance FromJSON FilesPatchModifiedDateBehavior where+    parseJSON = parseJSONText "FilesPatchModifiedDateBehavior"++instance ToJSON FilesPatchModifiedDateBehavior where+    toJSON = toJSONText++-- | The visibility of the new file. This parameter is only relevant when the+-- source is not a native Google Doc and convert=false.+data FilesCopyVisibility+    = FCVDefault+      -- ^ @DEFAULT@+      -- The visibility of the new file is determined by the user\'s default+      -- visibility\/sharing policies.+    | FCVPrivate+      -- ^ @PRIVATE@+      -- The new file will be visible to only the owner.+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable FilesCopyVisibility++instance FromText FilesCopyVisibility where+    fromText = \case+        "DEFAULT" -> Just FCVDefault+        "PRIVATE" -> Just FCVPrivate+        _ -> Nothing++instance ToText FilesCopyVisibility where+    toText = \case+        FCVDefault -> "DEFAULT"+        FCVPrivate -> "PRIVATE"++instance FromJSON FilesCopyVisibility where+    parseJSON = parseJSONText "FilesCopyVisibility"++instance ToJSON FilesCopyVisibility where+    toJSON = toJSONText++-- | This parameter is deprecated and has no function.+data FilesGetProjection+    = FGPBasic+      -- ^ @BASIC@+      -- Deprecated+    | FGPFull+      -- ^ @FULL@+      -- Deprecated+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable FilesGetProjection++instance FromText FilesGetProjection where+    fromText = \case+        "BASIC" -> Just FGPBasic+        "FULL" -> Just FGPFull+        _ -> Nothing++instance ToText FilesGetProjection where+    toText = \case+        FGPBasic -> "BASIC"+        FGPFull -> "FULL"++instance FromJSON FilesGetProjection where+    parseJSON = parseJSONText "FilesGetProjection"++instance ToJSON FilesGetProjection where+    toJSON = toJSONText
+ gen/Network/Google/Resource/Drive/About/Get.hs view
@@ -0,0 +1,117 @@+{-# 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.Drive.About.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the information about the current user along with Drive API+-- settings+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.about.get@.+module Network.Google.Resource.Drive.About.Get+    (+    -- * REST Resource+      AboutGetResource++    -- * Creating a Request+    , aboutGet+    , AboutGet++    -- * Request Lenses+    , agIncludeSubscribed+    , agStartChangeId+    , agMaxChangeIdCount+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.about.get@ method which the+-- 'AboutGet' request conforms to.+type AboutGetResource =+     "drive" :>+       "v2" :>+         "about" :>+           QueryParam "includeSubscribed" Bool :>+             QueryParam "startChangeId" (Textual Int64) :>+               QueryParam "maxChangeIdCount" (Textual Int64) :>+                 QueryParam "alt" AltJSON :> Get '[JSON] About++-- | Gets the information about the current user along with Drive API+-- settings+--+-- /See:/ 'aboutGet' smart constructor.+data AboutGet = AboutGet+    { _agIncludeSubscribed :: !Bool+    , _agStartChangeId     :: !(Maybe (Textual Int64))+    , _agMaxChangeIdCount  :: !(Textual Int64)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AboutGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'agIncludeSubscribed'+--+-- * 'agStartChangeId'+--+-- * 'agMaxChangeIdCount'+aboutGet+    :: AboutGet+aboutGet =+    AboutGet+    { _agIncludeSubscribed = True+    , _agStartChangeId = Nothing+    , _agMaxChangeIdCount = 1+    }++-- | When calculating the number of remaining change IDs, whether to include+-- public files the user has opened and shared files. When set to false,+-- this counts only change IDs for owned files and any shared or public+-- files that the user has explicitly added to a folder they own.+agIncludeSubscribed :: Lens' AboutGet Bool+agIncludeSubscribed+  = lens _agIncludeSubscribed+      (\ s a -> s{_agIncludeSubscribed = a})++-- | Change ID to start counting from when calculating number of remaining+-- change IDs+agStartChangeId :: Lens' AboutGet (Maybe Int64)+agStartChangeId+  = lens _agStartChangeId+      (\ s a -> s{_agStartChangeId = a})+      . mapping _Coerce++-- | Maximum number of remaining change IDs to count+agMaxChangeIdCount :: Lens' AboutGet Int64+agMaxChangeIdCount+  = lens _agMaxChangeIdCount+      (\ s a -> s{_agMaxChangeIdCount = a})+      . _Coerce++instance GoogleRequest AboutGet where+        type Rs AboutGet = About+        requestClient AboutGet{..}+          = go (Just _agIncludeSubscribed) _agStartChangeId+              (Just _agMaxChangeIdCount)+              (Just AltJSON)+              driveService+          where go+                  = buildClient (Proxy :: Proxy AboutGetResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Apps/Get.hs view
@@ -0,0 +1,80 @@+{-# 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.Drive.Apps.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a specific app.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.apps.get@.+module Network.Google.Resource.Drive.Apps.Get+    (+    -- * REST Resource+      AppsGetResource++    -- * Creating a Request+    , appsGet+    , AppsGet++    -- * Request Lenses+    , agAppId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.apps.get@ method which the+-- 'AppsGet' request conforms to.+type AppsGetResource =+     "drive" :>+       "v2" :>+         "apps" :>+           Capture "appId" Text :>+             QueryParam "alt" AltJSON :> Get '[JSON] App++-- | Gets a specific app.+--+-- /See:/ 'appsGet' smart constructor.+newtype AppsGet = AppsGet+    { _agAppId :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AppsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'agAppId'+appsGet+    :: Text -- ^ 'agAppId'+    -> AppsGet+appsGet pAgAppId_ =+    AppsGet+    { _agAppId = pAgAppId_+    }++-- | The ID of the app.+agAppId :: Lens' AppsGet Text+agAppId = lens _agAppId (\ s a -> s{_agAppId = a})++instance GoogleRequest AppsGet where+        type Rs AppsGet = App+        requestClient AppsGet{..}+          = go _agAppId (Just AltJSON) driveService+          where go+                  = buildClient (Proxy :: Proxy AppsGetResource) mempty
+ gen/Network/Google/Resource/Drive/Apps/List.hs view
@@ -0,0 +1,117 @@+{-# 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.Drive.Apps.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists a user\'s installed apps.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.apps.list@.+module Network.Google.Resource.Drive.Apps.List+    (+    -- * REST Resource+      AppsListResource++    -- * Creating a Request+    , appsList+    , AppsList++    -- * Request Lenses+    , alLanguageCode+    , alAppFilterExtensions+    , alAppFilterMimeTypes+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.apps.list@ method which the+-- 'AppsList' request conforms to.+type AppsListResource =+     "drive" :>+       "v2" :>+         "apps" :>+           QueryParam "languageCode" Text :>+             QueryParam "appFilterExtensions" Text :>+               QueryParam "appFilterMimeTypes" Text :>+                 QueryParam "alt" AltJSON :> Get '[JSON] AppList++-- | Lists a user\'s installed apps.+--+-- /See:/ 'appsList' smart constructor.+data AppsList = AppsList+    { _alLanguageCode        :: !(Maybe Text)+    , _alAppFilterExtensions :: !Text+    , _alAppFilterMimeTypes  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AppsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'alLanguageCode'+--+-- * 'alAppFilterExtensions'+--+-- * 'alAppFilterMimeTypes'+appsList+    :: AppsList+appsList =+    AppsList+    { _alLanguageCode = Nothing+    , _alAppFilterExtensions = ""+    , _alAppFilterMimeTypes = ""+    }++-- | A language or locale code, as defined by BCP 47, with some extensions+-- from Unicode\'s LDML format (http:\/\/www.unicode.org\/reports\/tr35\/).+alLanguageCode :: Lens' AppsList (Maybe Text)+alLanguageCode+  = lens _alLanguageCode+      (\ s a -> s{_alLanguageCode = a})++-- | A comma-separated list of file extensions for open with filtering. All+-- apps within the given app query scope which can open any of the given+-- file extensions will be included in the response. If appFilterMimeTypes+-- are provided as well, the result is a union of the two resulting app+-- lists.+alAppFilterExtensions :: Lens' AppsList Text+alAppFilterExtensions+  = lens _alAppFilterExtensions+      (\ s a -> s{_alAppFilterExtensions = a})++-- | A comma-separated list of MIME types for open with filtering. All apps+-- within the given app query scope which can open any of the given MIME+-- types will be included in the response. If appFilterExtensions are+-- provided as well, the result is a union of the two resulting app lists.+alAppFilterMimeTypes :: Lens' AppsList Text+alAppFilterMimeTypes+  = lens _alAppFilterMimeTypes+      (\ s a -> s{_alAppFilterMimeTypes = a})++instance GoogleRequest AppsList where+        type Rs AppsList = AppList+        requestClient AppsList{..}+          = go _alLanguageCode (Just _alAppFilterExtensions)+              (Just _alAppFilterMimeTypes)+              (Just AltJSON)+              driveService+          where go+                  = buildClient (Proxy :: Proxy AppsListResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Changes/Get.hs view
@@ -0,0 +1,82 @@+{-# 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.Drive.Changes.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a specific change.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.changes.get@.+module Network.Google.Resource.Drive.Changes.Get+    (+    -- * REST Resource+      ChangesGetResource++    -- * Creating a Request+    , changesGet+    , ChangesGet++    -- * Request Lenses+    , cgChangeId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.changes.get@ method which the+-- 'ChangesGet' request conforms to.+type ChangesGetResource =+     "drive" :>+       "v2" :>+         "changes" :>+           Capture "changeId" Text :>+             QueryParam "alt" AltJSON :> Get '[JSON] Change++-- | Gets a specific change.+--+-- /See:/ 'changesGet' smart constructor.+newtype ChangesGet = ChangesGet+    { _cgChangeId :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChangesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cgChangeId'+changesGet+    :: Text -- ^ 'cgChangeId'+    -> ChangesGet+changesGet pCgChangeId_ =+    ChangesGet+    { _cgChangeId = pCgChangeId_+    }++-- | The ID of the change.+cgChangeId :: Lens' ChangesGet Text+cgChangeId+  = lens _cgChangeId (\ s a -> s{_cgChangeId = a})++instance GoogleRequest ChangesGet where+        type Rs ChangesGet = Change+        requestClient ChangesGet{..}+          = go _cgChangeId (Just AltJSON) driveService+          where go+                  = buildClient (Proxy :: Proxy ChangesGetResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Changes/List.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Changes.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the changes for a user.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.changes.list@.+module Network.Google.Resource.Drive.Changes.List+    (+    -- * REST Resource+      ChangesListResource++    -- * Creating a Request+    , changesList+    , ChangesList++    -- * Request Lenses+    , clIncludeSubscribed+    , clStartChangeId+    , clSpaces+    , clPageToken+    , clMaxResults+    , clIncludeDeleted+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.changes.list@ method which the+-- 'ChangesList' request conforms to.+type ChangesListResource =+     "drive" :>+       "v2" :>+         "changes" :>+           QueryParam "includeSubscribed" Bool :>+             QueryParam "startChangeId" (Textual Int64) :>+               QueryParam "spaces" Text :>+                 QueryParam "pageToken" Text :>+                   QueryParam "maxResults" (Textual Int32) :>+                     QueryParam "includeDeleted" Bool :>+                       QueryParam "alt" AltJSON :> Get '[JSON] ChangeList++-- | Lists the changes for a user.+--+-- /See:/ 'changesList' smart constructor.+data ChangesList = ChangesList+    { _clIncludeSubscribed :: !Bool+    , _clStartChangeId     :: !(Maybe (Textual Int64))+    , _clSpaces            :: !(Maybe Text)+    , _clPageToken         :: !(Maybe Text)+    , _clMaxResults        :: !(Textual Int32)+    , _clIncludeDeleted    :: !Bool+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChangesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'clIncludeSubscribed'+--+-- * 'clStartChangeId'+--+-- * 'clSpaces'+--+-- * 'clPageToken'+--+-- * 'clMaxResults'+--+-- * 'clIncludeDeleted'+changesList+    :: ChangesList+changesList =+    ChangesList+    { _clIncludeSubscribed = True+    , _clStartChangeId = Nothing+    , _clSpaces = Nothing+    , _clPageToken = Nothing+    , _clMaxResults = 100+    , _clIncludeDeleted = True+    }++-- | Whether to include public files the user has opened and shared files.+-- When set to false, the list only includes owned files plus any shared or+-- public files the user has explicitly added to a folder they own.+clIncludeSubscribed :: Lens' ChangesList Bool+clIncludeSubscribed+  = lens _clIncludeSubscribed+      (\ s a -> s{_clIncludeSubscribed = a})++-- | Change ID to start listing changes from.+clStartChangeId :: Lens' ChangesList (Maybe Int64)+clStartChangeId+  = lens _clStartChangeId+      (\ s a -> s{_clStartChangeId = a})+      . mapping _Coerce++-- | A comma-separated list of spaces to query. Supported values are+-- \'drive\', \'appDataFolder\' and \'photos\'.+clSpaces :: Lens' ChangesList (Maybe Text)+clSpaces = lens _clSpaces (\ s a -> s{_clSpaces = a})++-- | Page token for changes.+clPageToken :: Lens' ChangesList (Maybe Text)+clPageToken+  = lens _clPageToken (\ s a -> s{_clPageToken = a})++-- | Maximum number of changes to return.+clMaxResults :: Lens' ChangesList Int32+clMaxResults+  = lens _clMaxResults (\ s a -> s{_clMaxResults = a})+      . _Coerce++-- | Whether to include deleted items.+clIncludeDeleted :: Lens' ChangesList Bool+clIncludeDeleted+  = lens _clIncludeDeleted+      (\ s a -> s{_clIncludeDeleted = a})++instance GoogleRequest ChangesList where+        type Rs ChangesList = ChangeList+        requestClient ChangesList{..}+          = go (Just _clIncludeSubscribed) _clStartChangeId+              _clSpaces+              _clPageToken+              (Just _clMaxResults)+              (Just _clIncludeDeleted)+              (Just AltJSON)+              driveService+          where go+                  = buildClient (Proxy :: Proxy ChangesListResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Changes/Watch.hs view
@@ -0,0 +1,163 @@+{-# 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.Drive.Changes.Watch+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Subscribe to changes for a user.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.changes.watch@.+module Network.Google.Resource.Drive.Changes.Watch+    (+    -- * REST Resource+      ChangesWatchResource++    -- * Creating a Request+    , changesWatch+    , ChangesWatch++    -- * Request Lenses+    , cwIncludeSubscribed+    , cwStartChangeId+    , cwPayload+    , cwSpaces+    , cwPageToken+    , cwMaxResults+    , cwIncludeDeleted+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.changes.watch@ method which the+-- 'ChangesWatch' request conforms to.+type ChangesWatchResource =+     "drive" :>+       "v2" :>+         "changes" :>+           "watch" :>+             QueryParam "includeSubscribed" Bool :>+               QueryParam "startChangeId" (Textual Int64) :>+                 QueryParam "spaces" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Int32) :>+                       QueryParam "includeDeleted" Bool :>+                         QueryParam "alt" AltJSON :>+                           ReqBody '[JSON] Channel :> Post '[JSON] Channel++-- | Subscribe to changes for a user.+--+-- /See:/ 'changesWatch' smart constructor.+data ChangesWatch = ChangesWatch+    { _cwIncludeSubscribed :: !Bool+    , _cwStartChangeId     :: !(Maybe (Textual Int64))+    , _cwPayload           :: !Channel+    , _cwSpaces            :: !(Maybe Text)+    , _cwPageToken         :: !(Maybe Text)+    , _cwMaxResults        :: !(Textual Int32)+    , _cwIncludeDeleted    :: !Bool+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChangesWatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cwIncludeSubscribed'+--+-- * 'cwStartChangeId'+--+-- * 'cwPayload'+--+-- * 'cwSpaces'+--+-- * 'cwPageToken'+--+-- * 'cwMaxResults'+--+-- * 'cwIncludeDeleted'+changesWatch+    :: Channel -- ^ 'cwPayload'+    -> ChangesWatch+changesWatch pCwPayload_ =+    ChangesWatch+    { _cwIncludeSubscribed = True+    , _cwStartChangeId = Nothing+    , _cwPayload = pCwPayload_+    , _cwSpaces = Nothing+    , _cwPageToken = Nothing+    , _cwMaxResults = 100+    , _cwIncludeDeleted = True+    }++-- | Whether to include public files the user has opened and shared files.+-- When set to false, the list only includes owned files plus any shared or+-- public files the user has explicitly added to a folder they own.+cwIncludeSubscribed :: Lens' ChangesWatch Bool+cwIncludeSubscribed+  = lens _cwIncludeSubscribed+      (\ s a -> s{_cwIncludeSubscribed = a})++-- | Change ID to start listing changes from.+cwStartChangeId :: Lens' ChangesWatch (Maybe Int64)+cwStartChangeId+  = lens _cwStartChangeId+      (\ s a -> s{_cwStartChangeId = a})+      . mapping _Coerce++-- | Multipart request metadata.+cwPayload :: Lens' ChangesWatch Channel+cwPayload+  = lens _cwPayload (\ s a -> s{_cwPayload = a})++-- | A comma-separated list of spaces to query. Supported values are+-- \'drive\', \'appDataFolder\' and \'photos\'.+cwSpaces :: Lens' ChangesWatch (Maybe Text)+cwSpaces = lens _cwSpaces (\ s a -> s{_cwSpaces = a})++-- | Page token for changes.+cwPageToken :: Lens' ChangesWatch (Maybe Text)+cwPageToken+  = lens _cwPageToken (\ s a -> s{_cwPageToken = a})++-- | Maximum number of changes to return.+cwMaxResults :: Lens' ChangesWatch Int32+cwMaxResults+  = lens _cwMaxResults (\ s a -> s{_cwMaxResults = a})+      . _Coerce++-- | Whether to include deleted items.+cwIncludeDeleted :: Lens' ChangesWatch Bool+cwIncludeDeleted+  = lens _cwIncludeDeleted+      (\ s a -> s{_cwIncludeDeleted = a})++instance GoogleRequest ChangesWatch where+        type Rs ChangesWatch = Channel+        requestClient ChangesWatch{..}+          = go (Just _cwIncludeSubscribed) _cwStartChangeId+              _cwSpaces+              _cwPageToken+              (Just _cwMaxResults)+              (Just _cwIncludeDeleted)+              (Just AltJSON)+              _cwPayload+              driveService+          where go+                  = buildClient (Proxy :: Proxy ChangesWatchResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Channels/Stop.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Channels.Stop+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Stop watching resources through this channel+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.channels.stop@.+module Network.Google.Resource.Drive.Channels.Stop+    (+    -- * REST Resource+      ChannelsStopResource++    -- * Creating a Request+    , channelsStop+    , ChannelsStop++    -- * Request Lenses+    , csPayload+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.channels.stop@ method which the+-- 'ChannelsStop' request conforms to.+type ChannelsStopResource =+     "drive" :>+       "v2" :>+         "channels" :>+           "stop" :>+             QueryParam "alt" AltJSON :>+               ReqBody '[JSON] Channel :> Post '[JSON] ()++-- | Stop watching resources through this channel+--+-- /See:/ 'channelsStop' smart constructor.+newtype ChannelsStop = ChannelsStop+    { _csPayload :: Channel+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChannelsStop' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csPayload'+channelsStop+    :: Channel -- ^ 'csPayload'+    -> ChannelsStop+channelsStop pCsPayload_ =+    ChannelsStop+    { _csPayload = pCsPayload_+    }++-- | Multipart request metadata.+csPayload :: Lens' ChannelsStop Channel+csPayload+  = lens _csPayload (\ s a -> s{_csPayload = a})++instance GoogleRequest ChannelsStop where+        type Rs ChannelsStop = ()+        requestClient ChannelsStop{..}+          = go (Just AltJSON) _csPayload driveService+          where go+                  = buildClient (Proxy :: Proxy ChannelsStopResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Children/Delete.hs view
@@ -0,0 +1,96 @@+{-# 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.Drive.Children.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes a child from a folder.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.children.delete@.+module Network.Google.Resource.Drive.Children.Delete+    (+    -- * REST Resource+      ChildrenDeleteResource++    -- * Creating a Request+    , childrenDelete+    , ChildrenDelete++    -- * Request Lenses+    , cdFolderId+    , cdChildId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.children.delete@ method which the+-- 'ChildrenDelete' request conforms to.+type ChildrenDeleteResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "folderId" Text :>+             "children" :>+               Capture "childId" Text :>+                 QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Removes a child from a folder.+--+-- /See:/ 'childrenDelete' smart constructor.+data ChildrenDelete = ChildrenDelete+    { _cdFolderId :: !Text+    , _cdChildId  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChildrenDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdFolderId'+--+-- * 'cdChildId'+childrenDelete+    :: Text -- ^ 'cdFolderId'+    -> Text -- ^ 'cdChildId'+    -> ChildrenDelete+childrenDelete pCdFolderId_ pCdChildId_ =+    ChildrenDelete+    { _cdFolderId = pCdFolderId_+    , _cdChildId = pCdChildId_+    }++-- | The ID of the folder.+cdFolderId :: Lens' ChildrenDelete Text+cdFolderId+  = lens _cdFolderId (\ s a -> s{_cdFolderId = a})++-- | The ID of the child.+cdChildId :: Lens' ChildrenDelete Text+cdChildId+  = lens _cdChildId (\ s a -> s{_cdChildId = a})++instance GoogleRequest ChildrenDelete where+        type Rs ChildrenDelete = ()+        requestClient ChildrenDelete{..}+          = go _cdFolderId _cdChildId (Just AltJSON)+              driveService+          where go+                  = buildClient (Proxy :: Proxy ChildrenDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Children/Get.hs view
@@ -0,0 +1,97 @@+{-# 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.Drive.Children.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a specific child reference.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.children.get@.+module Network.Google.Resource.Drive.Children.Get+    (+    -- * REST Resource+      ChildrenGetResource++    -- * Creating a Request+    , childrenGet+    , ChildrenGet++    -- * Request Lenses+    , cgFolderId+    , cgChildId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.children.get@ method which the+-- 'ChildrenGet' request conforms to.+type ChildrenGetResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "folderId" Text :>+             "children" :>+               Capture "childId" Text :>+                 QueryParam "alt" AltJSON :>+                   Get '[JSON] ChildReference++-- | Gets a specific child reference.+--+-- /See:/ 'childrenGet' smart constructor.+data ChildrenGet = ChildrenGet+    { _cgFolderId :: !Text+    , _cgChildId  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChildrenGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cgFolderId'+--+-- * 'cgChildId'+childrenGet+    :: Text -- ^ 'cgFolderId'+    -> Text -- ^ 'cgChildId'+    -> ChildrenGet+childrenGet pCgFolderId_ pCgChildId_ =+    ChildrenGet+    { _cgFolderId = pCgFolderId_+    , _cgChildId = pCgChildId_+    }++-- | The ID of the folder.+cgFolderId :: Lens' ChildrenGet Text+cgFolderId+  = lens _cgFolderId (\ s a -> s{_cgFolderId = a})++-- | The ID of the child.+cgChildId :: Lens' ChildrenGet Text+cgChildId+  = lens _cgChildId (\ s a -> s{_cgChildId = a})++instance GoogleRequest ChildrenGet where+        type Rs ChildrenGet = ChildReference+        requestClient ChildrenGet{..}+          = go _cgFolderId _cgChildId (Just AltJSON)+              driveService+          where go+                  = buildClient (Proxy :: Proxy ChildrenGetResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Children/Insert.hs view
@@ -0,0 +1,97 @@+{-# 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.Drive.Children.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Inserts a file into a folder.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.children.insert@.+module Network.Google.Resource.Drive.Children.Insert+    (+    -- * REST Resource+      ChildrenInsertResource++    -- * Creating a Request+    , childrenInsert+    , ChildrenInsert++    -- * Request Lenses+    , ciFolderId+    , ciPayload+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.children.insert@ method which the+-- 'ChildrenInsert' request conforms to.+type ChildrenInsertResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "folderId" Text :>+             "children" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] ChildReference :>+                   Post '[JSON] ChildReference++-- | Inserts a file into a folder.+--+-- /See:/ 'childrenInsert' smart constructor.+data ChildrenInsert = ChildrenInsert+    { _ciFolderId :: !Text+    , _ciPayload  :: !ChildReference+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChildrenInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ciFolderId'+--+-- * 'ciPayload'+childrenInsert+    :: Text -- ^ 'ciFolderId'+    -> ChildReference -- ^ 'ciPayload'+    -> ChildrenInsert+childrenInsert pCiFolderId_ pCiPayload_ =+    ChildrenInsert+    { _ciFolderId = pCiFolderId_+    , _ciPayload = pCiPayload_+    }++-- | The ID of the folder.+ciFolderId :: Lens' ChildrenInsert Text+ciFolderId+  = lens _ciFolderId (\ s a -> s{_ciFolderId = a})++-- | Multipart request metadata.+ciPayload :: Lens' ChildrenInsert ChildReference+ciPayload+  = lens _ciPayload (\ s a -> s{_ciPayload = a})++instance GoogleRequest ChildrenInsert where+        type Rs ChildrenInsert = ChildReference+        requestClient ChildrenInsert{..}+          = go _ciFolderId (Just AltJSON) _ciPayload+              driveService+          where go+                  = buildClient (Proxy :: Proxy ChildrenInsertResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Children/List.hs view
@@ -0,0 +1,136 @@+{-# 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.Drive.Children.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists a folder\'s children.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.children.list@.+module Network.Google.Resource.Drive.Children.List+    (+    -- * REST Resource+      ChildrenListResource++    -- * Creating a Request+    , childrenList+    , ChildrenList++    -- * Request Lenses+    , cOrderBy+    , cFolderId+    , cQ+    , cPageToken+    , cMaxResults+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.children.list@ method which the+-- 'ChildrenList' request conforms to.+type ChildrenListResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "folderId" Text :>+             "children" :>+               QueryParam "orderBy" Text :>+                 QueryParam "q" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Int32) :>+                       QueryParam "alt" AltJSON :> Get '[JSON] ChildList++-- | Lists a folder\'s children.+--+-- /See:/ 'childrenList' smart constructor.+data ChildrenList = ChildrenList+    { _cOrderBy    :: !(Maybe Text)+    , _cFolderId   :: !Text+    , _cQ          :: !(Maybe Text)+    , _cPageToken  :: !(Maybe Text)+    , _cMaxResults :: !(Textual Int32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ChildrenList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cOrderBy'+--+-- * 'cFolderId'+--+-- * 'cQ'+--+-- * 'cPageToken'+--+-- * 'cMaxResults'+childrenList+    :: Text -- ^ 'cFolderId'+    -> ChildrenList+childrenList pCFolderId_ =+    ChildrenList+    { _cOrderBy = Nothing+    , _cFolderId = pCFolderId_+    , _cQ = Nothing+    , _cPageToken = Nothing+    , _cMaxResults = 100+    }++-- | A comma-separated list of sort keys. Valid keys are \'createdDate\',+-- \'folder\', \'lastViewedByMeDate\', \'modifiedByMeDate\',+-- \'modifiedDate\', \'quotaBytesUsed\', \'recency\', \'sharedWithMeDate\',+-- \'starred\', and \'title\'. Each key sorts ascending by default, but may+-- be reversed with the \'desc\' modifier. Example usage:+-- ?orderBy=folder,modifiedDate desc,title. Please note that there is a+-- current limitation for users with approximately one million files in+-- which the requested sort order is ignored.+cOrderBy :: Lens' ChildrenList (Maybe Text)+cOrderBy = lens _cOrderBy (\ s a -> s{_cOrderBy = a})++-- | The ID of the folder.+cFolderId :: Lens' ChildrenList Text+cFolderId+  = lens _cFolderId (\ s a -> s{_cFolderId = a})++-- | Query string for searching children.+cQ :: Lens' ChildrenList (Maybe Text)+cQ = lens _cQ (\ s a -> s{_cQ = a})++-- | Page token for children.+cPageToken :: Lens' ChildrenList (Maybe Text)+cPageToken+  = lens _cPageToken (\ s a -> s{_cPageToken = a})++-- | Maximum number of children to return.+cMaxResults :: Lens' ChildrenList Int32+cMaxResults+  = lens _cMaxResults (\ s a -> s{_cMaxResults = a}) .+      _Coerce++instance GoogleRequest ChildrenList where+        type Rs ChildrenList = ChildList+        requestClient ChildrenList{..}+          = go _cFolderId _cOrderBy _cQ _cPageToken+              (Just _cMaxResults)+              (Just AltJSON)+              driveService+          where go+                  = buildClient (Proxy :: Proxy ChildrenListResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Comments/Delete.hs view
@@ -0,0 +1,95 @@+{-# 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.Drive.Comments.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a comment.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.comments.delete@.+module Network.Google.Resource.Drive.Comments.Delete+    (+    -- * REST Resource+      CommentsDeleteResource++    -- * Creating a Request+    , commentsDelete+    , CommentsDelete++    -- * Request Lenses+    , cdFileId+    , cdCommentId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.comments.delete@ method which the+-- 'CommentsDelete' request conforms to.+type CommentsDeleteResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "comments" :>+               Capture "commentId" Text :>+                 QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes a comment.+--+-- /See:/ 'commentsDelete' smart constructor.+data CommentsDelete = CommentsDelete+    { _cdFileId    :: !Text+    , _cdCommentId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CommentsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdFileId'+--+-- * 'cdCommentId'+commentsDelete+    :: Text -- ^ 'cdFileId'+    -> Text -- ^ 'cdCommentId'+    -> CommentsDelete+commentsDelete pCdFileId_ pCdCommentId_ =+    CommentsDelete+    { _cdFileId = pCdFileId_+    , _cdCommentId = pCdCommentId_+    }++-- | The ID of the file.+cdFileId :: Lens' CommentsDelete Text+cdFileId = lens _cdFileId (\ s a -> s{_cdFileId = a})++-- | The ID of the comment.+cdCommentId :: Lens' CommentsDelete Text+cdCommentId+  = lens _cdCommentId (\ s a -> s{_cdCommentId = a})++instance GoogleRequest CommentsDelete where+        type Rs CommentsDelete = ()+        requestClient CommentsDelete{..}+          = go _cdFileId _cdCommentId (Just AltJSON)+              driveService+          where go+                  = buildClient (Proxy :: Proxy CommentsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Comments/Get.hs view
@@ -0,0 +1,109 @@+{-# 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.Drive.Comments.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a comment by ID.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.comments.get@.+module Network.Google.Resource.Drive.Comments.Get+    (+    -- * REST Resource+      CommentsGetResource++    -- * Creating a Request+    , commentsGet+    , CommentsGet++    -- * Request Lenses+    , cgFileId+    , cgCommentId+    , cgIncludeDeleted+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.comments.get@ method which the+-- 'CommentsGet' request conforms to.+type CommentsGetResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "comments" :>+               Capture "commentId" Text :>+                 QueryParam "includeDeleted" Bool :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Comment++-- | Gets a comment by ID.+--+-- /See:/ 'commentsGet' smart constructor.+data CommentsGet = CommentsGet+    { _cgFileId         :: !Text+    , _cgCommentId      :: !Text+    , _cgIncludeDeleted :: !Bool+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CommentsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cgFileId'+--+-- * 'cgCommentId'+--+-- * 'cgIncludeDeleted'+commentsGet+    :: Text -- ^ 'cgFileId'+    -> Text -- ^ 'cgCommentId'+    -> CommentsGet+commentsGet pCgFileId_ pCgCommentId_ =+    CommentsGet+    { _cgFileId = pCgFileId_+    , _cgCommentId = pCgCommentId_+    , _cgIncludeDeleted = False+    }++-- | The ID of the file.+cgFileId :: Lens' CommentsGet Text+cgFileId = lens _cgFileId (\ s a -> s{_cgFileId = a})++-- | The ID of the comment.+cgCommentId :: Lens' CommentsGet Text+cgCommentId+  = lens _cgCommentId (\ s a -> s{_cgCommentId = a})++-- | If set, this will succeed when retrieving a deleted comment, and will+-- include any deleted replies.+cgIncludeDeleted :: Lens' CommentsGet Bool+cgIncludeDeleted+  = lens _cgIncludeDeleted+      (\ s a -> s{_cgIncludeDeleted = a})++instance GoogleRequest CommentsGet where+        type Rs CommentsGet = Comment+        requestClient CommentsGet{..}+          = go _cgFileId _cgCommentId (Just _cgIncludeDeleted)+              (Just AltJSON)+              driveService+          where go+                  = buildClient (Proxy :: Proxy CommentsGetResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Comments/Insert.hs view
@@ -0,0 +1,96 @@+{-# 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.Drive.Comments.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new comment on the given file.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.comments.insert@.+module Network.Google.Resource.Drive.Comments.Insert+    (+    -- * REST Resource+      CommentsInsertResource++    -- * Creating a Request+    , commentsInsert+    , CommentsInsert++    -- * Request Lenses+    , comPayload+    , comFileId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.comments.insert@ method which the+-- 'CommentsInsert' request conforms to.+type CommentsInsertResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "comments" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] Comment :> Post '[JSON] Comment++-- | Creates a new comment on the given file.+--+-- /See:/ 'commentsInsert' smart constructor.+data CommentsInsert = CommentsInsert+    { _comPayload :: !Comment+    , _comFileId  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CommentsInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'comPayload'+--+-- * 'comFileId'+commentsInsert+    :: Comment -- ^ 'comPayload'+    -> Text -- ^ 'comFileId'+    -> CommentsInsert+commentsInsert pComPayload_ pComFileId_ =+    CommentsInsert+    { _comPayload = pComPayload_+    , _comFileId = pComFileId_+    }++-- | Multipart request metadata.+comPayload :: Lens' CommentsInsert Comment+comPayload+  = lens _comPayload (\ s a -> s{_comPayload = a})++-- | The ID of the file.+comFileId :: Lens' CommentsInsert Text+comFileId+  = lens _comFileId (\ s a -> s{_comFileId = a})++instance GoogleRequest CommentsInsert where+        type Rs CommentsInsert = Comment+        requestClient CommentsInsert{..}+          = go _comFileId (Just AltJSON) _comPayload+              driveService+          where go+                  = buildClient (Proxy :: Proxy CommentsInsertResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Comments/List.hs view
@@ -0,0 +1,140 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Comments.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists a file\'s comments.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.comments.list@.+module Network.Google.Resource.Drive.Comments.List+    (+    -- * REST Resource+      CommentsListResource++    -- * Creating a Request+    , commentsList+    , CommentsList++    -- * Request Lenses+    , cllUpdatedMin+    , cllPageToken+    , cllFileId+    , cllMaxResults+    , cllIncludeDeleted+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.comments.list@ method which the+-- 'CommentsList' request conforms to.+type CommentsListResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "comments" :>+               QueryParam "updatedMin" Text :>+                 QueryParam "pageToken" Text :>+                   QueryParam "maxResults" (Textual Int32) :>+                     QueryParam "includeDeleted" Bool :>+                       QueryParam "alt" AltJSON :> Get '[JSON] CommentList++-- | Lists a file\'s comments.+--+-- /See:/ 'commentsList' smart constructor.+data CommentsList = CommentsList+    { _cllUpdatedMin     :: !(Maybe Text)+    , _cllPageToken      :: !(Maybe Text)+    , _cllFileId         :: !Text+    , _cllMaxResults     :: !(Textual Int32)+    , _cllIncludeDeleted :: !Bool+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CommentsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cllUpdatedMin'+--+-- * 'cllPageToken'+--+-- * 'cllFileId'+--+-- * 'cllMaxResults'+--+-- * 'cllIncludeDeleted'+commentsList+    :: Text -- ^ 'cllFileId'+    -> CommentsList+commentsList pCllFileId_ =+    CommentsList+    { _cllUpdatedMin = Nothing+    , _cllPageToken = Nothing+    , _cllFileId = pCllFileId_+    , _cllMaxResults = 20+    , _cllIncludeDeleted = False+    }++-- | Only discussions that were updated after this timestamp will be+-- returned. Formatted as an RFC 3339 timestamp.+cllUpdatedMin :: Lens' CommentsList (Maybe Text)+cllUpdatedMin+  = lens _cllUpdatedMin+      (\ s a -> s{_cllUpdatedMin = a})++-- | The continuation token, used to page through large result sets. To get+-- the next page of results, set this parameter to the value of+-- \"nextPageToken\" from the previous response.+cllPageToken :: Lens' CommentsList (Maybe Text)+cllPageToken+  = lens _cllPageToken (\ s a -> s{_cllPageToken = a})++-- | The ID of the file.+cllFileId :: Lens' CommentsList Text+cllFileId+  = lens _cllFileId (\ s a -> s{_cllFileId = a})++-- | The maximum number of discussions to include in the response, used for+-- paging.+cllMaxResults :: Lens' CommentsList Int32+cllMaxResults+  = lens _cllMaxResults+      (\ s a -> s{_cllMaxResults = a})+      . _Coerce++-- | If set, all comments and replies, including deleted comments and replies+-- (with content stripped) will be returned.+cllIncludeDeleted :: Lens' CommentsList Bool+cllIncludeDeleted+  = lens _cllIncludeDeleted+      (\ s a -> s{_cllIncludeDeleted = a})++instance GoogleRequest CommentsList where+        type Rs CommentsList = CommentList+        requestClient CommentsList{..}+          = go _cllFileId _cllUpdatedMin _cllPageToken+              (Just _cllMaxResults)+              (Just _cllIncludeDeleted)+              (Just AltJSON)+              driveService+          where go+                  = buildClient (Proxy :: Proxy CommentsListResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Comments/Patch.hs view
@@ -0,0 +1,107 @@+{-# 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.Drive.Comments.Patch+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing comment. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.comments.patch@.+module Network.Google.Resource.Drive.Comments.Patch+    (+    -- * REST Resource+      CommentsPatchResource++    -- * Creating a Request+    , commentsPatch+    , CommentsPatch++    -- * Request Lenses+    , cpPayload+    , cpFileId+    , cpCommentId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.comments.patch@ method which the+-- 'CommentsPatch' request conforms to.+type CommentsPatchResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "comments" :>+               Capture "commentId" Text :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] Comment :> Patch '[JSON] Comment++-- | Updates an existing comment. This method supports patch semantics.+--+-- /See:/ 'commentsPatch' smart constructor.+data CommentsPatch = CommentsPatch+    { _cpPayload   :: !Comment+    , _cpFileId    :: !Text+    , _cpCommentId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CommentsPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpPayload'+--+-- * 'cpFileId'+--+-- * 'cpCommentId'+commentsPatch+    :: Comment -- ^ 'cpPayload'+    -> Text -- ^ 'cpFileId'+    -> Text -- ^ 'cpCommentId'+    -> CommentsPatch+commentsPatch pCpPayload_ pCpFileId_ pCpCommentId_ =+    CommentsPatch+    { _cpPayload = pCpPayload_+    , _cpFileId = pCpFileId_+    , _cpCommentId = pCpCommentId_+    }++-- | Multipart request metadata.+cpPayload :: Lens' CommentsPatch Comment+cpPayload+  = lens _cpPayload (\ s a -> s{_cpPayload = a})++-- | The ID of the file.+cpFileId :: Lens' CommentsPatch Text+cpFileId = lens _cpFileId (\ s a -> s{_cpFileId = a})++-- | The ID of the comment.+cpCommentId :: Lens' CommentsPatch Text+cpCommentId+  = lens _cpCommentId (\ s a -> s{_cpCommentId = a})++instance GoogleRequest CommentsPatch where+        type Rs CommentsPatch = Comment+        requestClient CommentsPatch{..}+          = go _cpFileId _cpCommentId (Just AltJSON) _cpPayload+              driveService+          where go+                  = buildClient (Proxy :: Proxy CommentsPatchResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Comments/Update.hs view
@@ -0,0 +1,107 @@+{-# 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.Drive.Comments.Update+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing comment.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.comments.update@.+module Network.Google.Resource.Drive.Comments.Update+    (+    -- * REST Resource+      CommentsUpdateResource++    -- * Creating a Request+    , commentsUpdate+    , CommentsUpdate++    -- * Request Lenses+    , cuPayload+    , cuFileId+    , cuCommentId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.comments.update@ method which the+-- 'CommentsUpdate' request conforms to.+type CommentsUpdateResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "comments" :>+               Capture "commentId" Text :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] Comment :> Put '[JSON] Comment++-- | Updates an existing comment.+--+-- /See:/ 'commentsUpdate' smart constructor.+data CommentsUpdate = CommentsUpdate+    { _cuPayload   :: !Comment+    , _cuFileId    :: !Text+    , _cuCommentId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CommentsUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cuPayload'+--+-- * 'cuFileId'+--+-- * 'cuCommentId'+commentsUpdate+    :: Comment -- ^ 'cuPayload'+    -> Text -- ^ 'cuFileId'+    -> Text -- ^ 'cuCommentId'+    -> CommentsUpdate+commentsUpdate pCuPayload_ pCuFileId_ pCuCommentId_ =+    CommentsUpdate+    { _cuPayload = pCuPayload_+    , _cuFileId = pCuFileId_+    , _cuCommentId = pCuCommentId_+    }++-- | Multipart request metadata.+cuPayload :: Lens' CommentsUpdate Comment+cuPayload+  = lens _cuPayload (\ s a -> s{_cuPayload = a})++-- | The ID of the file.+cuFileId :: Lens' CommentsUpdate Text+cuFileId = lens _cuFileId (\ s a -> s{_cuFileId = a})++-- | The ID of the comment.+cuCommentId :: Lens' CommentsUpdate Text+cuCommentId+  = lens _cuCommentId (\ s a -> s{_cuCommentId = a})++instance GoogleRequest CommentsUpdate where+        type Rs CommentsUpdate = Comment+        requestClient CommentsUpdate{..}+          = go _cuFileId _cuCommentId (Just AltJSON) _cuPayload+              driveService+          where go+                  = buildClient (Proxy :: Proxy CommentsUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Files/Copy.hs view
@@ -0,0 +1,183 @@+{-# 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.Drive.Files.Copy+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a copy of the specified file.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.files.copy@.+module Network.Google.Resource.Drive.Files.Copy+    (+    -- * REST Resource+      FilesCopyResource++    -- * Creating a Request+    , filesCopy+    , FilesCopy++    -- * Request Lenses+    , fcPinned+    , fcVisibility+    , fcTimedTextLanguage+    , fcPayload+    , fcTimedTextTrackName+    , fcOCRLanguage+    , fcConvert+    , fcFileId+    , fcOCR+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.files.copy@ method which the+-- 'FilesCopy' request conforms to.+type FilesCopyResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "copy" :>+               QueryParam "pinned" Bool :>+                 QueryParam "visibility" FilesCopyVisibility :>+                   QueryParam "timedTextLanguage" Text :>+                     QueryParam "timedTextTrackName" Text :>+                       QueryParam "ocrLanguage" Text :>+                         QueryParam "convert" Bool :>+                           QueryParam "ocr" Bool :>+                             QueryParam "alt" AltJSON :>+                               ReqBody '[JSON] File :> Post '[JSON] File++-- | Creates a copy of the specified file.+--+-- /See:/ 'filesCopy' smart constructor.+data FilesCopy = FilesCopy+    { _fcPinned             :: !Bool+    , _fcVisibility         :: !FilesCopyVisibility+    , _fcTimedTextLanguage  :: !(Maybe Text)+    , _fcPayload            :: !File+    , _fcTimedTextTrackName :: !(Maybe Text)+    , _fcOCRLanguage        :: !(Maybe Text)+    , _fcConvert            :: !Bool+    , _fcFileId             :: !Text+    , _fcOCR                :: !Bool+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FilesCopy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fcPinned'+--+-- * 'fcVisibility'+--+-- * 'fcTimedTextLanguage'+--+-- * 'fcPayload'+--+-- * 'fcTimedTextTrackName'+--+-- * 'fcOCRLanguage'+--+-- * 'fcConvert'+--+-- * 'fcFileId'+--+-- * 'fcOCR'+filesCopy+    :: File -- ^ 'fcPayload'+    -> Text -- ^ 'fcFileId'+    -> FilesCopy+filesCopy pFcPayload_ pFcFileId_ =+    FilesCopy+    { _fcPinned = False+    , _fcVisibility = FCVDefault+    , _fcTimedTextLanguage = Nothing+    , _fcPayload = pFcPayload_+    , _fcTimedTextTrackName = Nothing+    , _fcOCRLanguage = Nothing+    , _fcConvert = False+    , _fcFileId = pFcFileId_+    , _fcOCR = False+    }++-- | Whether to pin the head revision of the new copy. A file can have a+-- maximum of 200 pinned revisions.+fcPinned :: Lens' FilesCopy Bool+fcPinned = lens _fcPinned (\ s a -> s{_fcPinned = a})++-- | The visibility of the new file. This parameter is only relevant when the+-- source is not a native Google Doc and convert=false.+fcVisibility :: Lens' FilesCopy FilesCopyVisibility+fcVisibility+  = lens _fcVisibility (\ s a -> s{_fcVisibility = a})++-- | The language of the timed text.+fcTimedTextLanguage :: Lens' FilesCopy (Maybe Text)+fcTimedTextLanguage+  = lens _fcTimedTextLanguage+      (\ s a -> s{_fcTimedTextLanguage = a})++-- | Multipart request metadata.+fcPayload :: Lens' FilesCopy File+fcPayload+  = lens _fcPayload (\ s a -> s{_fcPayload = a})++-- | The timed text track name.+fcTimedTextTrackName :: Lens' FilesCopy (Maybe Text)+fcTimedTextTrackName+  = lens _fcTimedTextTrackName+      (\ s a -> s{_fcTimedTextTrackName = a})++-- | If ocr is true, hints at the language to use. Valid values are BCP 47+-- codes.+fcOCRLanguage :: Lens' FilesCopy (Maybe Text)+fcOCRLanguage+  = lens _fcOCRLanguage+      (\ s a -> s{_fcOCRLanguage = a})++-- | Whether to convert this file to the corresponding Google Docs format.+fcConvert :: Lens' FilesCopy Bool+fcConvert+  = lens _fcConvert (\ s a -> s{_fcConvert = a})++-- | The ID of the file to copy.+fcFileId :: Lens' FilesCopy Text+fcFileId = lens _fcFileId (\ s a -> s{_fcFileId = a})++-- | Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads.+fcOCR :: Lens' FilesCopy Bool+fcOCR = lens _fcOCR (\ s a -> s{_fcOCR = a})++instance GoogleRequest FilesCopy where+        type Rs FilesCopy = File+        requestClient FilesCopy{..}+          = go _fcFileId (Just _fcPinned) (Just _fcVisibility)+              _fcTimedTextLanguage+              _fcTimedTextTrackName+              _fcOCRLanguage+              (Just _fcConvert)+              (Just _fcOCR)+              (Just AltJSON)+              _fcPayload+              driveService+          where go+                  = buildClient (Proxy :: Proxy FilesCopyResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Files/Delete.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Files.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Permanently deletes a file by ID. Skips the trash. The currently+-- authenticated user must own the file.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.files.delete@.+module Network.Google.Resource.Drive.Files.Delete+    (+    -- * REST Resource+      FilesDeleteResource++    -- * Creating a Request+    , filesDelete+    , FilesDelete++    -- * Request Lenses+    , fdFileId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.files.delete@ method which the+-- 'FilesDelete' request conforms to.+type FilesDeleteResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Permanently deletes a file by ID. Skips the trash. The currently+-- authenticated user must own the file.+--+-- /See:/ 'filesDelete' smart constructor.+newtype FilesDelete = FilesDelete+    { _fdFileId :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FilesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fdFileId'+filesDelete+    :: Text -- ^ 'fdFileId'+    -> FilesDelete+filesDelete pFdFileId_ =+    FilesDelete+    { _fdFileId = pFdFileId_+    }++-- | The ID of the file to delete.+fdFileId :: Lens' FilesDelete Text+fdFileId = lens _fdFileId (\ s a -> s{_fdFileId = a})++instance GoogleRequest FilesDelete where+        type Rs FilesDelete = ()+        requestClient FilesDelete{..}+          = go _fdFileId (Just AltJSON) driveService+          where go+                  = buildClient (Proxy :: Proxy FilesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Files/EmptyTrash.hs view
@@ -0,0 +1,69 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Files.EmptyTrash+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Permanently deletes all of the user\'s trashed files.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.files.emptyTrash@.+module Network.Google.Resource.Drive.Files.EmptyTrash+    (+    -- * REST Resource+      FilesEmptyTrashResource++    -- * Creating a Request+    , filesEmptyTrash+    , FilesEmptyTrash++    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.files.emptyTrash@ method which the+-- 'FilesEmptyTrash' request conforms to.+type FilesEmptyTrashResource =+     "drive" :>+       "v2" :>+         "files" :>+           "trash" :>+             QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Permanently deletes all of the user\'s trashed files.+--+-- /See:/ 'filesEmptyTrash' smart constructor.+data FilesEmptyTrash =+    FilesEmptyTrash+    deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FilesEmptyTrash' with the minimum fields required to make a request.+--+filesEmptyTrash+    :: FilesEmptyTrash+filesEmptyTrash = FilesEmptyTrash++instance GoogleRequest FilesEmptyTrash where+        type Rs FilesEmptyTrash = ()+        requestClient FilesEmptyTrash{}+          = go (Just AltJSON) driveService+          where go+                  = buildClient+                      (Proxy :: Proxy FilesEmptyTrashResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Files/GenerateIds.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Files.GenerateIds+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Generates a set of file IDs which can be provided in insert requests.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.files.generateIds@.+module Network.Google.Resource.Drive.Files.GenerateIds+    (+    -- * REST Resource+      FilesGenerateIdsResource++    -- * Creating a Request+    , filesGenerateIds+    , FilesGenerateIds++    -- * Request Lenses+    , fgiSpace+    , fgiMaxResults+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.files.generateIds@ method which the+-- 'FilesGenerateIds' request conforms to.+type FilesGenerateIdsResource =+     "drive" :>+       "v2" :>+         "files" :>+           "generateIds" :>+             QueryParam "space" Text :>+               QueryParam "maxResults" (Textual Int32) :>+                 QueryParam "alt" AltJSON :> Get '[JSON] GeneratedIds++-- | Generates a set of file IDs which can be provided in insert requests.+--+-- /See:/ 'filesGenerateIds' smart constructor.+data FilesGenerateIds = FilesGenerateIds+    { _fgiSpace      :: !Text+    , _fgiMaxResults :: !(Textual Int32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FilesGenerateIds' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fgiSpace'+--+-- * 'fgiMaxResults'+filesGenerateIds+    :: FilesGenerateIds+filesGenerateIds =+    FilesGenerateIds+    { _fgiSpace = "drive"+    , _fgiMaxResults = 10+    }++-- | The space in which the IDs can be used to create new files. Supported+-- values are \'drive\' and \'appDataFolder\'.+fgiSpace :: Lens' FilesGenerateIds Text+fgiSpace = lens _fgiSpace (\ s a -> s{_fgiSpace = a})++-- | Maximum number of IDs to return.+fgiMaxResults :: Lens' FilesGenerateIds Int32+fgiMaxResults+  = lens _fgiMaxResults+      (\ s a -> s{_fgiMaxResults = a})+      . _Coerce++instance GoogleRequest FilesGenerateIds where+        type Rs FilesGenerateIds = GeneratedIds+        requestClient FilesGenerateIds{..}+          = go (Just _fgiSpace) (Just _fgiMaxResults)+              (Just AltJSON)+              driveService+          where go+                  = buildClient+                      (Proxy :: Proxy FilesGenerateIdsResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Files/Get.hs view
@@ -0,0 +1,159 @@+{-# 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.Drive.Files.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a file\'s metadata by ID.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.files.get@.+module Network.Google.Resource.Drive.Files.Get+    (+    -- * REST Resource+      FilesGetResource++    -- * Creating a Request+    , filesGet+    , FilesGet++    -- * Request Lenses+    , fgUpdateViewedDate+    , fgProjection+    , fgAcknowledgeAbuse+    , fgFileId+    , fgRevisionId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.files.get@ method which the+-- 'FilesGet' request conforms to.+type FilesGetResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             QueryParam "updateViewedDate" Bool :>+               QueryParam "projection" FilesGetProjection :>+                 QueryParam "acknowledgeAbuse" Bool :>+                   QueryParam "revisionId" Text :>+                     QueryParam "alt" AltJSON :> Get '[JSON] File+       :<|>+       "drive" :>+         "v2" :>+           "files" :>+             Capture "fileId" Text :>+               QueryParam "updateViewedDate" Bool :>+                 QueryParam "projection" FilesGetProjection :>+                   QueryParam "acknowledgeAbuse" Bool :>+                     QueryParam "revisionId" Text :>+                       QueryParam "alt" AltMedia :>+                         Get '[OctetStream] Stream++-- | Gets a file\'s metadata by ID.+--+-- /See:/ 'filesGet' smart constructor.+data FilesGet = FilesGet+    { _fgUpdateViewedDate :: !Bool+    , _fgProjection       :: !(Maybe FilesGetProjection)+    , _fgAcknowledgeAbuse :: !Bool+    , _fgFileId           :: !Text+    , _fgRevisionId       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FilesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fgUpdateViewedDate'+--+-- * 'fgProjection'+--+-- * 'fgAcknowledgeAbuse'+--+-- * 'fgFileId'+--+-- * 'fgRevisionId'+filesGet+    :: Text -- ^ 'fgFileId'+    -> FilesGet+filesGet pFgFileId_ =+    FilesGet+    { _fgUpdateViewedDate = False+    , _fgProjection = Nothing+    , _fgAcknowledgeAbuse = False+    , _fgFileId = pFgFileId_+    , _fgRevisionId = Nothing+    }++-- | Deprecated: Use files.update with modifiedDateBehavior=noChange,+-- updateViewedDate=true and an empty request body.+fgUpdateViewedDate :: Lens' FilesGet Bool+fgUpdateViewedDate+  = lens _fgUpdateViewedDate+      (\ s a -> s{_fgUpdateViewedDate = a})++-- | This parameter is deprecated and has no function.+fgProjection :: Lens' FilesGet (Maybe FilesGetProjection)+fgProjection+  = lens _fgProjection (\ s a -> s{_fgProjection = a})++-- | Whether the user is acknowledging the risk of downloading known malware+-- or other abusive files.+fgAcknowledgeAbuse :: Lens' FilesGet Bool+fgAcknowledgeAbuse+  = lens _fgAcknowledgeAbuse+      (\ s a -> s{_fgAcknowledgeAbuse = a})++-- | The ID for the file in question.+fgFileId :: Lens' FilesGet Text+fgFileId = lens _fgFileId (\ s a -> s{_fgFileId = a})++-- | Specifies the Revision ID that should be downloaded. Ignored unless+-- alt=media is specified.+fgRevisionId :: Lens' FilesGet (Maybe Text)+fgRevisionId+  = lens _fgRevisionId (\ s a -> s{_fgRevisionId = a})++instance GoogleRequest FilesGet where+        type Rs FilesGet = File+        requestClient FilesGet{..}+          = go _fgFileId (Just _fgUpdateViewedDate)+              _fgProjection+              (Just _fgAcknowledgeAbuse)+              _fgRevisionId+              (Just AltJSON)+              driveService+          where go :<|> _+                  = buildClient (Proxy :: Proxy FilesGetResource)+                      mempty++instance GoogleRequest (MediaDownload FilesGet) where+        type Rs (MediaDownload FilesGet) = Stream+        requestClient (MediaDownload FilesGet{..})+          = go _fgFileId (Just _fgUpdateViewedDate)+              _fgProjection+              (Just _fgAcknowledgeAbuse)+              _fgRevisionId+              (Just AltMedia)+              driveService+          where _ :<|> go+                  = buildClient (Proxy :: Proxy FilesGetResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Files/Insert.hs view
@@ -0,0 +1,221 @@+{-# 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.Drive.Files.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Insert a new file.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.files.insert@.+module Network.Google.Resource.Drive.Files.Insert+    (+    -- * REST Resource+      FilesInsertResource++    -- * Creating a Request+    , filesInsert+    , FilesInsert++    -- * Request Lenses+    , fiPinned+    , fiVisibility+    , fiTimedTextLanguage+    , fiPayload+    , fiUseContentAsIndexableText+    , fiTimedTextTrackName+    , fiOCRLanguage+    , fiConvert+    , fiOCR+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.files.insert@ method which the+-- 'FilesInsert' request conforms to.+type FilesInsertResource =+     "drive" :>+       "v2" :>+         "files" :>+           QueryParam "pinned" Bool :>+             QueryParam "visibility" FilesInsertVisibility :>+               QueryParam "timedTextLanguage" Text :>+                 QueryParam "useContentAsIndexableText" Bool :>+                   QueryParam "timedTextTrackName" Text :>+                     QueryParam "ocrLanguage" Text :>+                       QueryParam "convert" Bool :>+                         QueryParam "ocr" Bool :>+                           QueryParam "alt" AltJSON :>+                             ReqBody '[JSON] File :> Post '[JSON] File+       :<|>+       "upload" :>+         "drive" :>+           "v2" :>+             "files" :>+               QueryParam "pinned" Bool :>+                 QueryParam "visibility" FilesInsertVisibility :>+                   QueryParam "timedTextLanguage" Text :>+                     QueryParam "useContentAsIndexableText" Bool :>+                       QueryParam "timedTextTrackName" Text :>+                         QueryParam "ocrLanguage" Text :>+                           QueryParam "convert" Bool :>+                             QueryParam "ocr" Bool :>+                               QueryParam "alt" AltJSON :>+                                 QueryParam "uploadType" AltMedia :>+                                   MultipartRelated '[JSON] File RequestBody :>+                                     Post '[JSON] File++-- | Insert a new file.+--+-- /See:/ 'filesInsert' smart constructor.+data FilesInsert = FilesInsert+    { _fiPinned                    :: !Bool+    , _fiVisibility                :: !FilesInsertVisibility+    , _fiTimedTextLanguage         :: !(Maybe Text)+    , _fiPayload                   :: !File+    , _fiUseContentAsIndexableText :: !Bool+    , _fiTimedTextTrackName        :: !(Maybe Text)+    , _fiOCRLanguage               :: !(Maybe Text)+    , _fiConvert                   :: !Bool+    , _fiOCR                       :: !Bool+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FilesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fiPinned'+--+-- * 'fiVisibility'+--+-- * 'fiTimedTextLanguage'+--+-- * 'fiPayload'+--+-- * 'fiUseContentAsIndexableText'+--+-- * 'fiTimedTextTrackName'+--+-- * 'fiOCRLanguage'+--+-- * 'fiConvert'+--+-- * 'fiOCR'+filesInsert+    :: File -- ^ 'fiPayload'+    -> FilesInsert+filesInsert pFiPayload_ =+    FilesInsert+    { _fiPinned = False+    , _fiVisibility = Default+    , _fiTimedTextLanguage = Nothing+    , _fiPayload = pFiPayload_+    , _fiUseContentAsIndexableText = False+    , _fiTimedTextTrackName = Nothing+    , _fiOCRLanguage = Nothing+    , _fiConvert = False+    , _fiOCR = False+    }++-- | Whether to pin the head revision of the uploaded file. A file can have a+-- maximum of 200 pinned revisions.+fiPinned :: Lens' FilesInsert Bool+fiPinned = lens _fiPinned (\ s a -> s{_fiPinned = a})++-- | The visibility of the new file. This parameter is only relevant when+-- convert=false.+fiVisibility :: Lens' FilesInsert FilesInsertVisibility+fiVisibility+  = lens _fiVisibility (\ s a -> s{_fiVisibility = a})++-- | The language of the timed text.+fiTimedTextLanguage :: Lens' FilesInsert (Maybe Text)+fiTimedTextLanguage+  = lens _fiTimedTextLanguage+      (\ s a -> s{_fiTimedTextLanguage = a})++-- | Multipart request metadata.+fiPayload :: Lens' FilesInsert File+fiPayload+  = lens _fiPayload (\ s a -> s{_fiPayload = a})++-- | Whether to use the content as indexable text.+fiUseContentAsIndexableText :: Lens' FilesInsert Bool+fiUseContentAsIndexableText+  = lens _fiUseContentAsIndexableText+      (\ s a -> s{_fiUseContentAsIndexableText = a})++-- | The timed text track name.+fiTimedTextTrackName :: Lens' FilesInsert (Maybe Text)+fiTimedTextTrackName+  = lens _fiTimedTextTrackName+      (\ s a -> s{_fiTimedTextTrackName = a})++-- | If ocr is true, hints at the language to use. Valid values are BCP 47+-- codes.+fiOCRLanguage :: Lens' FilesInsert (Maybe Text)+fiOCRLanguage+  = lens _fiOCRLanguage+      (\ s a -> s{_fiOCRLanguage = a})++-- | Whether to convert this file to the corresponding Google Docs format.+fiConvert :: Lens' FilesInsert Bool+fiConvert+  = lens _fiConvert (\ s a -> s{_fiConvert = a})++-- | Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads.+fiOCR :: Lens' FilesInsert Bool+fiOCR = lens _fiOCR (\ s a -> s{_fiOCR = a})++instance GoogleRequest FilesInsert where+        type Rs FilesInsert = File+        requestClient FilesInsert{..}+          = go (Just _fiPinned) (Just _fiVisibility)+              _fiTimedTextLanguage+              (Just _fiUseContentAsIndexableText)+              _fiTimedTextTrackName+              _fiOCRLanguage+              (Just _fiConvert)+              (Just _fiOCR)+              (Just AltJSON)+              _fiPayload+              driveService+          where go :<|> _+                  = buildClient (Proxy :: Proxy FilesInsertResource)+                      mempty++instance GoogleRequest (MediaUpload FilesInsert)+         where+        type Rs (MediaUpload FilesInsert) = File+        requestClient (MediaUpload FilesInsert{..} body)+          = go (Just _fiPinned) (Just _fiVisibility)+              _fiTimedTextLanguage+              (Just _fiUseContentAsIndexableText)+              _fiTimedTextTrackName+              _fiOCRLanguage+              (Just _fiConvert)+              (Just _fiOCR)+              (Just AltJSON)+              (Just AltMedia)+              _fiPayload+              body+              driveService+          where _ :<|> go+                  = buildClient (Proxy :: Proxy FilesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Files/List.hs view
@@ -0,0 +1,158 @@+{-# 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.Drive.Files.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the user\'s files.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.files.list@.+module Network.Google.Resource.Drive.Files.List+    (+    -- * REST Resource+      FilesListResource++    -- * Creating a Request+    , filesList+    , FilesList++    -- * Request Lenses+    , flOrderBy+    , flQ+    , flSpaces+    , flProjection+    , flCorpus+    , flPageToken+    , flMaxResults+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.files.list@ method which the+-- 'FilesList' request conforms to.+type FilesListResource =+     "drive" :>+       "v2" :>+         "files" :>+           QueryParam "orderBy" Text :>+             QueryParam "q" Text :>+               QueryParam "spaces" Text :>+                 QueryParam "projection" FilesListProjection :>+                   QueryParam "corpus" FilesListCorpus :>+                     QueryParam "pageToken" Text :>+                       QueryParam "maxResults" (Textual Int32) :>+                         QueryParam "alt" AltJSON :> Get '[JSON] FileList++-- | Lists the user\'s files.+--+-- /See:/ 'filesList' smart constructor.+data FilesList = FilesList+    { _flOrderBy    :: !(Maybe Text)+    , _flQ          :: !(Maybe Text)+    , _flSpaces     :: !(Maybe Text)+    , _flProjection :: !(Maybe FilesListProjection)+    , _flCorpus     :: !(Maybe FilesListCorpus)+    , _flPageToken  :: !(Maybe Text)+    , _flMaxResults :: !(Textual Int32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FilesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'flOrderBy'+--+-- * 'flQ'+--+-- * 'flSpaces'+--+-- * 'flProjection'+--+-- * 'flCorpus'+--+-- * 'flPageToken'+--+-- * 'flMaxResults'+filesList+    :: FilesList+filesList =+    FilesList+    { _flOrderBy = Nothing+    , _flQ = Nothing+    , _flSpaces = Nothing+    , _flProjection = Nothing+    , _flCorpus = Nothing+    , _flPageToken = Nothing+    , _flMaxResults = 100+    }++-- | A comma-separated list of sort keys. Valid keys are \'createdDate\',+-- \'folder\', \'lastViewedByMeDate\', \'modifiedByMeDate\',+-- \'modifiedDate\', \'quotaBytesUsed\', \'recency\', \'sharedWithMeDate\',+-- \'starred\', and \'title\'. Each key sorts ascending by default, but may+-- be reversed with the \'desc\' modifier. Example usage:+-- ?orderBy=folder,modifiedDate desc,title. Please note that there is a+-- current limitation for users with approximately one million files in+-- which the requested sort order is ignored.+flOrderBy :: Lens' FilesList (Maybe Text)+flOrderBy+  = lens _flOrderBy (\ s a -> s{_flOrderBy = a})++-- | Query string for searching files.+flQ :: Lens' FilesList (Maybe Text)+flQ = lens _flQ (\ s a -> s{_flQ = a})++-- | A comma-separated list of spaces to query. Supported values are+-- \'drive\', \'appDataFolder\' and \'photos\'.+flSpaces :: Lens' FilesList (Maybe Text)+flSpaces = lens _flSpaces (\ s a -> s{_flSpaces = a})++-- | This parameter is deprecated and has no function.+flProjection :: Lens' FilesList (Maybe FilesListProjection)+flProjection+  = lens _flProjection (\ s a -> s{_flProjection = a})++-- | The body of items (files\/documents) to which the query applies.+flCorpus :: Lens' FilesList (Maybe FilesListCorpus)+flCorpus = lens _flCorpus (\ s a -> s{_flCorpus = a})++-- | Page token for files.+flPageToken :: Lens' FilesList (Maybe Text)+flPageToken+  = lens _flPageToken (\ s a -> s{_flPageToken = a})++-- | Maximum number of files to return.+flMaxResults :: Lens' FilesList Int32+flMaxResults+  = lens _flMaxResults (\ s a -> s{_flMaxResults = a})+      . _Coerce++instance GoogleRequest FilesList where+        type Rs FilesList = FileList+        requestClient FilesList{..}+          = go _flOrderBy _flQ _flSpaces _flProjection+              _flCorpus+              _flPageToken+              (Just _flMaxResults)+              (Just AltJSON)+              driveService+          where go+                  = buildClient (Proxy :: Proxy FilesListResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Files/Patch.hs view
@@ -0,0 +1,271 @@+{-# 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.Drive.Files.Patch+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates file metadata and\/or content. This method supports patch+-- semantics.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.files.patch@.+module Network.Google.Resource.Drive.Files.Patch+    (+    -- * REST Resource+      FilesPatchResource++    -- * Creating a Request+    , filesPatch+    , FilesPatch++    -- * Request Lenses+    , fpNewRevision+    , fpPinned+    , fpTimedTextLanguage+    , fpPayload+    , fpUpdateViewedDate+    , fpRemoveParents+    , fpModifiedDateBehavior+    , fpUseContentAsIndexableText+    , fpTimedTextTrackName+    , fpOCRLanguage+    , fpConvert+    , fpSetModifiedDate+    , fpFileId+    , fpAddParents+    , fpOCR+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.files.patch@ method which the+-- 'FilesPatch' request conforms to.+type FilesPatchResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             QueryParam "newRevision" Bool :>+               QueryParam "pinned" Bool :>+                 QueryParam "timedTextLanguage" Text :>+                   QueryParam "updateViewedDate" Bool :>+                     QueryParam "removeParents" Text :>+                       QueryParam "modifiedDateBehavior"+                         FilesPatchModifiedDateBehavior+                         :>+                         QueryParam "useContentAsIndexableText" Bool :>+                           QueryParam "timedTextTrackName" Text :>+                             QueryParam "ocrLanguage" Text :>+                               QueryParam "convert" Bool :>+                                 QueryParam "setModifiedDate" Bool :>+                                   QueryParam "addParents" Text :>+                                     QueryParam "ocr" Bool :>+                                       QueryParam "alt" AltJSON :>+                                         ReqBody '[JSON] File :>+                                           Patch '[JSON] File++-- | Updates file metadata and\/or content. This method supports patch+-- semantics.+--+-- /See:/ 'filesPatch' smart constructor.+data FilesPatch = FilesPatch+    { _fpNewRevision               :: !Bool+    , _fpPinned                    :: !Bool+    , _fpTimedTextLanguage         :: !(Maybe Text)+    , _fpPayload                   :: !File+    , _fpUpdateViewedDate          :: !Bool+    , _fpRemoveParents             :: !(Maybe Text)+    , _fpModifiedDateBehavior      :: !(Maybe FilesPatchModifiedDateBehavior)+    , _fpUseContentAsIndexableText :: !Bool+    , _fpTimedTextTrackName        :: !(Maybe Text)+    , _fpOCRLanguage               :: !(Maybe Text)+    , _fpConvert                   :: !Bool+    , _fpSetModifiedDate           :: !Bool+    , _fpFileId                    :: !Text+    , _fpAddParents                :: !(Maybe Text)+    , _fpOCR                       :: !Bool+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FilesPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fpNewRevision'+--+-- * 'fpPinned'+--+-- * 'fpTimedTextLanguage'+--+-- * 'fpPayload'+--+-- * 'fpUpdateViewedDate'+--+-- * 'fpRemoveParents'+--+-- * 'fpModifiedDateBehavior'+--+-- * 'fpUseContentAsIndexableText'+--+-- * 'fpTimedTextTrackName'+--+-- * 'fpOCRLanguage'+--+-- * 'fpConvert'+--+-- * 'fpSetModifiedDate'+--+-- * 'fpFileId'+--+-- * 'fpAddParents'+--+-- * 'fpOCR'+filesPatch+    :: File -- ^ 'fpPayload'+    -> Text -- ^ 'fpFileId'+    -> FilesPatch+filesPatch pFpPayload_ pFpFileId_ =+    FilesPatch+    { _fpNewRevision = True+    , _fpPinned = False+    , _fpTimedTextLanguage = Nothing+    , _fpPayload = pFpPayload_+    , _fpUpdateViewedDate = True+    , _fpRemoveParents = Nothing+    , _fpModifiedDateBehavior = Nothing+    , _fpUseContentAsIndexableText = False+    , _fpTimedTextTrackName = Nothing+    , _fpOCRLanguage = Nothing+    , _fpConvert = False+    , _fpSetModifiedDate = False+    , _fpFileId = pFpFileId_+    , _fpAddParents = Nothing+    , _fpOCR = False+    }++-- | Whether a blob upload should create a new revision. If false, the blob+-- data in the current head revision is replaced. If true or not set, a new+-- blob is created as head revision, and previous unpinned revisions are+-- preserved for a short period of time. Pinned revisions are stored+-- indefinitely, using additional storage quota, up to a maximum of 200+-- revisions. For details on how revisions are retained, see the Drive Help+-- Center.+fpNewRevision :: Lens' FilesPatch Bool+fpNewRevision+  = lens _fpNewRevision+      (\ s a -> s{_fpNewRevision = a})++-- | Whether to pin the new revision. A file can have a maximum of 200 pinned+-- revisions.+fpPinned :: Lens' FilesPatch Bool+fpPinned = lens _fpPinned (\ s a -> s{_fpPinned = a})++-- | The language of the timed text.+fpTimedTextLanguage :: Lens' FilesPatch (Maybe Text)+fpTimedTextLanguage+  = lens _fpTimedTextLanguage+      (\ s a -> s{_fpTimedTextLanguage = a})++-- | Multipart request metadata.+fpPayload :: Lens' FilesPatch File+fpPayload+  = lens _fpPayload (\ s a -> s{_fpPayload = a})++-- | Whether to update the view date after successfully updating the file.+fpUpdateViewedDate :: Lens' FilesPatch Bool+fpUpdateViewedDate+  = lens _fpUpdateViewedDate+      (\ s a -> s{_fpUpdateViewedDate = a})++-- | Comma-separated list of parent IDs to remove.+fpRemoveParents :: Lens' FilesPatch (Maybe Text)+fpRemoveParents+  = lens _fpRemoveParents+      (\ s a -> s{_fpRemoveParents = a})++-- | Determines the behavior in which modifiedDate is updated. This overrides+-- setModifiedDate.+fpModifiedDateBehavior :: Lens' FilesPatch (Maybe FilesPatchModifiedDateBehavior)+fpModifiedDateBehavior+  = lens _fpModifiedDateBehavior+      (\ s a -> s{_fpModifiedDateBehavior = a})++-- | Whether to use the content as indexable text.+fpUseContentAsIndexableText :: Lens' FilesPatch Bool+fpUseContentAsIndexableText+  = lens _fpUseContentAsIndexableText+      (\ s a -> s{_fpUseContentAsIndexableText = a})++-- | The timed text track name.+fpTimedTextTrackName :: Lens' FilesPatch (Maybe Text)+fpTimedTextTrackName+  = lens _fpTimedTextTrackName+      (\ s a -> s{_fpTimedTextTrackName = a})++-- | If ocr is true, hints at the language to use. Valid values are BCP 47+-- codes.+fpOCRLanguage :: Lens' FilesPatch (Maybe Text)+fpOCRLanguage+  = lens _fpOCRLanguage+      (\ s a -> s{_fpOCRLanguage = a})++-- | This parameter is deprecated and has no function.+fpConvert :: Lens' FilesPatch Bool+fpConvert+  = lens _fpConvert (\ s a -> s{_fpConvert = a})++-- | Whether to set the modified date with the supplied modified date.+fpSetModifiedDate :: Lens' FilesPatch Bool+fpSetModifiedDate+  = lens _fpSetModifiedDate+      (\ s a -> s{_fpSetModifiedDate = a})++-- | The ID of the file to update.+fpFileId :: Lens' FilesPatch Text+fpFileId = lens _fpFileId (\ s a -> s{_fpFileId = a})++-- | Comma-separated list of parent IDs to add.+fpAddParents :: Lens' FilesPatch (Maybe Text)+fpAddParents+  = lens _fpAddParents (\ s a -> s{_fpAddParents = a})++-- | Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads.+fpOCR :: Lens' FilesPatch Bool+fpOCR = lens _fpOCR (\ s a -> s{_fpOCR = a})++instance GoogleRequest FilesPatch where+        type Rs FilesPatch = File+        requestClient FilesPatch{..}+          = go _fpFileId (Just _fpNewRevision) (Just _fpPinned)+              _fpTimedTextLanguage+              (Just _fpUpdateViewedDate)+              _fpRemoveParents+              _fpModifiedDateBehavior+              (Just _fpUseContentAsIndexableText)+              _fpTimedTextTrackName+              _fpOCRLanguage+              (Just _fpConvert)+              (Just _fpSetModifiedDate)+              _fpAddParents+              (Just _fpOCR)+              (Just AltJSON)+              _fpPayload+              driveService+          where go+                  = buildClient (Proxy :: Proxy FilesPatchResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Files/Touch.hs view
@@ -0,0 +1,82 @@+{-# 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.Drive.Files.Touch+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Set the file\'s updated time to the current server time.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.files.touch@.+module Network.Google.Resource.Drive.Files.Touch+    (+    -- * REST Resource+      FilesTouchResource++    -- * Creating a Request+    , filesTouch+    , FilesTouch++    -- * Request Lenses+    , ftFileId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.files.touch@ method which the+-- 'FilesTouch' request conforms to.+type FilesTouchResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "touch" :>+               QueryParam "alt" AltJSON :> Post '[JSON] File++-- | Set the file\'s updated time to the current server time.+--+-- /See:/ 'filesTouch' smart constructor.+newtype FilesTouch = FilesTouch+    { _ftFileId :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FilesTouch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ftFileId'+filesTouch+    :: Text -- ^ 'ftFileId'+    -> FilesTouch+filesTouch pFtFileId_ =+    FilesTouch+    { _ftFileId = pFtFileId_+    }++-- | The ID of the file to update.+ftFileId :: Lens' FilesTouch Text+ftFileId = lens _ftFileId (\ s a -> s{_ftFileId = a})++instance GoogleRequest FilesTouch where+        type Rs FilesTouch = File+        requestClient FilesTouch{..}+          = go _ftFileId (Just AltJSON) driveService+          where go+                  = buildClient (Proxy :: Proxy FilesTouchResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Files/Trash.hs view
@@ -0,0 +1,85 @@+{-# 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.Drive.Files.Trash+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Moves a file to the trash. The currently authenticated user must own the+-- file.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.files.trash@.+module Network.Google.Resource.Drive.Files.Trash+    (+    -- * REST Resource+      FilesTrashResource++    -- * Creating a Request+    , filesTrash+    , FilesTrash++    -- * Request Lenses+    , filFileId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.files.trash@ method which the+-- 'FilesTrash' request conforms to.+type FilesTrashResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "trash" :>+               QueryParam "alt" AltJSON :> Post '[JSON] File++-- | Moves a file to the trash. The currently authenticated user must own the+-- file.+--+-- /See:/ 'filesTrash' smart constructor.+newtype FilesTrash = FilesTrash+    { _filFileId :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FilesTrash' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'filFileId'+filesTrash+    :: Text -- ^ 'filFileId'+    -> FilesTrash+filesTrash pFilFileId_ =+    FilesTrash+    { _filFileId = pFilFileId_+    }++-- | The ID of the file to trash.+filFileId :: Lens' FilesTrash Text+filFileId+  = lens _filFileId (\ s a -> s{_filFileId = a})++instance GoogleRequest FilesTrash where+        type Rs FilesTrash = File+        requestClient FilesTrash{..}+          = go _filFileId (Just AltJSON) driveService+          where go+                  = buildClient (Proxy :: Proxy FilesTrashResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Files/Untrash.hs view
@@ -0,0 +1,82 @@+{-# 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.Drive.Files.Untrash+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Restores a file from the trash.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.files.untrash@.+module Network.Google.Resource.Drive.Files.Untrash+    (+    -- * REST Resource+      FilesUntrashResource++    -- * Creating a Request+    , filesUntrash+    , FilesUntrash++    -- * Request Lenses+    , fFileId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.files.untrash@ method which the+-- 'FilesUntrash' request conforms to.+type FilesUntrashResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "untrash" :>+               QueryParam "alt" AltJSON :> Post '[JSON] File++-- | Restores a file from the trash.+--+-- /See:/ 'filesUntrash' smart constructor.+newtype FilesUntrash = FilesUntrash+    { _fFileId :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FilesUntrash' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fFileId'+filesUntrash+    :: Text -- ^ 'fFileId'+    -> FilesUntrash+filesUntrash pFFileId_ =+    FilesUntrash+    { _fFileId = pFFileId_+    }++-- | The ID of the file to untrash.+fFileId :: Lens' FilesUntrash Text+fFileId = lens _fFileId (\ s a -> s{_fFileId = a})++instance GoogleRequest FilesUntrash where+        type Rs FilesUntrash = File+        requestClient FilesUntrash{..}+          = go _fFileId (Just AltJSON) driveService+          where go+                  = buildClient (Proxy :: Proxy FilesUntrashResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Files/Update.hs view
@@ -0,0 +1,320 @@+{-# 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.Drive.Files.Update+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates file metadata and\/or content.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.files.update@.+module Network.Google.Resource.Drive.Files.Update+    (+    -- * REST Resource+      FilesUpdateResource++    -- * Creating a Request+    , filesUpdate+    , FilesUpdate++    -- * Request Lenses+    , fuNewRevision+    , fuPinned+    , fuTimedTextLanguage+    , fuPayload+    , fuUpdateViewedDate+    , fuRemoveParents+    , fuModifiedDateBehavior+    , fuUseContentAsIndexableText+    , fuTimedTextTrackName+    , fuOCRLanguage+    , fuConvert+    , fuSetModifiedDate+    , fuFileId+    , fuAddParents+    , fuOCR+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.files.update@ method which the+-- 'FilesUpdate' request conforms to.+type FilesUpdateResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             QueryParam "newRevision" Bool :>+               QueryParam "pinned" Bool :>+                 QueryParam "timedTextLanguage" Text :>+                   QueryParam "updateViewedDate" Bool :>+                     QueryParam "removeParents" Text :>+                       QueryParam "modifiedDateBehavior"+                         FilesUpdateModifiedDateBehavior+                         :>+                         QueryParam "useContentAsIndexableText" Bool :>+                           QueryParam "timedTextTrackName" Text :>+                             QueryParam "ocrLanguage" Text :>+                               QueryParam "convert" Bool :>+                                 QueryParam "setModifiedDate" Bool :>+                                   QueryParam "addParents" Text :>+                                     QueryParam "ocr" Bool :>+                                       QueryParam "alt" AltJSON :>+                                         ReqBody '[JSON] File :>+                                           Put '[JSON] File+       :<|>+       "upload" :>+         "drive" :>+           "v2" :>+             "files" :>+               Capture "fileId" Text :>+                 QueryParam "newRevision" Bool :>+                   QueryParam "pinned" Bool :>+                     QueryParam "timedTextLanguage" Text :>+                       QueryParam "updateViewedDate" Bool :>+                         QueryParam "removeParents" Text :>+                           QueryParam "modifiedDateBehavior"+                             FilesUpdateModifiedDateBehavior+                             :>+                             QueryParam "useContentAsIndexableText" Bool :>+                               QueryParam "timedTextTrackName" Text :>+                                 QueryParam "ocrLanguage" Text :>+                                   QueryParam "convert" Bool :>+                                     QueryParam "setModifiedDate" Bool :>+                                       QueryParam "addParents" Text :>+                                         QueryParam "ocr" Bool :>+                                           QueryParam "alt" AltJSON :>+                                             QueryParam "uploadType" AltMedia :>+                                               MultipartRelated '[JSON] File+                                                 RequestBody+                                                 :> Put '[JSON] File++-- | Updates file metadata and\/or content.+--+-- /See:/ 'filesUpdate' smart constructor.+data FilesUpdate = FilesUpdate+    { _fuNewRevision               :: !Bool+    , _fuPinned                    :: !Bool+    , _fuTimedTextLanguage         :: !(Maybe Text)+    , _fuPayload                   :: !File+    , _fuUpdateViewedDate          :: !Bool+    , _fuRemoveParents             :: !(Maybe Text)+    , _fuModifiedDateBehavior      :: !(Maybe FilesUpdateModifiedDateBehavior)+    , _fuUseContentAsIndexableText :: !Bool+    , _fuTimedTextTrackName        :: !(Maybe Text)+    , _fuOCRLanguage               :: !(Maybe Text)+    , _fuConvert                   :: !Bool+    , _fuSetModifiedDate           :: !Bool+    , _fuFileId                    :: !Text+    , _fuAddParents                :: !(Maybe Text)+    , _fuOCR                       :: !Bool+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FilesUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fuNewRevision'+--+-- * 'fuPinned'+--+-- * 'fuTimedTextLanguage'+--+-- * 'fuPayload'+--+-- * 'fuUpdateViewedDate'+--+-- * 'fuRemoveParents'+--+-- * 'fuModifiedDateBehavior'+--+-- * 'fuUseContentAsIndexableText'+--+-- * 'fuTimedTextTrackName'+--+-- * 'fuOCRLanguage'+--+-- * 'fuConvert'+--+-- * 'fuSetModifiedDate'+--+-- * 'fuFileId'+--+-- * 'fuAddParents'+--+-- * 'fuOCR'+filesUpdate+    :: File -- ^ 'fuPayload'+    -> Text -- ^ 'fuFileId'+    -> FilesUpdate+filesUpdate pFuPayload_ pFuFileId_ =+    FilesUpdate+    { _fuNewRevision = True+    , _fuPinned = False+    , _fuTimedTextLanguage = Nothing+    , _fuPayload = pFuPayload_+    , _fuUpdateViewedDate = True+    , _fuRemoveParents = Nothing+    , _fuModifiedDateBehavior = Nothing+    , _fuUseContentAsIndexableText = False+    , _fuTimedTextTrackName = Nothing+    , _fuOCRLanguage = Nothing+    , _fuConvert = False+    , _fuSetModifiedDate = False+    , _fuFileId = pFuFileId_+    , _fuAddParents = Nothing+    , _fuOCR = False+    }++-- | Whether a blob upload should create a new revision. If false, the blob+-- data in the current head revision is replaced. If true or not set, a new+-- blob is created as head revision, and previous unpinned revisions are+-- preserved for a short period of time. Pinned revisions are stored+-- indefinitely, using additional storage quota, up to a maximum of 200+-- revisions. For details on how revisions are retained, see the Drive Help+-- Center.+fuNewRevision :: Lens' FilesUpdate Bool+fuNewRevision+  = lens _fuNewRevision+      (\ s a -> s{_fuNewRevision = a})++-- | Whether to pin the new revision. A file can have a maximum of 200 pinned+-- revisions.+fuPinned :: Lens' FilesUpdate Bool+fuPinned = lens _fuPinned (\ s a -> s{_fuPinned = a})++-- | The language of the timed text.+fuTimedTextLanguage :: Lens' FilesUpdate (Maybe Text)+fuTimedTextLanguage+  = lens _fuTimedTextLanguage+      (\ s a -> s{_fuTimedTextLanguage = a})++-- | Multipart request metadata.+fuPayload :: Lens' FilesUpdate File+fuPayload+  = lens _fuPayload (\ s a -> s{_fuPayload = a})++-- | Whether to update the view date after successfully updating the file.+fuUpdateViewedDate :: Lens' FilesUpdate Bool+fuUpdateViewedDate+  = lens _fuUpdateViewedDate+      (\ s a -> s{_fuUpdateViewedDate = a})++-- | Comma-separated list of parent IDs to remove.+fuRemoveParents :: Lens' FilesUpdate (Maybe Text)+fuRemoveParents+  = lens _fuRemoveParents+      (\ s a -> s{_fuRemoveParents = a})++-- | Determines the behavior in which modifiedDate is updated. This overrides+-- setModifiedDate.+fuModifiedDateBehavior :: Lens' FilesUpdate (Maybe FilesUpdateModifiedDateBehavior)+fuModifiedDateBehavior+  = lens _fuModifiedDateBehavior+      (\ s a -> s{_fuModifiedDateBehavior = a})++-- | Whether to use the content as indexable text.+fuUseContentAsIndexableText :: Lens' FilesUpdate Bool+fuUseContentAsIndexableText+  = lens _fuUseContentAsIndexableText+      (\ s a -> s{_fuUseContentAsIndexableText = a})++-- | The timed text track name.+fuTimedTextTrackName :: Lens' FilesUpdate (Maybe Text)+fuTimedTextTrackName+  = lens _fuTimedTextTrackName+      (\ s a -> s{_fuTimedTextTrackName = a})++-- | If ocr is true, hints at the language to use. Valid values are BCP 47+-- codes.+fuOCRLanguage :: Lens' FilesUpdate (Maybe Text)+fuOCRLanguage+  = lens _fuOCRLanguage+      (\ s a -> s{_fuOCRLanguage = a})++-- | This parameter is deprecated and has no function.+fuConvert :: Lens' FilesUpdate Bool+fuConvert+  = lens _fuConvert (\ s a -> s{_fuConvert = a})++-- | Whether to set the modified date with the supplied modified date.+fuSetModifiedDate :: Lens' FilesUpdate Bool+fuSetModifiedDate+  = lens _fuSetModifiedDate+      (\ s a -> s{_fuSetModifiedDate = a})++-- | The ID of the file to update.+fuFileId :: Lens' FilesUpdate Text+fuFileId = lens _fuFileId (\ s a -> s{_fuFileId = a})++-- | Comma-separated list of parent IDs to add.+fuAddParents :: Lens' FilesUpdate (Maybe Text)+fuAddParents+  = lens _fuAddParents (\ s a -> s{_fuAddParents = a})++-- | Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads.+fuOCR :: Lens' FilesUpdate Bool+fuOCR = lens _fuOCR (\ s a -> s{_fuOCR = a})++instance GoogleRequest FilesUpdate where+        type Rs FilesUpdate = File+        requestClient FilesUpdate{..}+          = go _fuFileId (Just _fuNewRevision) (Just _fuPinned)+              _fuTimedTextLanguage+              (Just _fuUpdateViewedDate)+              _fuRemoveParents+              _fuModifiedDateBehavior+              (Just _fuUseContentAsIndexableText)+              _fuTimedTextTrackName+              _fuOCRLanguage+              (Just _fuConvert)+              (Just _fuSetModifiedDate)+              _fuAddParents+              (Just _fuOCR)+              (Just AltJSON)+              _fuPayload+              driveService+          where go :<|> _+                  = buildClient (Proxy :: Proxy FilesUpdateResource)+                      mempty++instance GoogleRequest (MediaUpload FilesUpdate)+         where+        type Rs (MediaUpload FilesUpdate) = File+        requestClient (MediaUpload FilesUpdate{..} body)+          = go _fuFileId (Just _fuNewRevision) (Just _fuPinned)+              _fuTimedTextLanguage+              (Just _fuUpdateViewedDate)+              _fuRemoveParents+              _fuModifiedDateBehavior+              (Just _fuUseContentAsIndexableText)+              _fuTimedTextTrackName+              _fuOCRLanguage+              (Just _fuConvert)+              (Just _fuSetModifiedDate)+              _fuAddParents+              (Just _fuOCR)+              (Just AltJSON)+              (Just AltMedia)+              _fuPayload+              body+              driveService+          where _ :<|> go+                  = buildClient (Proxy :: Proxy FilesUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Files/Watch.hs view
@@ -0,0 +1,175 @@+{-# 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.Drive.Files.Watch+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Subscribe to changes on a file+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.files.watch@.+module Network.Google.Resource.Drive.Files.Watch+    (+    -- * REST Resource+      FilesWatchResource++    -- * Creating a Request+    , filesWatch+    , FilesWatch++    -- * Request Lenses+    , fwPayload+    , fwUpdateViewedDate+    , fwProjection+    , fwAcknowledgeAbuse+    , fwFileId+    , fwRevisionId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.files.watch@ method which the+-- 'FilesWatch' request conforms to.+type FilesWatchResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "watch" :>+               QueryParam "updateViewedDate" Bool :>+                 QueryParam "projection" FilesWatchProjection :>+                   QueryParam "acknowledgeAbuse" Bool :>+                     QueryParam "revisionId" Text :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] Channel :> Post '[JSON] Channel+       :<|>+       "drive" :>+         "v2" :>+           "files" :>+             Capture "fileId" Text :>+               "watch" :>+                 QueryParam "updateViewedDate" Bool :>+                   QueryParam "projection" FilesWatchProjection :>+                     QueryParam "acknowledgeAbuse" Bool :>+                       QueryParam "revisionId" Text :>+                         QueryParam "alt" AltMedia :>+                           Post '[OctetStream] Stream++-- | Subscribe to changes on a file+--+-- /See:/ 'filesWatch' smart constructor.+data FilesWatch = FilesWatch+    { _fwPayload          :: !Channel+    , _fwUpdateViewedDate :: !Bool+    , _fwProjection       :: !(Maybe FilesWatchProjection)+    , _fwAcknowledgeAbuse :: !Bool+    , _fwFileId           :: !Text+    , _fwRevisionId       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FilesWatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fwPayload'+--+-- * 'fwUpdateViewedDate'+--+-- * 'fwProjection'+--+-- * 'fwAcknowledgeAbuse'+--+-- * 'fwFileId'+--+-- * 'fwRevisionId'+filesWatch+    :: Channel -- ^ 'fwPayload'+    -> Text -- ^ 'fwFileId'+    -> FilesWatch+filesWatch pFwPayload_ pFwFileId_ =+    FilesWatch+    { _fwPayload = pFwPayload_+    , _fwUpdateViewedDate = False+    , _fwProjection = Nothing+    , _fwAcknowledgeAbuse = False+    , _fwFileId = pFwFileId_+    , _fwRevisionId = Nothing+    }++-- | Multipart request metadata.+fwPayload :: Lens' FilesWatch Channel+fwPayload+  = lens _fwPayload (\ s a -> s{_fwPayload = a})++-- | Deprecated: Use files.update with modifiedDateBehavior=noChange,+-- updateViewedDate=true and an empty request body.+fwUpdateViewedDate :: Lens' FilesWatch Bool+fwUpdateViewedDate+  = lens _fwUpdateViewedDate+      (\ s a -> s{_fwUpdateViewedDate = a})++-- | This parameter is deprecated and has no function.+fwProjection :: Lens' FilesWatch (Maybe FilesWatchProjection)+fwProjection+  = lens _fwProjection (\ s a -> s{_fwProjection = a})++-- | Whether the user is acknowledging the risk of downloading known malware+-- or other abusive files.+fwAcknowledgeAbuse :: Lens' FilesWatch Bool+fwAcknowledgeAbuse+  = lens _fwAcknowledgeAbuse+      (\ s a -> s{_fwAcknowledgeAbuse = a})++-- | The ID for the file in question.+fwFileId :: Lens' FilesWatch Text+fwFileId = lens _fwFileId (\ s a -> s{_fwFileId = a})++-- | Specifies the Revision ID that should be downloaded. Ignored unless+-- alt=media is specified.+fwRevisionId :: Lens' FilesWatch (Maybe Text)+fwRevisionId+  = lens _fwRevisionId (\ s a -> s{_fwRevisionId = a})++instance GoogleRequest FilesWatch where+        type Rs FilesWatch = Channel+        requestClient FilesWatch{..}+          = go _fwFileId (Just _fwUpdateViewedDate)+              _fwProjection+              (Just _fwAcknowledgeAbuse)+              _fwRevisionId+              (Just AltJSON)+              _fwPayload+              driveService+          where go :<|> _+                  = buildClient (Proxy :: Proxy FilesWatchResource)+                      mempty++instance GoogleRequest (MediaDownload FilesWatch)+         where+        type Rs (MediaDownload FilesWatch) = Stream+        requestClient (MediaDownload FilesWatch{..})+          = go _fwFileId (Just _fwUpdateViewedDate)+              _fwProjection+              (Just _fwAcknowledgeAbuse)+              _fwRevisionId+              (Just AltMedia)+              driveService+          where _ :<|> go+                  = buildClient (Proxy :: Proxy FilesWatchResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Parents/Delete.hs view
@@ -0,0 +1,96 @@+{-# 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.Drive.Parents.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes a parent from a file.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.parents.delete@.+module Network.Google.Resource.Drive.Parents.Delete+    (+    -- * REST Resource+      ParentsDeleteResource++    -- * Creating a Request+    , parentsDelete+    , ParentsDelete++    -- * Request Lenses+    , pddFileId+    , pddParentId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.parents.delete@ method which the+-- 'ParentsDelete' request conforms to.+type ParentsDeleteResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "parents" :>+               Capture "parentId" Text :>+                 QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Removes a parent from a file.+--+-- /See:/ 'parentsDelete' smart constructor.+data ParentsDelete = ParentsDelete+    { _pddFileId   :: !Text+    , _pddParentId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ParentsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pddFileId'+--+-- * 'pddParentId'+parentsDelete+    :: Text -- ^ 'pddFileId'+    -> Text -- ^ 'pddParentId'+    -> ParentsDelete+parentsDelete pPddFileId_ pPddParentId_ =+    ParentsDelete+    { _pddFileId = pPddFileId_+    , _pddParentId = pPddParentId_+    }++-- | The ID of the file.+pddFileId :: Lens' ParentsDelete Text+pddFileId+  = lens _pddFileId (\ s a -> s{_pddFileId = a})++-- | The ID of the parent.+pddParentId :: Lens' ParentsDelete Text+pddParentId+  = lens _pddParentId (\ s a -> s{_pddParentId = a})++instance GoogleRequest ParentsDelete where+        type Rs ParentsDelete = ()+        requestClient ParentsDelete{..}+          = go _pddFileId _pddParentId (Just AltJSON)+              driveService+          where go+                  = buildClient (Proxy :: Proxy ParentsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Parents/Get.hs view
@@ -0,0 +1,97 @@+{-# 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.Drive.Parents.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a specific parent reference.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.parents.get@.+module Network.Google.Resource.Drive.Parents.Get+    (+    -- * REST Resource+      ParentsGetResource++    -- * Creating a Request+    , parentsGet+    , ParentsGet++    -- * Request Lenses+    , pg1FileId+    , pg1ParentId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.parents.get@ method which the+-- 'ParentsGet' request conforms to.+type ParentsGetResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "parents" :>+               Capture "parentId" Text :>+                 QueryParam "alt" AltJSON :>+                   Get '[JSON] ParentReference++-- | Gets a specific parent reference.+--+-- /See:/ 'parentsGet' smart constructor.+data ParentsGet = ParentsGet+    { _pg1FileId   :: !Text+    , _pg1ParentId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ParentsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pg1FileId'+--+-- * 'pg1ParentId'+parentsGet+    :: Text -- ^ 'pg1FileId'+    -> Text -- ^ 'pg1ParentId'+    -> ParentsGet+parentsGet pPg1FileId_ pPg1ParentId_ =+    ParentsGet+    { _pg1FileId = pPg1FileId_+    , _pg1ParentId = pPg1ParentId_+    }++-- | The ID of the file.+pg1FileId :: Lens' ParentsGet Text+pg1FileId+  = lens _pg1FileId (\ s a -> s{_pg1FileId = a})++-- | The ID of the parent.+pg1ParentId :: Lens' ParentsGet Text+pg1ParentId+  = lens _pg1ParentId (\ s a -> s{_pg1ParentId = a})++instance GoogleRequest ParentsGet where+        type Rs ParentsGet = ParentReference+        requestClient ParentsGet{..}+          = go _pg1FileId _pg1ParentId (Just AltJSON)+              driveService+          where go+                  = buildClient (Proxy :: Proxy ParentsGetResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Parents/Insert.hs view
@@ -0,0 +1,97 @@+{-# 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.Drive.Parents.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds a parent folder for a file.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.parents.insert@.+module Network.Google.Resource.Drive.Parents.Insert+    (+    -- * REST Resource+      ParentsInsertResource++    -- * Creating a Request+    , parentsInsert+    , ParentsInsert++    -- * Request Lenses+    , paraPayload+    , paraFileId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.parents.insert@ method which the+-- 'ParentsInsert' request conforms to.+type ParentsInsertResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "parents" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] ParentReference :>+                   Post '[JSON] ParentReference++-- | Adds a parent folder for a file.+--+-- /See:/ 'parentsInsert' smart constructor.+data ParentsInsert = ParentsInsert+    { _paraPayload :: !ParentReference+    , _paraFileId  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ParentsInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'paraPayload'+--+-- * 'paraFileId'+parentsInsert+    :: ParentReference -- ^ 'paraPayload'+    -> Text -- ^ 'paraFileId'+    -> ParentsInsert+parentsInsert pParaPayload_ pParaFileId_ =+    ParentsInsert+    { _paraPayload = pParaPayload_+    , _paraFileId = pParaFileId_+    }++-- | Multipart request metadata.+paraPayload :: Lens' ParentsInsert ParentReference+paraPayload+  = lens _paraPayload (\ s a -> s{_paraPayload = a})++-- | The ID of the file.+paraFileId :: Lens' ParentsInsert Text+paraFileId+  = lens _paraFileId (\ s a -> s{_paraFileId = a})++instance GoogleRequest ParentsInsert where+        type Rs ParentsInsert = ParentReference+        requestClient ParentsInsert{..}+          = go _paraFileId (Just AltJSON) _paraPayload+              driveService+          where go+                  = buildClient (Proxy :: Proxy ParentsInsertResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Parents/List.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Parents.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists a file\'s parents.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.parents.list@.+module Network.Google.Resource.Drive.Parents.List+    (+    -- * REST Resource+      ParentsListResource++    -- * Creating a Request+    , parentsList+    , ParentsList++    -- * Request Lenses+    , parFileId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.parents.list@ method which the+-- 'ParentsList' request conforms to.+type ParentsListResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "parents" :>+               QueryParam "alt" AltJSON :> Get '[JSON] ParentList++-- | Lists a file\'s parents.+--+-- /See:/ 'parentsList' smart constructor.+newtype ParentsList = ParentsList+    { _parFileId :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ParentsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'parFileId'+parentsList+    :: Text -- ^ 'parFileId'+    -> ParentsList+parentsList pParFileId_ =+    ParentsList+    { _parFileId = pParFileId_+    }++-- | The ID of the file.+parFileId :: Lens' ParentsList Text+parFileId+  = lens _parFileId (\ s a -> s{_parFileId = a})++instance GoogleRequest ParentsList where+        type Rs ParentsList = ParentList+        requestClient ParentsList{..}+          = go _parFileId (Just AltJSON) driveService+          where go+                  = buildClient (Proxy :: Proxy ParentsListResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Permissions/Delete.hs view
@@ -0,0 +1,97 @@+{-# 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.Drive.Permissions.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a permission from a file.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.permissions.delete@.+module Network.Google.Resource.Drive.Permissions.Delete+    (+    -- * REST Resource+      PermissionsDeleteResource++    -- * Creating a Request+    , permissionsDelete+    , PermissionsDelete++    -- * Request Lenses+    , pFileId+    , pPermissionId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.permissions.delete@ method which the+-- 'PermissionsDelete' request conforms to.+type PermissionsDeleteResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "permissions" :>+               Capture "permissionId" Text :>+                 QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes a permission from a file.+--+-- /See:/ 'permissionsDelete' smart constructor.+data PermissionsDelete = PermissionsDelete+    { _pFileId       :: !Text+    , _pPermissionId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PermissionsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pFileId'+--+-- * 'pPermissionId'+permissionsDelete+    :: Text -- ^ 'pFileId'+    -> Text -- ^ 'pPermissionId'+    -> PermissionsDelete+permissionsDelete pPFileId_ pPPermissionId_ =+    PermissionsDelete+    { _pFileId = pPFileId_+    , _pPermissionId = pPPermissionId_+    }++-- | The ID for the file.+pFileId :: Lens' PermissionsDelete Text+pFileId = lens _pFileId (\ s a -> s{_pFileId = a})++-- | The ID for the permission.+pPermissionId :: Lens' PermissionsDelete Text+pPermissionId+  = lens _pPermissionId+      (\ s a -> s{_pPermissionId = a})++instance GoogleRequest PermissionsDelete where+        type Rs PermissionsDelete = ()+        requestClient PermissionsDelete{..}+          = go _pFileId _pPermissionId (Just AltJSON)+              driveService+          where go+                  = buildClient+                      (Proxy :: Proxy PermissionsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Permissions/Get.hs view
@@ -0,0 +1,97 @@+{-# 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.Drive.Permissions.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a permission by ID.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.permissions.get@.+module Network.Google.Resource.Drive.Permissions.Get+    (+    -- * REST Resource+      PermissionsGetResource++    -- * Creating a Request+    , permissionsGet+    , PermissionsGet++    -- * Request Lenses+    , pggFileId+    , pggPermissionId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.permissions.get@ method which the+-- 'PermissionsGet' request conforms to.+type PermissionsGetResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "permissions" :>+               Capture "permissionId" Text :>+                 QueryParam "alt" AltJSON :> Get '[JSON] Permission++-- | Gets a permission by ID.+--+-- /See:/ 'permissionsGet' smart constructor.+data PermissionsGet = PermissionsGet+    { _pggFileId       :: !Text+    , _pggPermissionId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PermissionsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pggFileId'+--+-- * 'pggPermissionId'+permissionsGet+    :: Text -- ^ 'pggFileId'+    -> Text -- ^ 'pggPermissionId'+    -> PermissionsGet+permissionsGet pPggFileId_ pPggPermissionId_ =+    PermissionsGet+    { _pggFileId = pPggFileId_+    , _pggPermissionId = pPggPermissionId_+    }++-- | The ID for the file.+pggFileId :: Lens' PermissionsGet Text+pggFileId+  = lens _pggFileId (\ s a -> s{_pggFileId = a})++-- | The ID for the permission.+pggPermissionId :: Lens' PermissionsGet Text+pggPermissionId+  = lens _pggPermissionId+      (\ s a -> s{_pggPermissionId = a})++instance GoogleRequest PermissionsGet where+        type Rs PermissionsGet = Permission+        requestClient PermissionsGet{..}+          = go _pggFileId _pggPermissionId (Just AltJSON)+              driveService+          where go+                  = buildClient (Proxy :: Proxy PermissionsGetResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Permissions/GetIdForEmail.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Permissions.GetIdForEmail+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the permission ID for an email address.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.permissions.getIdForEmail@.+module Network.Google.Resource.Drive.Permissions.GetIdForEmail+    (+    -- * REST Resource+      PermissionsGetIdForEmailResource++    -- * Creating a Request+    , permissionsGetIdForEmail+    , PermissionsGetIdForEmail++    -- * Request Lenses+    , pgifeEmail+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.permissions.getIdForEmail@ method which the+-- 'PermissionsGetIdForEmail' request conforms to.+type PermissionsGetIdForEmailResource =+     "drive" :>+       "v2" :>+         "permissionIds" :>+           Capture "email" Text :>+             QueryParam "alt" AltJSON :> Get '[JSON] PermissionId++-- | Returns the permission ID for an email address.+--+-- /See:/ 'permissionsGetIdForEmail' smart constructor.+newtype PermissionsGetIdForEmail = PermissionsGetIdForEmail+    { _pgifeEmail :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PermissionsGetIdForEmail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pgifeEmail'+permissionsGetIdForEmail+    :: Text -- ^ 'pgifeEmail'+    -> PermissionsGetIdForEmail+permissionsGetIdForEmail pPgifeEmail_ =+    PermissionsGetIdForEmail+    { _pgifeEmail = pPgifeEmail_+    }++-- | The email address for which to return a permission ID+pgifeEmail :: Lens' PermissionsGetIdForEmail Text+pgifeEmail+  = lens _pgifeEmail (\ s a -> s{_pgifeEmail = a})++instance GoogleRequest PermissionsGetIdForEmail where+        type Rs PermissionsGetIdForEmail = PermissionId+        requestClient PermissionsGetIdForEmail{..}+          = go _pgifeEmail (Just AltJSON) driveService+          where go+                  = buildClient+                      (Proxy :: Proxy PermissionsGetIdForEmailResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Permissions/Insert.hs view
@@ -0,0 +1,125 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Permissions.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Inserts a permission for a file.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.permissions.insert@.+module Network.Google.Resource.Drive.Permissions.Insert+    (+    -- * REST Resource+      PermissionsInsertResource++    -- * Creating a Request+    , permissionsInsert+    , PermissionsInsert++    -- * Request Lenses+    , piiPayload+    , piiEmailMessage+    , piiFileId+    , piiSendNotificationEmails+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.permissions.insert@ method which the+-- 'PermissionsInsert' request conforms to.+type PermissionsInsertResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "permissions" :>+               QueryParam "emailMessage" Text :>+                 QueryParam "sendNotificationEmails" Bool :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Permission :> Post '[JSON] Permission++-- | Inserts a permission for a file.+--+-- /See:/ 'permissionsInsert' smart constructor.+data PermissionsInsert = PermissionsInsert+    { _piiPayload                :: !Permission+    , _piiEmailMessage           :: !(Maybe Text)+    , _piiFileId                 :: !Text+    , _piiSendNotificationEmails :: !Bool+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PermissionsInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'piiPayload'+--+-- * 'piiEmailMessage'+--+-- * 'piiFileId'+--+-- * 'piiSendNotificationEmails'+permissionsInsert+    :: Permission -- ^ 'piiPayload'+    -> Text -- ^ 'piiFileId'+    -> PermissionsInsert+permissionsInsert pPiiPayload_ pPiiFileId_ =+    PermissionsInsert+    { _piiPayload = pPiiPayload_+    , _piiEmailMessage = Nothing+    , _piiFileId = pPiiFileId_+    , _piiSendNotificationEmails = True+    }++-- | Multipart request metadata.+piiPayload :: Lens' PermissionsInsert Permission+piiPayload+  = lens _piiPayload (\ s a -> s{_piiPayload = a})++-- | A custom message to include in notification emails.+piiEmailMessage :: Lens' PermissionsInsert (Maybe Text)+piiEmailMessage+  = lens _piiEmailMessage+      (\ s a -> s{_piiEmailMessage = a})++-- | The ID for the file.+piiFileId :: Lens' PermissionsInsert Text+piiFileId+  = lens _piiFileId (\ s a -> s{_piiFileId = a})++-- | Whether to send notification emails when sharing to users or groups.+-- This parameter is ignored and an email is sent if the role is owner.+piiSendNotificationEmails :: Lens' PermissionsInsert Bool+piiSendNotificationEmails+  = lens _piiSendNotificationEmails+      (\ s a -> s{_piiSendNotificationEmails = a})++instance GoogleRequest PermissionsInsert where+        type Rs PermissionsInsert = Permission+        requestClient PermissionsInsert{..}+          = go _piiFileId _piiEmailMessage+              (Just _piiSendNotificationEmails)+              (Just AltJSON)+              _piiPayload+              driveService+          where go+                  = buildClient+                      (Proxy :: Proxy PermissionsInsertResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Permissions/List.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Permissions.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists a file\'s permissions.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.permissions.list@.+module Network.Google.Resource.Drive.Permissions.List+    (+    -- * REST Resource+      PermissionsListResource++    -- * Creating a Request+    , permissionsList+    , PermissionsList++    -- * Request Lenses+    , plFileId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.permissions.list@ method which the+-- 'PermissionsList' request conforms to.+type PermissionsListResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "permissions" :>+               QueryParam "alt" AltJSON :>+                 Get '[JSON] PermissionList++-- | Lists a file\'s permissions.+--+-- /See:/ 'permissionsList' smart constructor.+newtype PermissionsList = PermissionsList+    { _plFileId :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PermissionsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plFileId'+permissionsList+    :: Text -- ^ 'plFileId'+    -> PermissionsList+permissionsList pPlFileId_ =+    PermissionsList+    { _plFileId = pPlFileId_+    }++-- | The ID for the file.+plFileId :: Lens' PermissionsList Text+plFileId = lens _plFileId (\ s a -> s{_plFileId = a})++instance GoogleRequest PermissionsList where+        type Rs PermissionsList = PermissionList+        requestClient PermissionsList{..}+          = go _plFileId (Just AltJSON) driveService+          where go+                  = buildClient+                      (Proxy :: Proxy PermissionsListResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Permissions/Patch.hs view
@@ -0,0 +1,127 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Permissions.Patch+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a permission using patch semantics.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.permissions.patch@.+module Network.Google.Resource.Drive.Permissions.Patch+    (+    -- * REST Resource+      PermissionsPatchResource++    -- * Creating a Request+    , permissionsPatch+    , PermissionsPatch++    -- * Request Lenses+    , pppPayload+    , pppTransferOwnership+    , pppFileId+    , pppPermissionId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.permissions.patch@ method which the+-- 'PermissionsPatch' request conforms to.+type PermissionsPatchResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "permissions" :>+               Capture "permissionId" Text :>+                 QueryParam "transferOwnership" Bool :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Permission :>+                       Patch '[JSON] Permission++-- | Updates a permission using patch semantics.+--+-- /See:/ 'permissionsPatch' smart constructor.+data PermissionsPatch = PermissionsPatch+    { _pppPayload           :: !Permission+    , _pppTransferOwnership :: !Bool+    , _pppFileId            :: !Text+    , _pppPermissionId      :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PermissionsPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pppPayload'+--+-- * 'pppTransferOwnership'+--+-- * 'pppFileId'+--+-- * 'pppPermissionId'+permissionsPatch+    :: Permission -- ^ 'pppPayload'+    -> Text -- ^ 'pppFileId'+    -> Text -- ^ 'pppPermissionId'+    -> PermissionsPatch+permissionsPatch pPppPayload_ pPppFileId_ pPppPermissionId_ =+    PermissionsPatch+    { _pppPayload = pPppPayload_+    , _pppTransferOwnership = False+    , _pppFileId = pPppFileId_+    , _pppPermissionId = pPppPermissionId_+    }++-- | Multipart request metadata.+pppPayload :: Lens' PermissionsPatch Permission+pppPayload+  = lens _pppPayload (\ s a -> s{_pppPayload = a})++-- | Whether changing a role to \'owner\' downgrades the current owners to+-- writers. Does nothing if the specified role is not \'owner\'.+pppTransferOwnership :: Lens' PermissionsPatch Bool+pppTransferOwnership+  = lens _pppTransferOwnership+      (\ s a -> s{_pppTransferOwnership = a})++-- | The ID for the file.+pppFileId :: Lens' PermissionsPatch Text+pppFileId+  = lens _pppFileId (\ s a -> s{_pppFileId = a})++-- | The ID for the permission.+pppPermissionId :: Lens' PermissionsPatch Text+pppPermissionId+  = lens _pppPermissionId+      (\ s a -> s{_pppPermissionId = a})++instance GoogleRequest PermissionsPatch where+        type Rs PermissionsPatch = Permission+        requestClient PermissionsPatch{..}+          = go _pppFileId _pppPermissionId+              (Just _pppTransferOwnership)+              (Just AltJSON)+              _pppPayload+              driveService+          where go+                  = buildClient+                      (Proxy :: Proxy PermissionsPatchResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Permissions/Update.hs view
@@ -0,0 +1,126 @@+{-# 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.Drive.Permissions.Update+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a permission.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.permissions.update@.+module Network.Google.Resource.Drive.Permissions.Update+    (+    -- * REST Resource+      PermissionsUpdateResource++    -- * Creating a Request+    , permissionsUpdate+    , PermissionsUpdate++    -- * Request Lenses+    , perPayload+    , perTransferOwnership+    , perFileId+    , perPermissionId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.permissions.update@ method which the+-- 'PermissionsUpdate' request conforms to.+type PermissionsUpdateResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "permissions" :>+               Capture "permissionId" Text :>+                 QueryParam "transferOwnership" Bool :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Permission :> Put '[JSON] Permission++-- | Updates a permission.+--+-- /See:/ 'permissionsUpdate' smart constructor.+data PermissionsUpdate = PermissionsUpdate+    { _perPayload           :: !Permission+    , _perTransferOwnership :: !Bool+    , _perFileId            :: !Text+    , _perPermissionId      :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PermissionsUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'perPayload'+--+-- * 'perTransferOwnership'+--+-- * 'perFileId'+--+-- * 'perPermissionId'+permissionsUpdate+    :: Permission -- ^ 'perPayload'+    -> Text -- ^ 'perFileId'+    -> Text -- ^ 'perPermissionId'+    -> PermissionsUpdate+permissionsUpdate pPerPayload_ pPerFileId_ pPerPermissionId_ =+    PermissionsUpdate+    { _perPayload = pPerPayload_+    , _perTransferOwnership = False+    , _perFileId = pPerFileId_+    , _perPermissionId = pPerPermissionId_+    }++-- | Multipart request metadata.+perPayload :: Lens' PermissionsUpdate Permission+perPayload+  = lens _perPayload (\ s a -> s{_perPayload = a})++-- | Whether changing a role to \'owner\' downgrades the current owners to+-- writers. Does nothing if the specified role is not \'owner\'.+perTransferOwnership :: Lens' PermissionsUpdate Bool+perTransferOwnership+  = lens _perTransferOwnership+      (\ s a -> s{_perTransferOwnership = a})++-- | The ID for the file.+perFileId :: Lens' PermissionsUpdate Text+perFileId+  = lens _perFileId (\ s a -> s{_perFileId = a})++-- | The ID for the permission.+perPermissionId :: Lens' PermissionsUpdate Text+perPermissionId+  = lens _perPermissionId+      (\ s a -> s{_perPermissionId = a})++instance GoogleRequest PermissionsUpdate where+        type Rs PermissionsUpdate = Permission+        requestClient PermissionsUpdate{..}+          = go _perFileId _perPermissionId+              (Just _perTransferOwnership)+              (Just AltJSON)+              _perPayload+              driveService+          where go+                  = buildClient+                      (Proxy :: Proxy PermissionsUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Properties/Delete.hs view
@@ -0,0 +1,109 @@+{-# 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.Drive.Properties.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a property.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.properties.delete@.+module Network.Google.Resource.Drive.Properties.Delete+    (+    -- * REST Resource+      PropertiesDeleteResource++    -- * Creating a Request+    , propertiesDelete+    , PropertiesDelete++    -- * Request Lenses+    , pdPropertyKey+    , pdVisibility+    , pdFileId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.properties.delete@ method which the+-- 'PropertiesDelete' request conforms to.+type PropertiesDeleteResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "properties" :>+               Capture "propertyKey" Text :>+                 QueryParam "visibility" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes a property.+--+-- /See:/ 'propertiesDelete' smart constructor.+data PropertiesDelete = PropertiesDelete+    { _pdPropertyKey :: !Text+    , _pdVisibility  :: !Text+    , _pdFileId      :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PropertiesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdPropertyKey'+--+-- * 'pdVisibility'+--+-- * 'pdFileId'+propertiesDelete+    :: Text -- ^ 'pdPropertyKey'+    -> Text -- ^ 'pdFileId'+    -> PropertiesDelete+propertiesDelete pPdPropertyKey_ pPdFileId_ =+    PropertiesDelete+    { _pdPropertyKey = pPdPropertyKey_+    , _pdVisibility = "private"+    , _pdFileId = pPdFileId_+    }++-- | The key of the property.+pdPropertyKey :: Lens' PropertiesDelete Text+pdPropertyKey+  = lens _pdPropertyKey+      (\ s a -> s{_pdPropertyKey = a})++-- | The visibility of the property.+pdVisibility :: Lens' PropertiesDelete Text+pdVisibility+  = lens _pdVisibility (\ s a -> s{_pdVisibility = a})++-- | The ID of the file.+pdFileId :: Lens' PropertiesDelete Text+pdFileId = lens _pdFileId (\ s a -> s{_pdFileId = a})++instance GoogleRequest PropertiesDelete where+        type Rs PropertiesDelete = ()+        requestClient PropertiesDelete{..}+          = go _pdFileId _pdPropertyKey (Just _pdVisibility)+              (Just AltJSON)+              driveService+          where go+                  = buildClient+                      (Proxy :: Proxy PropertiesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Properties/Get.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Properties.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a property by its key.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.properties.get@.+module Network.Google.Resource.Drive.Properties.Get+    (+    -- * REST Resource+      PropertiesGetResource++    -- * Creating a Request+    , propertiesGet+    , PropertiesGet++    -- * Request Lenses+    , pgPropertyKey+    , pgVisibility+    , pgFileId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.properties.get@ method which the+-- 'PropertiesGet' request conforms to.+type PropertiesGetResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "properties" :>+               Capture "propertyKey" Text :>+                 QueryParam "visibility" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Property++-- | Gets a property by its key.+--+-- /See:/ 'propertiesGet' smart constructor.+data PropertiesGet = PropertiesGet+    { _pgPropertyKey :: !Text+    , _pgVisibility  :: !Text+    , _pgFileId      :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PropertiesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pgPropertyKey'+--+-- * 'pgVisibility'+--+-- * 'pgFileId'+propertiesGet+    :: Text -- ^ 'pgPropertyKey'+    -> Text -- ^ 'pgFileId'+    -> PropertiesGet+propertiesGet pPgPropertyKey_ pPgFileId_ =+    PropertiesGet+    { _pgPropertyKey = pPgPropertyKey_+    , _pgVisibility = "private"+    , _pgFileId = pPgFileId_+    }++-- | The key of the property.+pgPropertyKey :: Lens' PropertiesGet Text+pgPropertyKey+  = lens _pgPropertyKey+      (\ s a -> s{_pgPropertyKey = a})++-- | The visibility of the property.+pgVisibility :: Lens' PropertiesGet Text+pgVisibility+  = lens _pgVisibility (\ s a -> s{_pgVisibility = a})++-- | The ID of the file.+pgFileId :: Lens' PropertiesGet Text+pgFileId = lens _pgFileId (\ s a -> s{_pgFileId = a})++instance GoogleRequest PropertiesGet where+        type Rs PropertiesGet = Property+        requestClient PropertiesGet{..}+          = go _pgFileId _pgPropertyKey (Just _pgVisibility)+              (Just AltJSON)+              driveService+          where go+                  = buildClient (Proxy :: Proxy PropertiesGetResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Properties/Insert.hs view
@@ -0,0 +1,95 @@+{-# 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.Drive.Properties.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds a property to a file.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.properties.insert@.+module Network.Google.Resource.Drive.Properties.Insert+    (+    -- * REST Resource+      PropertiesInsertResource++    -- * Creating a Request+    , propertiesInsert+    , PropertiesInsert++    -- * Request Lenses+    , piPayload+    , piFileId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.properties.insert@ method which the+-- 'PropertiesInsert' request conforms to.+type PropertiesInsertResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "properties" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] Property :> Post '[JSON] Property++-- | Adds a property to a file.+--+-- /See:/ 'propertiesInsert' smart constructor.+data PropertiesInsert = PropertiesInsert+    { _piPayload :: !Property+    , _piFileId  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PropertiesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'piPayload'+--+-- * 'piFileId'+propertiesInsert+    :: Property -- ^ 'piPayload'+    -> Text -- ^ 'piFileId'+    -> PropertiesInsert+propertiesInsert pPiPayload_ pPiFileId_ =+    PropertiesInsert+    { _piPayload = pPiPayload_+    , _piFileId = pPiFileId_+    }++-- | Multipart request metadata.+piPayload :: Lens' PropertiesInsert Property+piPayload+  = lens _piPayload (\ s a -> s{_piPayload = a})++-- | The ID of the file.+piFileId :: Lens' PropertiesInsert Text+piFileId = lens _piFileId (\ s a -> s{_piFileId = a})++instance GoogleRequest PropertiesInsert where+        type Rs PropertiesInsert = Property+        requestClient PropertiesInsert{..}+          = go _piFileId (Just AltJSON) _piPayload driveService+          where go+                  = buildClient+                      (Proxy :: Proxy PropertiesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Properties/List.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Properties.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists a file\'s properties.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.properties.list@.+module Network.Google.Resource.Drive.Properties.List+    (+    -- * REST Resource+      PropertiesListResource++    -- * Creating a Request+    , propertiesList+    , PropertiesList++    -- * Request Lenses+    , proFileId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.properties.list@ method which the+-- 'PropertiesList' request conforms to.+type PropertiesListResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "properties" :>+               QueryParam "alt" AltJSON :> Get '[JSON] PropertyList++-- | Lists a file\'s properties.+--+-- /See:/ 'propertiesList' smart constructor.+newtype PropertiesList = PropertiesList+    { _proFileId :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PropertiesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'proFileId'+propertiesList+    :: Text -- ^ 'proFileId'+    -> PropertiesList+propertiesList pProFileId_ =+    PropertiesList+    { _proFileId = pProFileId_+    }++-- | The ID of the file.+proFileId :: Lens' PropertiesList Text+proFileId+  = lens _proFileId (\ s a -> s{_proFileId = a})++instance GoogleRequest PropertiesList where+        type Rs PropertiesList = PropertyList+        requestClient PropertiesList{..}+          = go _proFileId (Just AltJSON) driveService+          where go+                  = buildClient (Proxy :: Proxy PropertiesListResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Properties/Patch.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Properties.Patch+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a property. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.properties.patch@.+module Network.Google.Resource.Drive.Properties.Patch+    (+    -- * REST Resource+      PropertiesPatchResource++    -- * Creating a Request+    , propertiesPatch+    , PropertiesPatch++    -- * Request Lenses+    , ppPropertyKey+    , ppVisibility+    , ppPayload+    , ppFileId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.properties.patch@ method which the+-- 'PropertiesPatch' request conforms to.+type PropertiesPatchResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "properties" :>+               Capture "propertyKey" Text :>+                 QueryParam "visibility" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Property :> Patch '[JSON] Property++-- | Updates a property. This method supports patch semantics.+--+-- /See:/ 'propertiesPatch' smart constructor.+data PropertiesPatch = PropertiesPatch+    { _ppPropertyKey :: !Text+    , _ppVisibility  :: !Text+    , _ppPayload     :: !Property+    , _ppFileId      :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PropertiesPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ppPropertyKey'+--+-- * 'ppVisibility'+--+-- * 'ppPayload'+--+-- * 'ppFileId'+propertiesPatch+    :: Text -- ^ 'ppPropertyKey'+    -> Property -- ^ 'ppPayload'+    -> Text -- ^ 'ppFileId'+    -> PropertiesPatch+propertiesPatch pPpPropertyKey_ pPpPayload_ pPpFileId_ =+    PropertiesPatch+    { _ppPropertyKey = pPpPropertyKey_+    , _ppVisibility = "private"+    , _ppPayload = pPpPayload_+    , _ppFileId = pPpFileId_+    }++-- | The key of the property.+ppPropertyKey :: Lens' PropertiesPatch Text+ppPropertyKey+  = lens _ppPropertyKey+      (\ s a -> s{_ppPropertyKey = a})++-- | The visibility of the property.+ppVisibility :: Lens' PropertiesPatch Text+ppVisibility+  = lens _ppVisibility (\ s a -> s{_ppVisibility = a})++-- | Multipart request metadata.+ppPayload :: Lens' PropertiesPatch Property+ppPayload+  = lens _ppPayload (\ s a -> s{_ppPayload = a})++-- | The ID of the file.+ppFileId :: Lens' PropertiesPatch Text+ppFileId = lens _ppFileId (\ s a -> s{_ppFileId = a})++instance GoogleRequest PropertiesPatch where+        type Rs PropertiesPatch = Property+        requestClient PropertiesPatch{..}+          = go _ppFileId _ppPropertyKey (Just _ppVisibility)+              (Just AltJSON)+              _ppPayload+              driveService+          where go+                  = buildClient+                      (Proxy :: Proxy PropertiesPatchResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Properties/Update.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Properties.Update+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a property.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.properties.update@.+module Network.Google.Resource.Drive.Properties.Update+    (+    -- * REST Resource+      PropertiesUpdateResource++    -- * Creating a Request+    , propertiesUpdate+    , PropertiesUpdate++    -- * Request Lenses+    , puPropertyKey+    , puVisibility+    , puPayload+    , puFileId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.properties.update@ method which the+-- 'PropertiesUpdate' request conforms to.+type PropertiesUpdateResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "properties" :>+               Capture "propertyKey" Text :>+                 QueryParam "visibility" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Property :> Put '[JSON] Property++-- | Updates a property.+--+-- /See:/ 'propertiesUpdate' smart constructor.+data PropertiesUpdate = PropertiesUpdate+    { _puPropertyKey :: !Text+    , _puVisibility  :: !Text+    , _puPayload     :: !Property+    , _puFileId      :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PropertiesUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'puPropertyKey'+--+-- * 'puVisibility'+--+-- * 'puPayload'+--+-- * 'puFileId'+propertiesUpdate+    :: Text -- ^ 'puPropertyKey'+    -> Property -- ^ 'puPayload'+    -> Text -- ^ 'puFileId'+    -> PropertiesUpdate+propertiesUpdate pPuPropertyKey_ pPuPayload_ pPuFileId_ =+    PropertiesUpdate+    { _puPropertyKey = pPuPropertyKey_+    , _puVisibility = "private"+    , _puPayload = pPuPayload_+    , _puFileId = pPuFileId_+    }++-- | The key of the property.+puPropertyKey :: Lens' PropertiesUpdate Text+puPropertyKey+  = lens _puPropertyKey+      (\ s a -> s{_puPropertyKey = a})++-- | The visibility of the property.+puVisibility :: Lens' PropertiesUpdate Text+puVisibility+  = lens _puVisibility (\ s a -> s{_puVisibility = a})++-- | Multipart request metadata.+puPayload :: Lens' PropertiesUpdate Property+puPayload+  = lens _puPayload (\ s a -> s{_puPayload = a})++-- | The ID of the file.+puFileId :: Lens' PropertiesUpdate Text+puFileId = lens _puFileId (\ s a -> s{_puFileId = a})++instance GoogleRequest PropertiesUpdate where+        type Rs PropertiesUpdate = Property+        requestClient PropertiesUpdate{..}+          = go _puFileId _puPropertyKey (Just _puVisibility)+              (Just AltJSON)+              _puPayload+              driveService+          where go+                  = buildClient+                      (Proxy :: Proxy PropertiesUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Realtime/Get.hs view
@@ -0,0 +1,119 @@+{-# 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.Drive.Realtime.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Exports the contents of the Realtime API data model associated with this+-- file as JSON.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.realtime.get@.+module Network.Google.Resource.Drive.Realtime.Get+    (+    -- * REST Resource+      RealtimeGetResource++    -- * Creating a Request+    , realtimeGet+    , RealtimeGet++    -- * Request Lenses+    , rrFileId+    , rrRevision+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.realtime.get@ method which the+-- 'RealtimeGet' request conforms to.+type RealtimeGetResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "realtime" :>+               QueryParam "revision" (Textual Int32) :>+                 QueryParam "alt" AltJSON :> Get '[JSON] ()+       :<|>+       "drive" :>+         "v2" :>+           "files" :>+             Capture "fileId" Text :>+               "realtime" :>+                 QueryParam "revision" (Textual Int32) :>+                   QueryParam "alt" AltMedia :>+                     Get '[OctetStream] Stream++-- | Exports the contents of the Realtime API data model associated with this+-- file as JSON.+--+-- /See:/ 'realtimeGet' smart constructor.+data RealtimeGet = RealtimeGet+    { _rrFileId   :: !Text+    , _rrRevision :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RealtimeGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rrFileId'+--+-- * 'rrRevision'+realtimeGet+    :: Text -- ^ 'rrFileId'+    -> RealtimeGet+realtimeGet pRrFileId_ =+    RealtimeGet+    { _rrFileId = pRrFileId_+    , _rrRevision = Nothing+    }++-- | The ID of the file that the Realtime API data model is associated with.+rrFileId :: Lens' RealtimeGet Text+rrFileId = lens _rrFileId (\ s a -> s{_rrFileId = a})++-- | The revision of the Realtime API data model to export. Revisions start+-- at 1 (the initial empty data model) and are incremented with each+-- change. If this parameter is excluded, the most recent data model will+-- be returned.+rrRevision :: Lens' RealtimeGet (Maybe Int32)+rrRevision+  = lens _rrRevision (\ s a -> s{_rrRevision = a}) .+      mapping _Coerce++instance GoogleRequest RealtimeGet where+        type Rs RealtimeGet = ()+        requestClient RealtimeGet{..}+          = go _rrFileId _rrRevision (Just AltJSON)+              driveService+          where go :<|> _+                  = buildClient (Proxy :: Proxy RealtimeGetResource)+                      mempty++instance GoogleRequest (MediaDownload RealtimeGet)+         where+        type Rs (MediaDownload RealtimeGet) = Stream+        requestClient (MediaDownload RealtimeGet{..})+          = go _rrFileId _rrRevision (Just AltMedia)+              driveService+          where _ :<|> go+                  = buildClient (Proxy :: Proxy RealtimeGetResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Realtime/Update.hs view
@@ -0,0 +1,125 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Realtime.Update+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Overwrites the Realtime API data model associated with this file with+-- the provided JSON data model.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.realtime.update@.+module Network.Google.Resource.Drive.Realtime.Update+    (+    -- * REST Resource+      RealtimeUpdateResource++    -- * Creating a Request+    , realtimeUpdate+    , RealtimeUpdate++    -- * Request Lenses+    , reaBaseRevision+    , reaFileId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.realtime.update@ method which the+-- 'RealtimeUpdate' request conforms to.+type RealtimeUpdateResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "realtime" :>+               QueryParam "baseRevision" Text :>+                 QueryParam "alt" AltJSON :> Put '[JSON] ()+       :<|>+       "upload" :>+         "drive" :>+           "v2" :>+             "files" :>+               Capture "fileId" Text :>+                 "realtime" :>+                   QueryParam "baseRevision" Text :>+                     QueryParam "alt" AltJSON :>+                       QueryParam "uploadType" AltMedia :>+                         ReqBody '[OctetStream] RequestBody :> Put '[JSON] ()++-- | Overwrites the Realtime API data model associated with this file with+-- the provided JSON data model.+--+-- /See:/ 'realtimeUpdate' smart constructor.+data RealtimeUpdate = RealtimeUpdate+    { _reaBaseRevision :: !(Maybe Text)+    , _reaFileId       :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RealtimeUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'reaBaseRevision'+--+-- * 'reaFileId'+realtimeUpdate+    :: Text -- ^ 'reaFileId'+    -> RealtimeUpdate+realtimeUpdate pReaFileId_ =+    RealtimeUpdate+    { _reaBaseRevision = Nothing+    , _reaFileId = pReaFileId_+    }++-- | The revision of the model to diff the uploaded model against. If set,+-- the uploaded model is diffed against the provided revision and those+-- differences are merged with any changes made to the model after the+-- provided revision. If not set, the uploaded model replaces the current+-- model on the server.+reaBaseRevision :: Lens' RealtimeUpdate (Maybe Text)+reaBaseRevision+  = lens _reaBaseRevision+      (\ s a -> s{_reaBaseRevision = a})++-- | The ID of the file that the Realtime API data model is associated with.+reaFileId :: Lens' RealtimeUpdate Text+reaFileId+  = lens _reaFileId (\ s a -> s{_reaFileId = a})++instance GoogleRequest RealtimeUpdate where+        type Rs RealtimeUpdate = ()+        requestClient RealtimeUpdate{..}+          = go _reaFileId _reaBaseRevision (Just AltJSON)+              driveService+          where go :<|> _+                  = buildClient (Proxy :: Proxy RealtimeUpdateResource)+                      mempty++instance GoogleRequest (MediaUpload RealtimeUpdate)+         where+        type Rs (MediaUpload RealtimeUpdate) = ()+        requestClient (MediaUpload RealtimeUpdate{..} body)+          = go _reaFileId _reaBaseRevision (Just AltJSON)+              (Just AltMedia)+              body+              driveService+          where _ :<|> go+                  = buildClient (Proxy :: Proxy RealtimeUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Replies/Delete.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Replies.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a reply.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.replies.delete@.+module Network.Google.Resource.Drive.Replies.Delete+    (+    -- * REST Resource+      RepliesDeleteResource++    -- * Creating a Request+    , repliesDelete+    , RepliesDelete++    -- * Request Lenses+    , rdReplyId+    , rdFileId+    , rdCommentId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.replies.delete@ method which the+-- 'RepliesDelete' request conforms to.+type RepliesDeleteResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "comments" :>+               Capture "commentId" Text :>+                 "replies" :>+                   Capture "replyId" Text :>+                     QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes a reply.+--+-- /See:/ 'repliesDelete' smart constructor.+data RepliesDelete = RepliesDelete+    { _rdReplyId   :: !Text+    , _rdFileId    :: !Text+    , _rdCommentId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RepliesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rdReplyId'+--+-- * 'rdFileId'+--+-- * 'rdCommentId'+repliesDelete+    :: Text -- ^ 'rdReplyId'+    -> Text -- ^ 'rdFileId'+    -> Text -- ^ 'rdCommentId'+    -> RepliesDelete+repliesDelete pRdReplyId_ pRdFileId_ pRdCommentId_ =+    RepliesDelete+    { _rdReplyId = pRdReplyId_+    , _rdFileId = pRdFileId_+    , _rdCommentId = pRdCommentId_+    }++-- | The ID of the reply.+rdReplyId :: Lens' RepliesDelete Text+rdReplyId+  = lens _rdReplyId (\ s a -> s{_rdReplyId = a})++-- | The ID of the file.+rdFileId :: Lens' RepliesDelete Text+rdFileId = lens _rdFileId (\ s a -> s{_rdFileId = a})++-- | The ID of the comment.+rdCommentId :: Lens' RepliesDelete Text+rdCommentId+  = lens _rdCommentId (\ s a -> s{_rdCommentId = a})++instance GoogleRequest RepliesDelete where+        type Rs RepliesDelete = ()+        requestClient RepliesDelete{..}+          = go _rdFileId _rdCommentId _rdReplyId (Just AltJSON)+              driveService+          where go+                  = buildClient (Proxy :: Proxy RepliesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Replies/Get.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Replies.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a reply.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.replies.get@.+module Network.Google.Resource.Drive.Replies.Get+    (+    -- * REST Resource+      RepliesGetResource++    -- * Creating a Request+    , repliesGet+    , RepliesGet++    -- * Request Lenses+    , rgReplyId+    , rgFileId+    , rgCommentId+    , rgIncludeDeleted+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.replies.get@ method which the+-- 'RepliesGet' request conforms to.+type RepliesGetResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "comments" :>+               Capture "commentId" Text :>+                 "replies" :>+                   Capture "replyId" Text :>+                     QueryParam "includeDeleted" Bool :>+                       QueryParam "alt" AltJSON :> Get '[JSON] CommentReply++-- | Gets a reply.+--+-- /See:/ 'repliesGet' smart constructor.+data RepliesGet = RepliesGet+    { _rgReplyId        :: !Text+    , _rgFileId         :: !Text+    , _rgCommentId      :: !Text+    , _rgIncludeDeleted :: !Bool+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RepliesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rgReplyId'+--+-- * 'rgFileId'+--+-- * 'rgCommentId'+--+-- * 'rgIncludeDeleted'+repliesGet+    :: Text -- ^ 'rgReplyId'+    -> Text -- ^ 'rgFileId'+    -> Text -- ^ 'rgCommentId'+    -> RepliesGet+repliesGet pRgReplyId_ pRgFileId_ pRgCommentId_ =+    RepliesGet+    { _rgReplyId = pRgReplyId_+    , _rgFileId = pRgFileId_+    , _rgCommentId = pRgCommentId_+    , _rgIncludeDeleted = False+    }++-- | The ID of the reply.+rgReplyId :: Lens' RepliesGet Text+rgReplyId+  = lens _rgReplyId (\ s a -> s{_rgReplyId = a})++-- | The ID of the file.+rgFileId :: Lens' RepliesGet Text+rgFileId = lens _rgFileId (\ s a -> s{_rgFileId = a})++-- | The ID of the comment.+rgCommentId :: Lens' RepliesGet Text+rgCommentId+  = lens _rgCommentId (\ s a -> s{_rgCommentId = a})++-- | If set, this will succeed when retrieving a deleted reply.+rgIncludeDeleted :: Lens' RepliesGet Bool+rgIncludeDeleted+  = lens _rgIncludeDeleted+      (\ s a -> s{_rgIncludeDeleted = a})++instance GoogleRequest RepliesGet where+        type Rs RepliesGet = CommentReply+        requestClient RepliesGet{..}+          = go _rgFileId _rgCommentId _rgReplyId+              (Just _rgIncludeDeleted)+              (Just AltJSON)+              driveService+          where go+                  = buildClient (Proxy :: Proxy RepliesGetResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Replies/Insert.hs view
@@ -0,0 +1,109 @@+{-# 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.Drive.Replies.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new reply to the given comment.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.replies.insert@.+module Network.Google.Resource.Drive.Replies.Insert+    (+    -- * REST Resource+      RepliesInsertResource++    -- * Creating a Request+    , repliesInsert+    , RepliesInsert++    -- * Request Lenses+    , riPayload+    , riFileId+    , riCommentId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.replies.insert@ method which the+-- 'RepliesInsert' request conforms to.+type RepliesInsertResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "comments" :>+               Capture "commentId" Text :>+                 "replies" :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] CommentReply :>+                       Post '[JSON] CommentReply++-- | Creates a new reply to the given comment.+--+-- /See:/ 'repliesInsert' smart constructor.+data RepliesInsert = RepliesInsert+    { _riPayload   :: !CommentReply+    , _riFileId    :: !Text+    , _riCommentId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RepliesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'riPayload'+--+-- * 'riFileId'+--+-- * 'riCommentId'+repliesInsert+    :: CommentReply -- ^ 'riPayload'+    -> Text -- ^ 'riFileId'+    -> Text -- ^ 'riCommentId'+    -> RepliesInsert+repliesInsert pRiPayload_ pRiFileId_ pRiCommentId_ =+    RepliesInsert+    { _riPayload = pRiPayload_+    , _riFileId = pRiFileId_+    , _riCommentId = pRiCommentId_+    }++-- | Multipart request metadata.+riPayload :: Lens' RepliesInsert CommentReply+riPayload+  = lens _riPayload (\ s a -> s{_riPayload = a})++-- | The ID of the file.+riFileId :: Lens' RepliesInsert Text+riFileId = lens _riFileId (\ s a -> s{_riFileId = a})++-- | The ID of the comment.+riCommentId :: Lens' RepliesInsert Text+riCommentId+  = lens _riCommentId (\ s a -> s{_riCommentId = a})++instance GoogleRequest RepliesInsert where+        type Rs RepliesInsert = CommentReply+        requestClient RepliesInsert{..}+          = go _riFileId _riCommentId (Just AltJSON) _riPayload+              driveService+          where go+                  = buildClient (Proxy :: Proxy RepliesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Replies/List.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Replies.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all of the replies to a comment.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.replies.list@.+module Network.Google.Resource.Drive.Replies.List+    (+    -- * REST Resource+      RepliesListResource++    -- * Creating a Request+    , repliesList+    , RepliesList++    -- * Request Lenses+    , rlPageToken+    , rlFileId+    , rlCommentId+    , rlMaxResults+    , rlIncludeDeleted+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.replies.list@ method which the+-- 'RepliesList' request conforms to.+type RepliesListResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "comments" :>+               Capture "commentId" Text :>+                 "replies" :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Int32) :>+                       QueryParam "includeDeleted" Bool :>+                         QueryParam "alt" AltJSON :>+                           Get '[JSON] CommentReplyList++-- | Lists all of the replies to a comment.+--+-- /See:/ 'repliesList' smart constructor.+data RepliesList = RepliesList+    { _rlPageToken      :: !(Maybe Text)+    , _rlFileId         :: !Text+    , _rlCommentId      :: !Text+    , _rlMaxResults     :: !(Textual Int32)+    , _rlIncludeDeleted :: !Bool+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RepliesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rlPageToken'+--+-- * 'rlFileId'+--+-- * 'rlCommentId'+--+-- * 'rlMaxResults'+--+-- * 'rlIncludeDeleted'+repliesList+    :: Text -- ^ 'rlFileId'+    -> Text -- ^ 'rlCommentId'+    -> RepliesList+repliesList pRlFileId_ pRlCommentId_ =+    RepliesList+    { _rlPageToken = Nothing+    , _rlFileId = pRlFileId_+    , _rlCommentId = pRlCommentId_+    , _rlMaxResults = 20+    , _rlIncludeDeleted = False+    }++-- | The continuation token, used to page through large result sets. To get+-- the next page of results, set this parameter to the value of+-- \"nextPageToken\" from the previous response.+rlPageToken :: Lens' RepliesList (Maybe Text)+rlPageToken+  = lens _rlPageToken (\ s a -> s{_rlPageToken = a})++-- | The ID of the file.+rlFileId :: Lens' RepliesList Text+rlFileId = lens _rlFileId (\ s a -> s{_rlFileId = a})++-- | The ID of the comment.+rlCommentId :: Lens' RepliesList Text+rlCommentId+  = lens _rlCommentId (\ s a -> s{_rlCommentId = a})++-- | The maximum number of replies to include in the response, used for+-- paging.+rlMaxResults :: Lens' RepliesList Int32+rlMaxResults+  = lens _rlMaxResults (\ s a -> s{_rlMaxResults = a})+      . _Coerce++-- | If set, all replies, including deleted replies (with content stripped)+-- will be returned.+rlIncludeDeleted :: Lens' RepliesList Bool+rlIncludeDeleted+  = lens _rlIncludeDeleted+      (\ s a -> s{_rlIncludeDeleted = a})++instance GoogleRequest RepliesList where+        type Rs RepliesList = CommentReplyList+        requestClient RepliesList{..}+          = go _rlFileId _rlCommentId _rlPageToken+              (Just _rlMaxResults)+              (Just _rlIncludeDeleted)+              (Just AltJSON)+              driveService+          where go+                  = buildClient (Proxy :: Proxy RepliesListResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Replies/Patch.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Replies.Patch+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing reply. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.replies.patch@.+module Network.Google.Resource.Drive.Replies.Patch+    (+    -- * REST Resource+      RepliesPatchResource++    -- * Creating a Request+    , repliesPatch+    , RepliesPatch++    -- * Request Lenses+    , rpPayload+    , rpReplyId+    , rpFileId+    , rpCommentId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.replies.patch@ method which the+-- 'RepliesPatch' request conforms to.+type RepliesPatchResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "comments" :>+               Capture "commentId" Text :>+                 "replies" :>+                   Capture "replyId" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] CommentReply :>+                         Patch '[JSON] CommentReply++-- | Updates an existing reply. This method supports patch semantics.+--+-- /See:/ 'repliesPatch' smart constructor.+data RepliesPatch = RepliesPatch+    { _rpPayload   :: !CommentReply+    , _rpReplyId   :: !Text+    , _rpFileId    :: !Text+    , _rpCommentId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RepliesPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rpPayload'+--+-- * 'rpReplyId'+--+-- * 'rpFileId'+--+-- * 'rpCommentId'+repliesPatch+    :: CommentReply -- ^ 'rpPayload'+    -> Text -- ^ 'rpReplyId'+    -> Text -- ^ 'rpFileId'+    -> Text -- ^ 'rpCommentId'+    -> RepliesPatch+repliesPatch pRpPayload_ pRpReplyId_ pRpFileId_ pRpCommentId_ =+    RepliesPatch+    { _rpPayload = pRpPayload_+    , _rpReplyId = pRpReplyId_+    , _rpFileId = pRpFileId_+    , _rpCommentId = pRpCommentId_+    }++-- | Multipart request metadata.+rpPayload :: Lens' RepliesPatch CommentReply+rpPayload+  = lens _rpPayload (\ s a -> s{_rpPayload = a})++-- | The ID of the reply.+rpReplyId :: Lens' RepliesPatch Text+rpReplyId+  = lens _rpReplyId (\ s a -> s{_rpReplyId = a})++-- | The ID of the file.+rpFileId :: Lens' RepliesPatch Text+rpFileId = lens _rpFileId (\ s a -> s{_rpFileId = a})++-- | The ID of the comment.+rpCommentId :: Lens' RepliesPatch Text+rpCommentId+  = lens _rpCommentId (\ s a -> s{_rpCommentId = a})++instance GoogleRequest RepliesPatch where+        type Rs RepliesPatch = CommentReply+        requestClient RepliesPatch{..}+          = go _rpFileId _rpCommentId _rpReplyId (Just AltJSON)+              _rpPayload+              driveService+          where go+                  = buildClient (Proxy :: Proxy RepliesPatchResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Replies/Update.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Replies.Update+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing reply.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.replies.update@.+module Network.Google.Resource.Drive.Replies.Update+    (+    -- * REST Resource+      RepliesUpdateResource++    -- * Creating a Request+    , repliesUpdate+    , RepliesUpdate++    -- * Request Lenses+    , ruPayload+    , ruReplyId+    , ruFileId+    , ruCommentId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.replies.update@ method which the+-- 'RepliesUpdate' request conforms to.+type RepliesUpdateResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "comments" :>+               Capture "commentId" Text :>+                 "replies" :>+                   Capture "replyId" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] CommentReply :>+                         Put '[JSON] CommentReply++-- | Updates an existing reply.+--+-- /See:/ 'repliesUpdate' smart constructor.+data RepliesUpdate = RepliesUpdate+    { _ruPayload   :: !CommentReply+    , _ruReplyId   :: !Text+    , _ruFileId    :: !Text+    , _ruCommentId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RepliesUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ruPayload'+--+-- * 'ruReplyId'+--+-- * 'ruFileId'+--+-- * 'ruCommentId'+repliesUpdate+    :: CommentReply -- ^ 'ruPayload'+    -> Text -- ^ 'ruReplyId'+    -> Text -- ^ 'ruFileId'+    -> Text -- ^ 'ruCommentId'+    -> RepliesUpdate+repliesUpdate pRuPayload_ pRuReplyId_ pRuFileId_ pRuCommentId_ =+    RepliesUpdate+    { _ruPayload = pRuPayload_+    , _ruReplyId = pRuReplyId_+    , _ruFileId = pRuFileId_+    , _ruCommentId = pRuCommentId_+    }++-- | Multipart request metadata.+ruPayload :: Lens' RepliesUpdate CommentReply+ruPayload+  = lens _ruPayload (\ s a -> s{_ruPayload = a})++-- | The ID of the reply.+ruReplyId :: Lens' RepliesUpdate Text+ruReplyId+  = lens _ruReplyId (\ s a -> s{_ruReplyId = a})++-- | The ID of the file.+ruFileId :: Lens' RepliesUpdate Text+ruFileId = lens _ruFileId (\ s a -> s{_ruFileId = a})++-- | The ID of the comment.+ruCommentId :: Lens' RepliesUpdate Text+ruCommentId+  = lens _ruCommentId (\ s a -> s{_ruCommentId = a})++instance GoogleRequest RepliesUpdate where+        type Rs RepliesUpdate = CommentReply+        requestClient RepliesUpdate{..}+          = go _ruFileId _ruCommentId _ruReplyId (Just AltJSON)+              _ruPayload+              driveService+          where go+                  = buildClient (Proxy :: Proxy RepliesUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Revisions/Delete.hs view
@@ -0,0 +1,96 @@+{-# 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.Drive.Revisions.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes a revision.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.revisions.delete@.+module Network.Google.Resource.Drive.Revisions.Delete+    (+    -- * REST Resource+      RevisionsDeleteResource++    -- * Creating a Request+    , revisionsDelete+    , RevisionsDelete++    -- * Request Lenses+    , rFileId+    , rRevisionId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.revisions.delete@ method which the+-- 'RevisionsDelete' request conforms to.+type RevisionsDeleteResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "revisions" :>+               Capture "revisionId" Text :>+                 QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Removes a revision.+--+-- /See:/ 'revisionsDelete' smart constructor.+data RevisionsDelete = RevisionsDelete+    { _rFileId     :: !Text+    , _rRevisionId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RevisionsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rFileId'+--+-- * 'rRevisionId'+revisionsDelete+    :: Text -- ^ 'rFileId'+    -> Text -- ^ 'rRevisionId'+    -> RevisionsDelete+revisionsDelete pRFileId_ pRRevisionId_ =+    RevisionsDelete+    { _rFileId = pRFileId_+    , _rRevisionId = pRRevisionId_+    }++-- | The ID of the file.+rFileId :: Lens' RevisionsDelete Text+rFileId = lens _rFileId (\ s a -> s{_rFileId = a})++-- | The ID of the revision.+rRevisionId :: Lens' RevisionsDelete Text+rRevisionId+  = lens _rRevisionId (\ s a -> s{_rRevisionId = a})++instance GoogleRequest RevisionsDelete where+        type Rs RevisionsDelete = ()+        requestClient RevisionsDelete{..}+          = go _rFileId _rRevisionId (Just AltJSON)+              driveService+          where go+                  = buildClient+                      (Proxy :: Proxy RevisionsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Revisions/Get.hs view
@@ -0,0 +1,97 @@+{-# 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.Drive.Revisions.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a specific revision.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.revisions.get@.+module Network.Google.Resource.Drive.Revisions.Get+    (+    -- * REST Resource+      RevisionsGetResource++    -- * Creating a Request+    , revisionsGet+    , RevisionsGet++    -- * Request Lenses+    , rggFileId+    , rggRevisionId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.revisions.get@ method which the+-- 'RevisionsGet' request conforms to.+type RevisionsGetResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "revisions" :>+               Capture "revisionId" Text :>+                 QueryParam "alt" AltJSON :> Get '[JSON] Revision++-- | Gets a specific revision.+--+-- /See:/ 'revisionsGet' smart constructor.+data RevisionsGet = RevisionsGet+    { _rggFileId     :: !Text+    , _rggRevisionId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RevisionsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rggFileId'+--+-- * 'rggRevisionId'+revisionsGet+    :: Text -- ^ 'rggFileId'+    -> Text -- ^ 'rggRevisionId'+    -> RevisionsGet+revisionsGet pRggFileId_ pRggRevisionId_ =+    RevisionsGet+    { _rggFileId = pRggFileId_+    , _rggRevisionId = pRggRevisionId_+    }++-- | The ID of the file.+rggFileId :: Lens' RevisionsGet Text+rggFileId+  = lens _rggFileId (\ s a -> s{_rggFileId = a})++-- | The ID of the revision.+rggRevisionId :: Lens' RevisionsGet Text+rggRevisionId+  = lens _rggRevisionId+      (\ s a -> s{_rggRevisionId = a})++instance GoogleRequest RevisionsGet where+        type Rs RevisionsGet = Revision+        requestClient RevisionsGet{..}+          = go _rggFileId _rggRevisionId (Just AltJSON)+              driveService+          where go+                  = buildClient (Proxy :: Proxy RevisionsGetResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Revisions/List.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Revisions.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists a file\'s revisions.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.revisions.list@.+module Network.Google.Resource.Drive.Revisions.List+    (+    -- * REST Resource+      RevisionsListResource++    -- * Creating a Request+    , revisionsList+    , RevisionsList++    -- * Request Lenses+    , rllFileId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.revisions.list@ method which the+-- 'RevisionsList' request conforms to.+type RevisionsListResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "revisions" :>+               QueryParam "alt" AltJSON :> Get '[JSON] RevisionList++-- | Lists a file\'s revisions.+--+-- /See:/ 'revisionsList' smart constructor.+newtype RevisionsList = RevisionsList+    { _rllFileId :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RevisionsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rllFileId'+revisionsList+    :: Text -- ^ 'rllFileId'+    -> RevisionsList+revisionsList pRllFileId_ =+    RevisionsList+    { _rllFileId = pRllFileId_+    }++-- | The ID of the file.+rllFileId :: Lens' RevisionsList Text+rllFileId+  = lens _rllFileId (\ s a -> s{_rllFileId = a})++instance GoogleRequest RevisionsList where+        type Rs RevisionsList = RevisionList+        requestClient RevisionsList{..}+          = go _rllFileId (Just AltJSON) driveService+          where go+                  = buildClient (Proxy :: Proxy RevisionsListResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Revisions/Patch.hs view
@@ -0,0 +1,110 @@+{-# 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.Drive.Revisions.Patch+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a revision. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.revisions.patch@.+module Network.Google.Resource.Drive.Revisions.Patch+    (+    -- * REST Resource+      RevisionsPatchResource++    -- * Creating a Request+    , revisionsPatch+    , RevisionsPatch++    -- * Request Lenses+    , rppPayload+    , rppFileId+    , rppRevisionId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.revisions.patch@ method which the+-- 'RevisionsPatch' request conforms to.+type RevisionsPatchResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "revisions" :>+               Capture "revisionId" Text :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] Revision :> Patch '[JSON] Revision++-- | Updates a revision. This method supports patch semantics.+--+-- /See:/ 'revisionsPatch' smart constructor.+data RevisionsPatch = RevisionsPatch+    { _rppPayload    :: !Revision+    , _rppFileId     :: !Text+    , _rppRevisionId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RevisionsPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rppPayload'+--+-- * 'rppFileId'+--+-- * 'rppRevisionId'+revisionsPatch+    :: Revision -- ^ 'rppPayload'+    -> Text -- ^ 'rppFileId'+    -> Text -- ^ 'rppRevisionId'+    -> RevisionsPatch+revisionsPatch pRppPayload_ pRppFileId_ pRppRevisionId_ =+    RevisionsPatch+    { _rppPayload = pRppPayload_+    , _rppFileId = pRppFileId_+    , _rppRevisionId = pRppRevisionId_+    }++-- | Multipart request metadata.+rppPayload :: Lens' RevisionsPatch Revision+rppPayload+  = lens _rppPayload (\ s a -> s{_rppPayload = a})++-- | The ID for the file.+rppFileId :: Lens' RevisionsPatch Text+rppFileId+  = lens _rppFileId (\ s a -> s{_rppFileId = a})++-- | The ID for the revision.+rppRevisionId :: Lens' RevisionsPatch Text+rppRevisionId+  = lens _rppRevisionId+      (\ s a -> s{_rppRevisionId = a})++instance GoogleRequest RevisionsPatch where+        type Rs RevisionsPatch = Revision+        requestClient RevisionsPatch{..}+          = go _rppFileId _rppRevisionId (Just AltJSON)+              _rppPayload+              driveService+          where go+                  = buildClient (Proxy :: Proxy RevisionsPatchResource)+                      mempty
+ gen/Network/Google/Resource/Drive/Revisions/Update.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Drive.Revisions.Update+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a revision.+--+-- /See:/ <https://developers.google.com/drive/ Drive API Reference> for @drive.revisions.update@.+module Network.Google.Resource.Drive.Revisions.Update+    (+    -- * REST Resource+      RevisionsUpdateResource++    -- * Creating a Request+    , revisionsUpdate+    , RevisionsUpdate++    -- * Request Lenses+    , revPayload+    , revFileId+    , revRevisionId+    ) where++import           Network.Google.Drive.Types+import           Network.Google.Prelude++-- | A resource alias for @drive.revisions.update@ method which the+-- 'RevisionsUpdate' request conforms to.+type RevisionsUpdateResource =+     "drive" :>+       "v2" :>+         "files" :>+           Capture "fileId" Text :>+             "revisions" :>+               Capture "revisionId" Text :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] Revision :> Put '[JSON] Revision++-- | Updates a revision.+--+-- /See:/ 'revisionsUpdate' smart constructor.+data RevisionsUpdate = RevisionsUpdate+    { _revPayload    :: !Revision+    , _revFileId     :: !Text+    , _revRevisionId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RevisionsUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'revPayload'+--+-- * 'revFileId'+--+-- * 'revRevisionId'+revisionsUpdate+    :: Revision -- ^ 'revPayload'+    -> Text -- ^ 'revFileId'+    -> Text -- ^ 'revRevisionId'+    -> RevisionsUpdate+revisionsUpdate pRevPayload_ pRevFileId_ pRevRevisionId_ =+    RevisionsUpdate+    { _revPayload = pRevPayload_+    , _revFileId = pRevFileId_+    , _revRevisionId = pRevRevisionId_+    }++-- | Multipart request metadata.+revPayload :: Lens' RevisionsUpdate Revision+revPayload+  = lens _revPayload (\ s a -> s{_revPayload = a})++-- | The ID for the file.+revFileId :: Lens' RevisionsUpdate Text+revFileId+  = lens _revFileId (\ s a -> s{_revFileId = a})++-- | The ID for the revision.+revRevisionId :: Lens' RevisionsUpdate Text+revRevisionId+  = lens _revRevisionId+      (\ s a -> s{_revRevisionId = a})++instance GoogleRequest RevisionsUpdate where+        type Rs RevisionsUpdate = Revision+        requestClient RevisionsUpdate{..}+          = go _revFileId _revRevisionId (Just AltJSON)+              _revPayload+              driveService+          where go+                  = buildClient+                      (Proxy :: Proxy RevisionsUpdateResource)+                      mempty
+ gogol-drive.cabal view
@@ -0,0 +1,105 @@+name:                  gogol-drive+version:               0.0.1+synopsis:              Google Drive SDK.+homepage:              https://github.com/brendanhay/gogol+bug-reports:           https://github.com/brendanhay/gogol/issues+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2015 Brendan Hay+category:              Network, Google, Cloud+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md++description:+    The API to interact with Drive.+    .+    /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 @v2@+    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.Drive+        , Network.Google.Drive.Types+        , Network.Google.Resource.Drive.About.Get+        , Network.Google.Resource.Drive.Apps.Get+        , Network.Google.Resource.Drive.Apps.List+        , Network.Google.Resource.Drive.Changes.Get+        , Network.Google.Resource.Drive.Changes.List+        , Network.Google.Resource.Drive.Changes.Watch+        , Network.Google.Resource.Drive.Channels.Stop+        , Network.Google.Resource.Drive.Children.Delete+        , Network.Google.Resource.Drive.Children.Get+        , Network.Google.Resource.Drive.Children.Insert+        , Network.Google.Resource.Drive.Children.List+        , Network.Google.Resource.Drive.Comments.Delete+        , Network.Google.Resource.Drive.Comments.Get+        , Network.Google.Resource.Drive.Comments.Insert+        , Network.Google.Resource.Drive.Comments.List+        , Network.Google.Resource.Drive.Comments.Patch+        , Network.Google.Resource.Drive.Comments.Update+        , Network.Google.Resource.Drive.Files.Copy+        , Network.Google.Resource.Drive.Files.Delete+        , Network.Google.Resource.Drive.Files.EmptyTrash+        , Network.Google.Resource.Drive.Files.GenerateIds+        , Network.Google.Resource.Drive.Files.Get+        , Network.Google.Resource.Drive.Files.Insert+        , Network.Google.Resource.Drive.Files.List+        , Network.Google.Resource.Drive.Files.Patch+        , Network.Google.Resource.Drive.Files.Touch+        , Network.Google.Resource.Drive.Files.Trash+        , Network.Google.Resource.Drive.Files.Untrash+        , Network.Google.Resource.Drive.Files.Update+        , Network.Google.Resource.Drive.Files.Watch+        , Network.Google.Resource.Drive.Parents.Delete+        , Network.Google.Resource.Drive.Parents.Get+        , Network.Google.Resource.Drive.Parents.Insert+        , Network.Google.Resource.Drive.Parents.List+        , Network.Google.Resource.Drive.Permissions.Delete+        , Network.Google.Resource.Drive.Permissions.Get+        , Network.Google.Resource.Drive.Permissions.GetIdForEmail+        , Network.Google.Resource.Drive.Permissions.Insert+        , Network.Google.Resource.Drive.Permissions.List+        , Network.Google.Resource.Drive.Permissions.Patch+        , Network.Google.Resource.Drive.Permissions.Update+        , Network.Google.Resource.Drive.Properties.Delete+        , Network.Google.Resource.Drive.Properties.Get+        , Network.Google.Resource.Drive.Properties.Insert+        , Network.Google.Resource.Drive.Properties.List+        , Network.Google.Resource.Drive.Properties.Patch+        , Network.Google.Resource.Drive.Properties.Update+        , Network.Google.Resource.Drive.Realtime.Get+        , Network.Google.Resource.Drive.Realtime.Update+        , Network.Google.Resource.Drive.Replies.Delete+        , Network.Google.Resource.Drive.Replies.Get+        , Network.Google.Resource.Drive.Replies.Insert+        , Network.Google.Resource.Drive.Replies.List+        , Network.Google.Resource.Drive.Replies.Patch+        , Network.Google.Resource.Drive.Replies.Update+        , Network.Google.Resource.Drive.Revisions.Delete+        , Network.Google.Resource.Drive.Revisions.Get+        , Network.Google.Resource.Drive.Revisions.List+        , Network.Google.Resource.Drive.Revisions.Patch+        , Network.Google.Resource.Drive.Revisions.Update++    other-modules:+          Network.Google.Drive.Types.Product+        , Network.Google.Drive.Types.Sum++    build-depends:+          gogol-core == 0.0.1.*+        , base       >= 4.7 && < 5