packages feed

gogol-firestore (empty) → 0.4.0

raw patch · 37 files changed

+12622/−0 lines, 37 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-firestore++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.3.0`+++## Description++A client library for the Google Cloud Firestore.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/gogol/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `gogol-gen` for more information.+++## Licence++`gogol-firestore` 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/FireStore.hs view
@@ -0,0 +1,780 @@+{-# LANGUAGE DataKinds         #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators     #-}++{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module      : Network.Google.FireStore+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Accesses the NoSQL document database built for automatic scaling, high+-- performance, and ease of application development.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference>+module Network.Google.FireStore+    (+    -- * Service Configuration+      fireStoreService++    -- * OAuth Scopes+    , cloudPlatformScope+    , datastoreScope++    -- * API Declaration+    , FireStoreAPI++    -- * Resources++    -- ** firestore.projects.databases.collectionGroups.fields.get+    , module Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Fields.Get++    -- ** firestore.projects.databases.collectionGroups.fields.list+    , module Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Fields.List++    -- ** firestore.projects.databases.collectionGroups.fields.patch+    , module Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Fields.Patch++    -- ** firestore.projects.databases.collectionGroups.indexes.create+    , module Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Indexes.Create++    -- ** firestore.projects.databases.collectionGroups.indexes.delete+    , module Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Indexes.Delete++    -- ** firestore.projects.databases.collectionGroups.indexes.get+    , module Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Indexes.Get++    -- ** firestore.projects.databases.collectionGroups.indexes.list+    , module Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Indexes.List++    -- ** firestore.projects.databases.documents.batchGet+    , module Network.Google.Resource.FireStore.Projects.Databases.Documents.BatchGet++    -- ** firestore.projects.databases.documents.beginTransaction+    , module Network.Google.Resource.FireStore.Projects.Databases.Documents.BeginTransaction++    -- ** firestore.projects.databases.documents.commit+    , module Network.Google.Resource.FireStore.Projects.Databases.Documents.Commit++    -- ** firestore.projects.databases.documents.createDocument+    , module Network.Google.Resource.FireStore.Projects.Databases.Documents.CreateDocument++    -- ** firestore.projects.databases.documents.delete+    , module Network.Google.Resource.FireStore.Projects.Databases.Documents.Delete++    -- ** firestore.projects.databases.documents.get+    , module Network.Google.Resource.FireStore.Projects.Databases.Documents.Get++    -- ** firestore.projects.databases.documents.list+    , module Network.Google.Resource.FireStore.Projects.Databases.Documents.List++    -- ** firestore.projects.databases.documents.listCollectionIds+    , module Network.Google.Resource.FireStore.Projects.Databases.Documents.ListCollectionIds++    -- ** firestore.projects.databases.documents.listen+    , module Network.Google.Resource.FireStore.Projects.Databases.Documents.Listen++    -- ** firestore.projects.databases.documents.patch+    , module Network.Google.Resource.FireStore.Projects.Databases.Documents.Patch++    -- ** firestore.projects.databases.documents.rollback+    , module Network.Google.Resource.FireStore.Projects.Databases.Documents.Rollback++    -- ** firestore.projects.databases.documents.runQuery+    , module Network.Google.Resource.FireStore.Projects.Databases.Documents.RunQuery++    -- ** firestore.projects.databases.documents.write+    , module Network.Google.Resource.FireStore.Projects.Databases.Documents.Write++    -- ** firestore.projects.databases.exportDocuments+    , module Network.Google.Resource.FireStore.Projects.Databases.ExportDocuments++    -- ** firestore.projects.databases.importDocuments+    , module Network.Google.Resource.FireStore.Projects.Databases.ImportDocuments++    -- ** firestore.projects.databases.operations.cancel+    , module Network.Google.Resource.FireStore.Projects.Databases.Operations.Cancel++    -- ** firestore.projects.databases.operations.delete+    , module Network.Google.Resource.FireStore.Projects.Databases.Operations.Delete++    -- ** firestore.projects.databases.operations.get+    , module Network.Google.Resource.FireStore.Projects.Databases.Operations.Get++    -- ** firestore.projects.databases.operations.list+    , module Network.Google.Resource.FireStore.Projects.Databases.Operations.List++    -- ** firestore.projects.locations.get+    , module Network.Google.Resource.FireStore.Projects.Locations.Get++    -- ** firestore.projects.locations.list+    , module Network.Google.Resource.FireStore.Projects.Locations.List++    -- * Types++    -- ** WriteRequest+    , WriteRequest+    , writeRequest+    , wrStreamToken+    , wrLabels+    , wrWrites+    , wrStreamId++    -- ** LatLng+    , LatLng+    , latLng+    , llLatitude+    , llLongitude++    -- ** GoogleFirestoreAdminV1IndexFieldOrder+    , GoogleFirestoreAdminV1IndexFieldOrder (..)++    -- ** WriteResult+    , WriteResult+    , writeResult+    , wrUpdateTime+    , wrTransformResults++    -- ** GoogleFirestoreAdminV1Field+    , GoogleFirestoreAdminV1Field+    , googleFirestoreAdminV1Field+    , gfavfIndexConfig+    , gfavfName++    -- ** TransactionOptions+    , TransactionOptions+    , transactionOptions+    , toReadWrite+    , toReadOnly++    -- ** GoogleFirestoreAdminV1IndexConfigDeltaChangeType+    , GoogleFirestoreAdminV1IndexConfigDeltaChangeType (..)++    -- ** Status+    , Status+    , status+    , sDetails+    , sCode+    , sMessage++    -- ** GoogleLongrunningOperationMetadata+    , GoogleLongrunningOperationMetadata+    , googleLongrunningOperationMetadata+    , glomAddtional++    -- ** Precondition+    , Precondition+    , precondition+    , pExists+    , pUpdateTime++    -- ** ReadWrite+    , ReadWrite+    , readWrite+    , rwRetryTransaction++    -- ** RollbackRequest+    , RollbackRequest+    , rollbackRequest+    , rrTransaction++    -- ** GoogleFirestoreAdminV1ExportDocumentsRequest+    , GoogleFirestoreAdminV1ExportDocumentsRequest+    , googleFirestoreAdminV1ExportDocumentsRequest+    , gfavedrCollectionIds+    , gfavedrOutputURIPrefix++    -- ** TargetChange+    , TargetChange+    , targetChange+    , tcReadTime+    , tcResumeToken+    , tcCause+    , tcTargetChangeType+    , tcTargetIds++    -- ** ListLocationsResponse+    , ListLocationsResponse+    , listLocationsResponse+    , llrNextPageToken+    , llrLocations++    -- ** GoogleFirestoreAdminV1IndexState+    , GoogleFirestoreAdminV1IndexState (..)++    -- ** CompositeFilterOp+    , CompositeFilterOp (..)++    -- ** Cursor+    , Cursor+    , cursor+    , cValues+    , cBefore++    -- ** GoogleFirestoreAdminV1ImportDocumentsMetadata+    , GoogleFirestoreAdminV1ImportDocumentsMetadata+    , googleFirestoreAdminV1ImportDocumentsMetadata+    , gfavidmProgressBytes+    , gfavidmStartTime+    , gfavidmInputURIPrefix+    , gfavidmCollectionIds+    , gfavidmProgressDocuments+    , gfavidmEndTime+    , gfavidmOperationState++    -- ** BeginTransactionRequest+    , BeginTransactionRequest+    , beginTransactionRequest+    , btrOptions++    -- ** RunQueryRequest+    , RunQueryRequest+    , runQueryRequest+    , rqrReadTime+    , rqrNewTransaction+    , rqrStructuredQuery+    , rqrTransaction++    -- ** GoogleFirestoreAdminV1IndexConfigDelta+    , GoogleFirestoreAdminV1IndexConfigDelta+    , googleFirestoreAdminV1IndexConfigDelta+    , gfavicdIndex+    , gfavicdChangeType++    -- ** GoogleFirestoreAdminV1IndexConfig+    , GoogleFirestoreAdminV1IndexConfig+    , googleFirestoreAdminV1IndexConfig+    , gfavicAncestorField+    , gfavicReverting+    , gfavicIndexes+    , gfavicUsesAncestorConfig++    -- ** GoogleFirestoreAdminV1IndexField+    , GoogleFirestoreAdminV1IndexField+    , googleFirestoreAdminV1IndexField+    , gfavifFieldPath+    , gfavifArrayConfig+    , gfavifOrder++    -- ** Write+    , Write+    , write+    , wTransform+    , wUpdateMask+    , wCurrentDocument+    , wDelete+    , wUpdate++    -- ** Location+    , Location+    , location+    , lName+    , lMetadata+    , lDisplayName+    , lLabels+    , lLocationId++    -- ** Empty+    , Empty+    , empty++    -- ** BatchGetDocumentsResponse+    , BatchGetDocumentsResponse+    , batchGetDocumentsResponse+    , bgdrReadTime+    , bgdrFound+    , bgdrTransaction+    , bgdrMissing++    -- ** CompositeFilter+    , CompositeFilter+    , compositeFilter+    , cfOp+    , cfFilters++    -- ** DocumentsTarget+    , DocumentsTarget+    , documentsTarget+    , dtDocuments++    -- ** ListenRequestLabels+    , ListenRequestLabels+    , listenRequestLabels+    , lrlAddtional++    -- ** GoogleFirestoreAdminV1Index+    , GoogleFirestoreAdminV1Index+    , googleFirestoreAdminV1Index+    , gfaviState+    , gfaviQueryScope+    , gfaviName+    , gfaviFields++    -- ** BeginTransactionResponse+    , BeginTransactionResponse+    , beginTransactionResponse+    , btrTransaction++    -- ** RunQueryResponse+    , RunQueryResponse+    , runQueryResponse+    , rReadTime+    , rSkippedResults+    , rTransaction+    , rDocument++    -- ** GoogleFirestoreAdminV1IndexQueryScope+    , GoogleFirestoreAdminV1IndexQueryScope (..)++    -- ** GoogleFirestoreAdminV1ExportDocumentsMetadata+    , GoogleFirestoreAdminV1ExportDocumentsMetadata+    , googleFirestoreAdminV1ExportDocumentsMetadata+    , gfavedmProgressBytes+    , gfavedmStartTime+    , gfavedmCollectionIds+    , gfavedmProgressDocuments+    , gfavedmEndTime+    , gfavedmOperationState+    , gfavedmOutputURIPrefix++    -- ** GoogleFirestoreAdminV1Progress+    , GoogleFirestoreAdminV1Progress+    , googleFirestoreAdminV1Progress+    , gfavpCompletedWork+    , gfavpEstimatedWork++    -- ** DocumentMask+    , DocumentMask+    , documentMask+    , dmFieldPaths++    -- ** QueryTarget+    , QueryTarget+    , queryTarget+    , qtParent+    , qtStructuredQuery++    -- ** Value+    , Value+    , value+    , vGeoPointValue+    , vBytesValue+    , vIntegerValue+    , vTimestampValue+    , vDoubleValue+    , vStringValue+    , vBooleanValue+    , vMapValue+    , vArrayValue+    , vReferenceValue+    , vNullValue++    -- ** OrderDirection+    , OrderDirection (..)++    -- ** ValueNullValue+    , ValueNullValue (..)++    -- ** StatusDetailsItem+    , StatusDetailsItem+    , statusDetailsItem+    , sdiAddtional++    -- ** DocumentTransform+    , DocumentTransform+    , documentTransform+    , dtDocument+    , dtFieldTransforms++    -- ** StructuredQuery+    , StructuredQuery+    , structuredQuery+    , sqWhere+    , sqOrderBy+    , sqStartAt+    , sqOffSet+    , sqFrom+    , sqEndAt+    , sqLimit+    , sqSelect++    -- ** ExistenceFilter+    , ExistenceFilter+    , existenceFilter+    , efTargetId+    , efCount++    -- ** GoogleFirestoreAdminV1ListFieldsResponse+    , GoogleFirestoreAdminV1ListFieldsResponse+    , googleFirestoreAdminV1ListFieldsResponse+    , gfavlfrNextPageToken+    , gfavlfrFields++    -- ** GoogleFirestoreAdminV1ImportDocumentsRequest+    , GoogleFirestoreAdminV1ImportDocumentsRequest+    , googleFirestoreAdminV1ImportDocumentsRequest+    , gfavidrInputURIPrefix+    , gfavidrCollectionIds++    -- ** GoogleFirestoreAdminV1LocationMetadata+    , GoogleFirestoreAdminV1LocationMetadata+    , googleFirestoreAdminV1LocationMetadata++    -- ** GoogleLongrunningCancelOperationRequest+    , GoogleLongrunningCancelOperationRequest+    , googleLongrunningCancelOperationRequest++    -- ** UnaryFilterOp+    , UnaryFilterOp (..)++    -- ** ListCollectionIdsResponse+    , ListCollectionIdsResponse+    , listCollectionIdsResponse+    , lcirNextPageToken+    , lcirCollectionIds++    -- ** FieldReference+    , FieldReference+    , fieldReference+    , frFieldPath++    -- ** DocumentRemove+    , DocumentRemove+    , documentRemove+    , drReadTime+    , drDocument+    , drRemovedTargetIds++    -- ** GoogleFirestoreAdminV1IndexFieldArrayConfig+    , GoogleFirestoreAdminV1IndexFieldArrayConfig (..)++    -- ** DocumentChange+    , DocumentChange+    , documentChange+    , dcDocument+    , dcTargetIds+    , dcRemovedTargetIds++    -- ** GoogleFirestoreAdminV1FieldOperationMetadata+    , GoogleFirestoreAdminV1FieldOperationMetadata+    , googleFirestoreAdminV1FieldOperationMetadata+    , gfavfomProgressBytes+    , gfavfomState+    , gfavfomField+    , gfavfomStartTime+    , gfavfomProgressDocuments+    , gfavfomIndexConfigDeltas+    , gfavfomEndTime++    -- ** GoogleFirestoreAdminV1ListIndexesResponse+    , GoogleFirestoreAdminV1ListIndexesResponse+    , googleFirestoreAdminV1ListIndexesResponse+    , gfavlirNextPageToken+    , gfavlirIndexes++    -- ** MapValue+    , MapValue+    , mapValue+    , mvFields++    -- ** BatchGetDocumentsRequest+    , BatchGetDocumentsRequest+    , batchGetDocumentsRequest+    , bReadTime+    , bNewTransaction+    , bTransaction+    , bDocuments+    , bMask++    -- ** Document+    , Document+    , document+    , dUpdateTime+    , dName+    , dCreateTime+    , dFields++    -- ** GoogleFirestoreAdminV1IndexOperationMetadataState+    , GoogleFirestoreAdminV1IndexOperationMetadataState (..)++    -- ** ArrayValue+    , ArrayValue+    , arrayValue+    , avValues++    -- ** Xgafv+    , Xgafv (..)++    -- ** CommitResponse+    , CommitResponse+    , commitResponse+    , crCommitTime+    , crWriteResults++    -- ** ListenResponse+    , ListenResponse+    , listenResponse+    , lrTargetChange+    , lrDocumentRemove+    , lrDocumentChange+    , lrFilter+    , lrDocumentDelete++    -- ** FieldFilter+    , FieldFilter+    , fieldFilter+    , ffOp+    , ffField+    , ffValue++    -- ** GoogleLongrunningOperationResponse+    , GoogleLongrunningOperationResponse+    , googleLongrunningOperationResponse+    , glorAddtional++    -- ** ListDocumentsResponse+    , ListDocumentsResponse+    , listDocumentsResponse+    , ldrNextPageToken+    , ldrDocuments++    -- ** GoogleFirestoreAdminV1ExportDocumentsResponse+    , GoogleFirestoreAdminV1ExportDocumentsResponse+    , googleFirestoreAdminV1ExportDocumentsResponse+    , gOutputURIPrefix++    -- ** FieldFilterOp+    , FieldFilterOp (..)++    -- ** Projection+    , Projection+    , projection+    , pFields++    -- ** Filter+    , Filter+    , filter'+    , fCompositeFilter+    , fFieldFilter+    , fUnaryFilter++    -- ** TargetChangeTargetChangeType+    , TargetChangeTargetChangeType (..)++    -- ** GoogleFirestoreAdminV1IndexOperationMetadata+    , GoogleFirestoreAdminV1IndexOperationMetadata+    , googleFirestoreAdminV1IndexOperationMetadata+    , gfaviomProgressBytes+    , gfaviomState+    , gfaviomStartTime+    , gfaviomProgressDocuments+    , gfaviomEndTime+    , gfaviomIndex++    -- ** LocationLabels+    , LocationLabels+    , locationLabels+    , llAddtional++    -- ** ListenRequest+    , ListenRequest+    , listenRequest+    , lrRemoveTarget+    , lrLabels+    , lrAddTarget++    -- ** GoogleFirestoreAdminV1ImportDocumentsMetadataOperationState+    , GoogleFirestoreAdminV1ImportDocumentsMetadataOperationState (..)++    -- ** CommitRequest+    , CommitRequest+    , commitRequest+    , crTransaction+    , crWrites++    -- ** LocationMetadata+    , LocationMetadata+    , locationMetadata+    , lmAddtional++    -- ** GoogleLongrunningListOperationsResponse+    , GoogleLongrunningListOperationsResponse+    , googleLongrunningListOperationsResponse+    , gllorNextPageToken+    , gllorOperations++    -- ** GoogleFirestoreAdminV1FieldOperationMetadataState+    , GoogleFirestoreAdminV1FieldOperationMetadataState (..)++    -- ** CollectionSelector+    , CollectionSelector+    , collectionSelector+    , csAllDescendants+    , csCollectionId++    -- ** ListCollectionIdsRequest+    , ListCollectionIdsRequest+    , listCollectionIdsRequest+    , lcirPageToken+    , lcirPageSize++    -- ** WriteResponse+    , WriteResponse+    , writeResponse+    , wStreamToken+    , wCommitTime+    , wWriteResults+    , wStreamId++    -- ** Order+    , Order+    , order+    , oField+    , oDirection++    -- ** DocumentDelete+    , DocumentDelete+    , documentDelete+    , ddReadTime+    , ddDocument+    , ddRemovedTargetIds++    -- ** FieldTransform+    , FieldTransform+    , fieldTransform+    , ftFieldPath+    , ftAppendMissingElements+    , ftSetToServerValue+    , ftRemoveAllFromArray++    -- ** MapValueFields+    , MapValueFields+    , mapValueFields+    , mvfAddtional++    -- ** DocumentFields+    , DocumentFields+    , documentFields+    , dfAddtional++    -- ** ReadOnly+    , ReadOnly+    , readOnly+    , roReadTime++    -- ** Target+    , Target+    , target+    , tTargetId+    , tOnce+    , tReadTime+    , tResumeToken+    , tDocuments+    , tQuery++    -- ** WriteRequestLabels+    , WriteRequestLabels+    , writeRequestLabels+    , wrlAddtional++    -- ** FieldTransformSetToServerValue+    , FieldTransformSetToServerValue (..)++    -- ** GoogleLongrunningOperation+    , GoogleLongrunningOperation+    , googleLongrunningOperation+    , gloDone+    , gloError+    , gloResponse+    , gloName+    , gloMetadata++    -- ** GoogleFirestoreAdminV1ExportDocumentsMetadataOperationState+    , GoogleFirestoreAdminV1ExportDocumentsMetadataOperationState (..)++    -- ** UnaryFilter+    , UnaryFilter+    , unaryFilter+    , ufOp+    , ufField+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude+import           Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Fields.Get+import           Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Fields.List+import           Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Fields.Patch+import           Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Indexes.Create+import           Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Indexes.Delete+import           Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Indexes.Get+import           Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Indexes.List+import           Network.Google.Resource.FireStore.Projects.Databases.Documents.BatchGet+import           Network.Google.Resource.FireStore.Projects.Databases.Documents.BeginTransaction+import           Network.Google.Resource.FireStore.Projects.Databases.Documents.Commit+import           Network.Google.Resource.FireStore.Projects.Databases.Documents.CreateDocument+import           Network.Google.Resource.FireStore.Projects.Databases.Documents.Delete+import           Network.Google.Resource.FireStore.Projects.Databases.Documents.Get+import           Network.Google.Resource.FireStore.Projects.Databases.Documents.List+import           Network.Google.Resource.FireStore.Projects.Databases.Documents.ListCollectionIds+import           Network.Google.Resource.FireStore.Projects.Databases.Documents.Listen+import           Network.Google.Resource.FireStore.Projects.Databases.Documents.Patch+import           Network.Google.Resource.FireStore.Projects.Databases.Documents.Rollback+import           Network.Google.Resource.FireStore.Projects.Databases.Documents.RunQuery+import           Network.Google.Resource.FireStore.Projects.Databases.Documents.Write+import           Network.Google.Resource.FireStore.Projects.Databases.ExportDocuments+import           Network.Google.Resource.FireStore.Projects.Databases.ImportDocuments+import           Network.Google.Resource.FireStore.Projects.Databases.Operations.Cancel+import           Network.Google.Resource.FireStore.Projects.Databases.Operations.Delete+import           Network.Google.Resource.FireStore.Projects.Databases.Operations.Get+import           Network.Google.Resource.FireStore.Projects.Databases.Operations.List+import           Network.Google.Resource.FireStore.Projects.Locations.Get+import           Network.Google.Resource.FireStore.Projects.Locations.List++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Cloud Firestore API service.+type FireStoreAPI =+     ProjectsLocationsListResource :<|>+       ProjectsLocationsGetResource+       :<|>+       ProjectsDatabasesDocumentsListCollectionIdsResource+       :<|> ProjectsDatabasesDocumentsListResource+       :<|> ProjectsDatabasesDocumentsWriteResource+       :<|> ProjectsDatabasesDocumentsCreateDocumentResource+       :<|>+       ProjectsDatabasesDocumentsBeginTransactionResource+       :<|> ProjectsDatabasesDocumentsRunQueryResource+       :<|> ProjectsDatabasesDocumentsPatchResource+       :<|> ProjectsDatabasesDocumentsGetResource+       :<|> ProjectsDatabasesDocumentsRollbackResource+       :<|> ProjectsDatabasesDocumentsBatchGetResource+       :<|> ProjectsDatabasesDocumentsDeleteResource+       :<|> ProjectsDatabasesDocumentsListenResource+       :<|> ProjectsDatabasesDocumentsCommitResource+       :<|>+       ProjectsDatabasesCollectionGroupsIndexesListResource+       :<|>+       ProjectsDatabasesCollectionGroupsIndexesGetResource+       :<|>+       ProjectsDatabasesCollectionGroupsIndexesCreateResource+       :<|>+       ProjectsDatabasesCollectionGroupsIndexesDeleteResource+       :<|>+       ProjectsDatabasesCollectionGroupsFieldsListResource+       :<|>+       ProjectsDatabasesCollectionGroupsFieldsPatchResource+       :<|>+       ProjectsDatabasesCollectionGroupsFieldsGetResource+       :<|> ProjectsDatabasesOperationsListResource+       :<|> ProjectsDatabasesOperationsGetResource+       :<|> ProjectsDatabasesOperationsCancelResource+       :<|> ProjectsDatabasesOperationsDeleteResource+       :<|> ProjectsDatabasesExportDocumentsResource+       :<|> ProjectsDatabasesImportDocumentsResource
+ gen/Network/Google/FireStore/Types.hs view
@@ -0,0 +1,629 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.FireStore.Types+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.FireStore.Types+    (+    -- * Service Configuration+      fireStoreService++    -- * OAuth Scopes+    , cloudPlatformScope+    , datastoreScope++    -- * WriteRequest+    , WriteRequest+    , writeRequest+    , wrStreamToken+    , wrLabels+    , wrWrites+    , wrStreamId++    -- * LatLng+    , LatLng+    , latLng+    , llLatitude+    , llLongitude++    -- * GoogleFirestoreAdminV1IndexFieldOrder+    , GoogleFirestoreAdminV1IndexFieldOrder (..)++    -- * WriteResult+    , WriteResult+    , writeResult+    , wrUpdateTime+    , wrTransformResults++    -- * GoogleFirestoreAdminV1Field+    , GoogleFirestoreAdminV1Field+    , googleFirestoreAdminV1Field+    , gfavfIndexConfig+    , gfavfName++    -- * TransactionOptions+    , TransactionOptions+    , transactionOptions+    , toReadWrite+    , toReadOnly++    -- * GoogleFirestoreAdminV1IndexConfigDeltaChangeType+    , GoogleFirestoreAdminV1IndexConfigDeltaChangeType (..)++    -- * Status+    , Status+    , status+    , sDetails+    , sCode+    , sMessage++    -- * GoogleLongrunningOperationMetadata+    , GoogleLongrunningOperationMetadata+    , googleLongrunningOperationMetadata+    , glomAddtional++    -- * Precondition+    , Precondition+    , precondition+    , pExists+    , pUpdateTime++    -- * ReadWrite+    , ReadWrite+    , readWrite+    , rwRetryTransaction++    -- * RollbackRequest+    , RollbackRequest+    , rollbackRequest+    , rrTransaction++    -- * GoogleFirestoreAdminV1ExportDocumentsRequest+    , GoogleFirestoreAdminV1ExportDocumentsRequest+    , googleFirestoreAdminV1ExportDocumentsRequest+    , gfavedrCollectionIds+    , gfavedrOutputURIPrefix++    -- * TargetChange+    , TargetChange+    , targetChange+    , tcReadTime+    , tcResumeToken+    , tcCause+    , tcTargetChangeType+    , tcTargetIds++    -- * ListLocationsResponse+    , ListLocationsResponse+    , listLocationsResponse+    , llrNextPageToken+    , llrLocations++    -- * GoogleFirestoreAdminV1IndexState+    , GoogleFirestoreAdminV1IndexState (..)++    -- * CompositeFilterOp+    , CompositeFilterOp (..)++    -- * Cursor+    , Cursor+    , cursor+    , cValues+    , cBefore++    -- * GoogleFirestoreAdminV1ImportDocumentsMetadata+    , GoogleFirestoreAdminV1ImportDocumentsMetadata+    , googleFirestoreAdminV1ImportDocumentsMetadata+    , gfavidmProgressBytes+    , gfavidmStartTime+    , gfavidmInputURIPrefix+    , gfavidmCollectionIds+    , gfavidmProgressDocuments+    , gfavidmEndTime+    , gfavidmOperationState++    -- * BeginTransactionRequest+    , BeginTransactionRequest+    , beginTransactionRequest+    , btrOptions++    -- * RunQueryRequest+    , RunQueryRequest+    , runQueryRequest+    , rqrReadTime+    , rqrNewTransaction+    , rqrStructuredQuery+    , rqrTransaction++    -- * GoogleFirestoreAdminV1IndexConfigDelta+    , GoogleFirestoreAdminV1IndexConfigDelta+    , googleFirestoreAdminV1IndexConfigDelta+    , gfavicdIndex+    , gfavicdChangeType++    -- * GoogleFirestoreAdminV1IndexConfig+    , GoogleFirestoreAdminV1IndexConfig+    , googleFirestoreAdminV1IndexConfig+    , gfavicAncestorField+    , gfavicReverting+    , gfavicIndexes+    , gfavicUsesAncestorConfig++    -- * GoogleFirestoreAdminV1IndexField+    , GoogleFirestoreAdminV1IndexField+    , googleFirestoreAdminV1IndexField+    , gfavifFieldPath+    , gfavifArrayConfig+    , gfavifOrder++    -- * Write+    , Write+    , write+    , wTransform+    , wUpdateMask+    , wCurrentDocument+    , wDelete+    , wUpdate++    -- * Location+    , Location+    , location+    , lName+    , lMetadata+    , lDisplayName+    , lLabels+    , lLocationId++    -- * Empty+    , Empty+    , empty++    -- * BatchGetDocumentsResponse+    , BatchGetDocumentsResponse+    , batchGetDocumentsResponse+    , bgdrReadTime+    , bgdrFound+    , bgdrTransaction+    , bgdrMissing++    -- * CompositeFilter+    , CompositeFilter+    , compositeFilter+    , cfOp+    , cfFilters++    -- * DocumentsTarget+    , DocumentsTarget+    , documentsTarget+    , dtDocuments++    -- * ListenRequestLabels+    , ListenRequestLabels+    , listenRequestLabels+    , lrlAddtional++    -- * GoogleFirestoreAdminV1Index+    , GoogleFirestoreAdminV1Index+    , googleFirestoreAdminV1Index+    , gfaviState+    , gfaviQueryScope+    , gfaviName+    , gfaviFields++    -- * BeginTransactionResponse+    , BeginTransactionResponse+    , beginTransactionResponse+    , btrTransaction++    -- * RunQueryResponse+    , RunQueryResponse+    , runQueryResponse+    , rReadTime+    , rSkippedResults+    , rTransaction+    , rDocument++    -- * GoogleFirestoreAdminV1IndexQueryScope+    , GoogleFirestoreAdminV1IndexQueryScope (..)++    -- * GoogleFirestoreAdminV1ExportDocumentsMetadata+    , GoogleFirestoreAdminV1ExportDocumentsMetadata+    , googleFirestoreAdminV1ExportDocumentsMetadata+    , gfavedmProgressBytes+    , gfavedmStartTime+    , gfavedmCollectionIds+    , gfavedmProgressDocuments+    , gfavedmEndTime+    , gfavedmOperationState+    , gfavedmOutputURIPrefix++    -- * GoogleFirestoreAdminV1Progress+    , GoogleFirestoreAdminV1Progress+    , googleFirestoreAdminV1Progress+    , gfavpCompletedWork+    , gfavpEstimatedWork++    -- * DocumentMask+    , DocumentMask+    , documentMask+    , dmFieldPaths++    -- * QueryTarget+    , QueryTarget+    , queryTarget+    , qtParent+    , qtStructuredQuery++    -- * Value+    , Value+    , value+    , vGeoPointValue+    , vBytesValue+    , vIntegerValue+    , vTimestampValue+    , vDoubleValue+    , vStringValue+    , vBooleanValue+    , vMapValue+    , vArrayValue+    , vReferenceValue+    , vNullValue++    -- * OrderDirection+    , OrderDirection (..)++    -- * ValueNullValue+    , ValueNullValue (..)++    -- * StatusDetailsItem+    , StatusDetailsItem+    , statusDetailsItem+    , sdiAddtional++    -- * DocumentTransform+    , DocumentTransform+    , documentTransform+    , dtDocument+    , dtFieldTransforms++    -- * StructuredQuery+    , StructuredQuery+    , structuredQuery+    , sqWhere+    , sqOrderBy+    , sqStartAt+    , sqOffSet+    , sqFrom+    , sqEndAt+    , sqLimit+    , sqSelect++    -- * ExistenceFilter+    , ExistenceFilter+    , existenceFilter+    , efTargetId+    , efCount++    -- * GoogleFirestoreAdminV1ListFieldsResponse+    , GoogleFirestoreAdminV1ListFieldsResponse+    , googleFirestoreAdminV1ListFieldsResponse+    , gfavlfrNextPageToken+    , gfavlfrFields++    -- * GoogleFirestoreAdminV1ImportDocumentsRequest+    , GoogleFirestoreAdminV1ImportDocumentsRequest+    , googleFirestoreAdminV1ImportDocumentsRequest+    , gfavidrInputURIPrefix+    , gfavidrCollectionIds++    -- * GoogleFirestoreAdminV1LocationMetadata+    , GoogleFirestoreAdminV1LocationMetadata+    , googleFirestoreAdminV1LocationMetadata++    -- * GoogleLongrunningCancelOperationRequest+    , GoogleLongrunningCancelOperationRequest+    , googleLongrunningCancelOperationRequest++    -- * UnaryFilterOp+    , UnaryFilterOp (..)++    -- * ListCollectionIdsResponse+    , ListCollectionIdsResponse+    , listCollectionIdsResponse+    , lcirNextPageToken+    , lcirCollectionIds++    -- * FieldReference+    , FieldReference+    , fieldReference+    , frFieldPath++    -- * DocumentRemove+    , DocumentRemove+    , documentRemove+    , drReadTime+    , drDocument+    , drRemovedTargetIds++    -- * GoogleFirestoreAdminV1IndexFieldArrayConfig+    , GoogleFirestoreAdminV1IndexFieldArrayConfig (..)++    -- * DocumentChange+    , DocumentChange+    , documentChange+    , dcDocument+    , dcTargetIds+    , dcRemovedTargetIds++    -- * GoogleFirestoreAdminV1FieldOperationMetadata+    , GoogleFirestoreAdminV1FieldOperationMetadata+    , googleFirestoreAdminV1FieldOperationMetadata+    , gfavfomProgressBytes+    , gfavfomState+    , gfavfomField+    , gfavfomStartTime+    , gfavfomProgressDocuments+    , gfavfomIndexConfigDeltas+    , gfavfomEndTime++    -- * GoogleFirestoreAdminV1ListIndexesResponse+    , GoogleFirestoreAdminV1ListIndexesResponse+    , googleFirestoreAdminV1ListIndexesResponse+    , gfavlirNextPageToken+    , gfavlirIndexes++    -- * MapValue+    , MapValue+    , mapValue+    , mvFields++    -- * BatchGetDocumentsRequest+    , BatchGetDocumentsRequest+    , batchGetDocumentsRequest+    , bReadTime+    , bNewTransaction+    , bTransaction+    , bDocuments+    , bMask++    -- * Document+    , Document+    , document+    , dUpdateTime+    , dName+    , dCreateTime+    , dFields++    -- * GoogleFirestoreAdminV1IndexOperationMetadataState+    , GoogleFirestoreAdminV1IndexOperationMetadataState (..)++    -- * ArrayValue+    , ArrayValue+    , arrayValue+    , avValues++    -- * Xgafv+    , Xgafv (..)++    -- * CommitResponse+    , CommitResponse+    , commitResponse+    , crCommitTime+    , crWriteResults++    -- * ListenResponse+    , ListenResponse+    , listenResponse+    , lrTargetChange+    , lrDocumentRemove+    , lrDocumentChange+    , lrFilter+    , lrDocumentDelete++    -- * FieldFilter+    , FieldFilter+    , fieldFilter+    , ffOp+    , ffField+    , ffValue++    -- * GoogleLongrunningOperationResponse+    , GoogleLongrunningOperationResponse+    , googleLongrunningOperationResponse+    , glorAddtional++    -- * ListDocumentsResponse+    , ListDocumentsResponse+    , listDocumentsResponse+    , ldrNextPageToken+    , ldrDocuments++    -- * GoogleFirestoreAdminV1ExportDocumentsResponse+    , GoogleFirestoreAdminV1ExportDocumentsResponse+    , googleFirestoreAdminV1ExportDocumentsResponse+    , gOutputURIPrefix++    -- * FieldFilterOp+    , FieldFilterOp (..)++    -- * Projection+    , Projection+    , projection+    , pFields++    -- * Filter+    , Filter+    , filter'+    , fCompositeFilter+    , fFieldFilter+    , fUnaryFilter++    -- * TargetChangeTargetChangeType+    , TargetChangeTargetChangeType (..)++    -- * GoogleFirestoreAdminV1IndexOperationMetadata+    , GoogleFirestoreAdminV1IndexOperationMetadata+    , googleFirestoreAdminV1IndexOperationMetadata+    , gfaviomProgressBytes+    , gfaviomState+    , gfaviomStartTime+    , gfaviomProgressDocuments+    , gfaviomEndTime+    , gfaviomIndex++    -- * LocationLabels+    , LocationLabels+    , locationLabels+    , llAddtional++    -- * ListenRequest+    , ListenRequest+    , listenRequest+    , lrRemoveTarget+    , lrLabels+    , lrAddTarget++    -- * GoogleFirestoreAdminV1ImportDocumentsMetadataOperationState+    , GoogleFirestoreAdminV1ImportDocumentsMetadataOperationState (..)++    -- * CommitRequest+    , CommitRequest+    , commitRequest+    , crTransaction+    , crWrites++    -- * LocationMetadata+    , LocationMetadata+    , locationMetadata+    , lmAddtional++    -- * GoogleLongrunningListOperationsResponse+    , GoogleLongrunningListOperationsResponse+    , googleLongrunningListOperationsResponse+    , gllorNextPageToken+    , gllorOperations++    -- * GoogleFirestoreAdminV1FieldOperationMetadataState+    , GoogleFirestoreAdminV1FieldOperationMetadataState (..)++    -- * CollectionSelector+    , CollectionSelector+    , collectionSelector+    , csAllDescendants+    , csCollectionId++    -- * ListCollectionIdsRequest+    , ListCollectionIdsRequest+    , listCollectionIdsRequest+    , lcirPageToken+    , lcirPageSize++    -- * WriteResponse+    , WriteResponse+    , writeResponse+    , wStreamToken+    , wCommitTime+    , wWriteResults+    , wStreamId++    -- * Order+    , Order+    , order+    , oField+    , oDirection++    -- * DocumentDelete+    , DocumentDelete+    , documentDelete+    , ddReadTime+    , ddDocument+    , ddRemovedTargetIds++    -- * FieldTransform+    , FieldTransform+    , fieldTransform+    , ftFieldPath+    , ftAppendMissingElements+    , ftSetToServerValue+    , ftRemoveAllFromArray++    -- * MapValueFields+    , MapValueFields+    , mapValueFields+    , mvfAddtional++    -- * DocumentFields+    , DocumentFields+    , documentFields+    , dfAddtional++    -- * ReadOnly+    , ReadOnly+    , readOnly+    , roReadTime++    -- * Target+    , Target+    , target+    , tTargetId+    , tOnce+    , tReadTime+    , tResumeToken+    , tDocuments+    , tQuery++    -- * WriteRequestLabels+    , WriteRequestLabels+    , writeRequestLabels+    , wrlAddtional++    -- * FieldTransformSetToServerValue+    , FieldTransformSetToServerValue (..)++    -- * GoogleLongrunningOperation+    , GoogleLongrunningOperation+    , googleLongrunningOperation+    , gloDone+    , gloError+    , gloResponse+    , gloName+    , gloMetadata++    -- * GoogleFirestoreAdminV1ExportDocumentsMetadataOperationState+    , GoogleFirestoreAdminV1ExportDocumentsMetadataOperationState (..)++    -- * UnaryFilter+    , UnaryFilter+    , unaryFilter+    , ufOp+    , ufField+    ) where++import           Network.Google.FireStore.Types.Product+import           Network.Google.FireStore.Types.Sum+import           Network.Google.Prelude++-- | Default request referring to version 'v1' of the Cloud Firestore API. This contains the host and root path used as a starting point for constructing service requests.+fireStoreService :: ServiceConfig+fireStoreService+  = defaultService (ServiceId "firestore:v1")+      "firestore.googleapis.com"++-- | View and manage your data across Google Cloud Platform services+cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]+cloudPlatformScope = Proxy;++-- | View and manage your Google Cloud Datastore data+datastoreScope :: Proxy '["https://www.googleapis.com/auth/datastore"]+datastoreScope = Proxy;
+ gen/Network/Google/FireStore/Types/Product.hs view
@@ -0,0 +1,4925 @@+{-# 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.FireStore.Types.Product+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.FireStore.Types.Product where++import           Network.Google.FireStore.Types.Sum+import           Network.Google.Prelude++-- | The request for Firestore.Write. The first request creates a stream, or+-- resumes an existing one from a token. When creating a new stream, the+-- server replies with a response containing only an ID and a token, to use+-- in the next request. When resuming a stream, the server first streams+-- any responses later than the given token, then a response containing+-- only an up-to-date token, to use in the next request.+--+-- /See:/ 'writeRequest' smart constructor.+data WriteRequest = WriteRequest'+    { _wrStreamToken :: !(Maybe Bytes)+    , _wrLabels      :: !(Maybe WriteRequestLabels)+    , _wrWrites      :: !(Maybe [Write])+    , _wrStreamId    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'WriteRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wrStreamToken'+--+-- * 'wrLabels'+--+-- * 'wrWrites'+--+-- * 'wrStreamId'+writeRequest+    :: WriteRequest+writeRequest =+    WriteRequest'+    { _wrStreamToken = Nothing+    , _wrLabels = Nothing+    , _wrWrites = Nothing+    , _wrStreamId = Nothing+    }++-- | A stream token that was previously sent by the server. The client should+-- set this field to the token from the most recent WriteResponse it has+-- received. This acknowledges that the client has received responses up to+-- this token. After sending this token, earlier tokens may not be used+-- anymore. The server may close the stream if there are too many+-- unacknowledged responses. Leave this field unset when creating a new+-- stream. To resume a stream at a specific point, set this field and the+-- \`stream_id\` field. Leave this field unset when creating a new stream.+wrStreamToken :: Lens' WriteRequest (Maybe ByteString)+wrStreamToken+  = lens _wrStreamToken+      (\ s a -> s{_wrStreamToken = a})+      . mapping _Bytes++-- | Labels associated with this write request.+wrLabels :: Lens' WriteRequest (Maybe WriteRequestLabels)+wrLabels = lens _wrLabels (\ s a -> s{_wrLabels = a})++-- | The writes to apply. Always executed atomically and in order. This must+-- be empty on the first request. This may be empty on the last request.+-- This must not be empty on all other requests.+wrWrites :: Lens' WriteRequest [Write]+wrWrites+  = lens _wrWrites (\ s a -> s{_wrWrites = a}) .+      _Default+      . _Coerce++-- | The ID of the write stream to resume. This may only be set in the first+-- message. When left empty, a new write stream will be created.+wrStreamId :: Lens' WriteRequest (Maybe Text)+wrStreamId+  = lens _wrStreamId (\ s a -> s{_wrStreamId = a})++instance FromJSON WriteRequest where+        parseJSON+          = withObject "WriteRequest"+              (\ o ->+                 WriteRequest' <$>+                   (o .:? "streamToken") <*> (o .:? "labels") <*>+                     (o .:? "writes" .!= mempty)+                     <*> (o .:? "streamId"))++instance ToJSON WriteRequest where+        toJSON WriteRequest'{..}+          = object+              (catMaybes+                 [("streamToken" .=) <$> _wrStreamToken,+                  ("labels" .=) <$> _wrLabels,+                  ("writes" .=) <$> _wrWrites,+                  ("streamId" .=) <$> _wrStreamId])++-- | An object representing a latitude\/longitude pair. This is expressed as+-- a pair of doubles representing degrees latitude and degrees longitude.+-- Unless specified otherwise, this must conform to the+-- <http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf WGS84 standard>.+-- Values must be within normalized ranges.+--+-- /See:/ 'latLng' smart constructor.+data LatLng = LatLng'+    { _llLatitude  :: !(Maybe (Textual Double))+    , _llLongitude :: !(Maybe (Textual Double))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LatLng' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'llLatitude'+--+-- * 'llLongitude'+latLng+    :: LatLng+latLng =+    LatLng'+    { _llLatitude = Nothing+    , _llLongitude = Nothing+    }++-- | The latitude in degrees. It must be in the range [-90.0, +90.0].+llLatitude :: Lens' LatLng (Maybe Double)+llLatitude+  = lens _llLatitude (\ s a -> s{_llLatitude = a}) .+      mapping _Coerce++-- | The longitude in degrees. It must be in the range [-180.0, +180.0].+llLongitude :: Lens' LatLng (Maybe Double)+llLongitude+  = lens _llLongitude (\ s a -> s{_llLongitude = a}) .+      mapping _Coerce++instance FromJSON LatLng where+        parseJSON+          = withObject "LatLng"+              (\ o ->+                 LatLng' <$>+                   (o .:? "latitude") <*> (o .:? "longitude"))++instance ToJSON LatLng where+        toJSON LatLng'{..}+          = object+              (catMaybes+                 [("latitude" .=) <$> _llLatitude,+                  ("longitude" .=) <$> _llLongitude])++-- | The result of applying a write.+--+-- /See:/ 'writeResult' smart constructor.+data WriteResult = WriteResult'+    { _wrUpdateTime       :: !(Maybe DateTime')+    , _wrTransformResults :: !(Maybe [Value])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'WriteResult' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wrUpdateTime'+--+-- * 'wrTransformResults'+writeResult+    :: WriteResult+writeResult =+    WriteResult'+    { _wrUpdateTime = Nothing+    , _wrTransformResults = Nothing+    }++-- | The last update time of the document after applying the write. Not set+-- after a \`delete\`. If the write did not actually change the document,+-- this will be the previous update_time.+wrUpdateTime :: Lens' WriteResult (Maybe UTCTime)+wrUpdateTime+  = lens _wrUpdateTime (\ s a -> s{_wrUpdateTime = a})+      . mapping _DateTime++-- | The results of applying each DocumentTransform.FieldTransform, in the+-- same order.+wrTransformResults :: Lens' WriteResult [Value]+wrTransformResults+  = lens _wrTransformResults+      (\ s a -> s{_wrTransformResults = a})+      . _Default+      . _Coerce++instance FromJSON WriteResult where+        parseJSON+          = withObject "WriteResult"+              (\ o ->+                 WriteResult' <$>+                   (o .:? "updateTime") <*>+                     (o .:? "transformResults" .!= mempty))++instance ToJSON WriteResult where+        toJSON WriteResult'{..}+          = object+              (catMaybes+                 [("updateTime" .=) <$> _wrUpdateTime,+                  ("transformResults" .=) <$> _wrTransformResults])++-- | Represents a single field in the database. Fields are grouped by their+-- \"Collection Group\", which represent all collections in the database+-- with the same id.+--+-- /See:/ 'googleFirestoreAdminV1Field' smart constructor.+data GoogleFirestoreAdminV1Field = GoogleFirestoreAdminV1Field'+    { _gfavfIndexConfig :: !(Maybe GoogleFirestoreAdminV1IndexConfig)+    , _gfavfName        :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleFirestoreAdminV1Field' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfavfIndexConfig'+--+-- * 'gfavfName'+googleFirestoreAdminV1Field+    :: GoogleFirestoreAdminV1Field+googleFirestoreAdminV1Field =+    GoogleFirestoreAdminV1Field'+    { _gfavfIndexConfig = Nothing+    , _gfavfName = Nothing+    }++-- | The index configuration for this field. If unset, field indexing will+-- revert to the configuration defined by the \`ancestor_field\`. To+-- explicitly remove all indexes for this field, specify an index config+-- with an empty list of indexes.+gfavfIndexConfig :: Lens' GoogleFirestoreAdminV1Field (Maybe GoogleFirestoreAdminV1IndexConfig)+gfavfIndexConfig+  = lens _gfavfIndexConfig+      (\ s a -> s{_gfavfIndexConfig = a})++-- | A field name of the form+-- \`projects\/{project_id}\/databases\/{database_id}\/collectionGroups\/{collection_id}\/fields\/{field_path}\`+-- A field path may be a simple field name, e.g. \`address\` or a path to+-- fields within map_value , e.g. \`address.city\`, or a special field+-- path. The only valid special field is \`*\`, which represents any field.+-- Field paths may be quoted using \` (backtick). The only character that+-- needs to be escaped within a quoted field path is the backtick character+-- itself, escaped using a backslash. Special characters in field paths+-- that must be quoted include: \`*\`, \`.\`, \`\`\` (backtick), \`[\`,+-- \`]\`, as well as any ascii symbolic characters. Examples: (Note:+-- Comments here are written in markdown syntax, so there is an additional+-- layer of backticks to represent a code block) \`\\\`address.city\\\`\`+-- represents a field named \`address.city\`, not the map key \`city\` in+-- the field \`address\`. \`\\\`*\\\`\` represents a field named \`*\`, not+-- any field. A special \`Field\` contains the default indexing settings+-- for all fields. This field\'s resource name is:+-- \`projects\/{project_id}\/databases\/{database_id}\/collectionGroups\/__default__\/fields\/*\`+-- Indexes defined on this \`Field\` will be applied to all fields which do+-- not have their own \`Field\` index configuration.+gfavfName :: Lens' GoogleFirestoreAdminV1Field (Maybe Text)+gfavfName+  = lens _gfavfName (\ s a -> s{_gfavfName = a})++instance FromJSON GoogleFirestoreAdminV1Field where+        parseJSON+          = withObject "GoogleFirestoreAdminV1Field"+              (\ o ->+                 GoogleFirestoreAdminV1Field' <$>+                   (o .:? "indexConfig") <*> (o .:? "name"))++instance ToJSON GoogleFirestoreAdminV1Field where+        toJSON GoogleFirestoreAdminV1Field'{..}+          = object+              (catMaybes+                 [("indexConfig" .=) <$> _gfavfIndexConfig,+                  ("name" .=) <$> _gfavfName])++-- | Options for creating a new transaction.+--+-- /See:/ 'transactionOptions' smart constructor.+data TransactionOptions = TransactionOptions'+    { _toReadWrite :: !(Maybe ReadWrite)+    , _toReadOnly  :: !(Maybe ReadOnly)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TransactionOptions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'toReadWrite'+--+-- * 'toReadOnly'+transactionOptions+    :: TransactionOptions+transactionOptions =+    TransactionOptions'+    { _toReadWrite = Nothing+    , _toReadOnly = Nothing+    }++-- | The transaction can be used for both read and write operations.+toReadWrite :: Lens' TransactionOptions (Maybe ReadWrite)+toReadWrite+  = lens _toReadWrite (\ s a -> s{_toReadWrite = a})++-- | The transaction can only be used for read operations.+toReadOnly :: Lens' TransactionOptions (Maybe ReadOnly)+toReadOnly+  = lens _toReadOnly (\ s a -> s{_toReadOnly = a})++instance FromJSON TransactionOptions where+        parseJSON+          = withObject "TransactionOptions"+              (\ o ->+                 TransactionOptions' <$>+                   (o .:? "readWrite") <*> (o .:? "readOnly"))++instance ToJSON TransactionOptions where+        toJSON TransactionOptions'{..}+          = object+              (catMaybes+                 [("readWrite" .=) <$> _toReadWrite,+                  ("readOnly" .=) <$> _toReadOnly])++-- | The \`Status\` type defines a logical error model that is suitable for+-- different programming environments, including REST APIs and RPC APIs. It+-- is used by [gRPC](https:\/\/github.com\/grpc). The error model is+-- designed to be: - Simple to use and understand for most users - Flexible+-- enough to meet unexpected needs # Overview The \`Status\` message+-- contains three pieces of data: error code, error message, and error+-- details. The error code should be an enum value of google.rpc.Code, but+-- it may accept additional error codes if needed. The error message should+-- be a developer-facing English message that helps developers *understand*+-- and *resolve* the error. If a localized user-facing error message is+-- needed, put the localized message in the error details or localize it in+-- the client. The optional error details may contain arbitrary information+-- about the error. There is a predefined set of error detail types in the+-- package \`google.rpc\` that can be used for common error conditions. #+-- Language mapping The \`Status\` message is the logical representation of+-- the error model, but it is not necessarily the actual wire format. When+-- the \`Status\` message is exposed in different client libraries and+-- different wire protocols, it can be mapped differently. For example, it+-- will likely be mapped to some exceptions in Java, but more likely mapped+-- to some error codes in C. # Other uses The error model and the+-- \`Status\` message can be used in a variety of environments, either with+-- or without APIs, to provide a consistent developer experience across+-- different environments. Example uses of this error model include: -+-- Partial errors. If a service needs to return partial errors to the+-- client, it may embed the \`Status\` in the normal response to indicate+-- the partial errors. - Workflow errors. A typical workflow has multiple+-- steps. Each step may have a \`Status\` message for error reporting. -+-- Batch operations. If a client uses batch request and batch response, the+-- \`Status\` message should be used directly inside batch response, one+-- for each error sub-response. - Asynchronous operations. If an API call+-- embeds asynchronous operation results in its response, the status of+-- those operations should be represented directly using the \`Status\`+-- message. - Logging. If some API errors are stored in logs, the message+-- \`Status\` could be used directly after any stripping needed for+-- security\/privacy reasons.+--+-- /See:/ 'status' smart constructor.+data Status = Status'+    { _sDetails :: !(Maybe [StatusDetailsItem])+    , _sCode    :: !(Maybe (Textual Int32))+    , _sMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Status' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sDetails'+--+-- * 'sCode'+--+-- * 'sMessage'+status+    :: Status+status =+    Status'+    { _sDetails = Nothing+    , _sCode = Nothing+    , _sMessage = Nothing+    }++-- | A list of messages that carry the error details. There is a common set+-- of message types for APIs to use.+sDetails :: Lens' Status [StatusDetailsItem]+sDetails+  = lens _sDetails (\ s a -> s{_sDetails = a}) .+      _Default+      . _Coerce++-- | The status code, which should be an enum value of google.rpc.Code.+sCode :: Lens' Status (Maybe Int32)+sCode+  = lens _sCode (\ s a -> s{_sCode = a}) .+      mapping _Coerce++-- | A developer-facing error message, which should be in English. Any+-- user-facing error message should be localized and sent in the+-- google.rpc.Status.details field, or localized by the client.+sMessage :: Lens' Status (Maybe Text)+sMessage = lens _sMessage (\ s a -> s{_sMessage = a})++instance FromJSON Status where+        parseJSON+          = withObject "Status"+              (\ o ->+                 Status' <$>+                   (o .:? "details" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON Status where+        toJSON Status'{..}+          = object+              (catMaybes+                 [("details" .=) <$> _sDetails,+                  ("code" .=) <$> _sCode,+                  ("message" .=) <$> _sMessage])++-- | Service-specific metadata associated with the operation. It typically+-- contains progress information and common metadata such as create time.+-- Some services might not provide such metadata. Any method that returns a+-- long-running operation should document the metadata type, if any.+--+-- /See:/ 'googleLongrunningOperationMetadata' smart constructor.+newtype GoogleLongrunningOperationMetadata = GoogleLongrunningOperationMetadata'+    { _glomAddtional :: HashMap Text JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleLongrunningOperationMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'glomAddtional'+googleLongrunningOperationMetadata+    :: HashMap Text JSONValue -- ^ 'glomAddtional'+    -> GoogleLongrunningOperationMetadata+googleLongrunningOperationMetadata pGlomAddtional_ =+    GoogleLongrunningOperationMetadata'+    { _glomAddtional = _Coerce # pGlomAddtional_+    }++-- | Properties of the object. Contains field \'type with type URL.+glomAddtional :: Lens' GoogleLongrunningOperationMetadata (HashMap Text JSONValue)+glomAddtional+  = lens _glomAddtional+      (\ s a -> s{_glomAddtional = a})+      . _Coerce++instance FromJSON GoogleLongrunningOperationMetadata+         where+        parseJSON+          = withObject "GoogleLongrunningOperationMetadata"+              (\ o ->+                 GoogleLongrunningOperationMetadata' <$>+                   (parseJSONObject o))++instance ToJSON GoogleLongrunningOperationMetadata+         where+        toJSON = toJSON . _glomAddtional++-- | A precondition on a document, used for conditional operations.+--+-- /See:/ 'precondition' smart constructor.+data Precondition = Precondition'+    { _pExists     :: !(Maybe Bool)+    , _pUpdateTime :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Precondition' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pExists'+--+-- * 'pUpdateTime'+precondition+    :: Precondition+precondition =+    Precondition'+    { _pExists = Nothing+    , _pUpdateTime = Nothing+    }++-- | When set to \`true\`, the target document must exist. When set to+-- \`false\`, the target document must not exist.+pExists :: Lens' Precondition (Maybe Bool)+pExists = lens _pExists (\ s a -> s{_pExists = a})++-- | When set, the target document must exist and have been last updated at+-- that time.+pUpdateTime :: Lens' Precondition (Maybe UTCTime)+pUpdateTime+  = lens _pUpdateTime (\ s a -> s{_pUpdateTime = a}) .+      mapping _DateTime++instance FromJSON Precondition where+        parseJSON+          = withObject "Precondition"+              (\ o ->+                 Precondition' <$>+                   (o .:? "exists") <*> (o .:? "updateTime"))++instance ToJSON Precondition where+        toJSON Precondition'{..}+          = object+              (catMaybes+                 [("exists" .=) <$> _pExists,+                  ("updateTime" .=) <$> _pUpdateTime])++-- | Options for a transaction that can be used to read and write documents.+--+-- /See:/ 'readWrite' smart constructor.+newtype ReadWrite = ReadWrite'+    { _rwRetryTransaction :: Maybe Bytes+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ReadWrite' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rwRetryTransaction'+readWrite+    :: ReadWrite+readWrite =+    ReadWrite'+    { _rwRetryTransaction = Nothing+    }++-- | An optional transaction to retry.+rwRetryTransaction :: Lens' ReadWrite (Maybe ByteString)+rwRetryTransaction+  = lens _rwRetryTransaction+      (\ s a -> s{_rwRetryTransaction = a})+      . mapping _Bytes++instance FromJSON ReadWrite where+        parseJSON+          = withObject "ReadWrite"+              (\ o -> ReadWrite' <$> (o .:? "retryTransaction"))++instance ToJSON ReadWrite where+        toJSON ReadWrite'{..}+          = object+              (catMaybes+                 [("retryTransaction" .=) <$> _rwRetryTransaction])++-- | The request for Firestore.Rollback.+--+-- /See:/ 'rollbackRequest' smart constructor.+newtype RollbackRequest = RollbackRequest'+    { _rrTransaction :: Maybe Bytes+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RollbackRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rrTransaction'+rollbackRequest+    :: RollbackRequest+rollbackRequest =+    RollbackRequest'+    { _rrTransaction = Nothing+    }++-- | The transaction to roll back.+rrTransaction :: Lens' RollbackRequest (Maybe ByteString)+rrTransaction+  = lens _rrTransaction+      (\ s a -> s{_rrTransaction = a})+      . mapping _Bytes++instance FromJSON RollbackRequest where+        parseJSON+          = withObject "RollbackRequest"+              (\ o -> RollbackRequest' <$> (o .:? "transaction"))++instance ToJSON RollbackRequest where+        toJSON RollbackRequest'{..}+          = object+              (catMaybes [("transaction" .=) <$> _rrTransaction])++-- | The request for FirestoreAdmin.ExportDocuments.+--+-- /See:/ 'googleFirestoreAdminV1ExportDocumentsRequest' smart constructor.+data GoogleFirestoreAdminV1ExportDocumentsRequest = GoogleFirestoreAdminV1ExportDocumentsRequest'+    { _gfavedrCollectionIds   :: !(Maybe [Text])+    , _gfavedrOutputURIPrefix :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleFirestoreAdminV1ExportDocumentsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfavedrCollectionIds'+--+-- * 'gfavedrOutputURIPrefix'+googleFirestoreAdminV1ExportDocumentsRequest+    :: GoogleFirestoreAdminV1ExportDocumentsRequest+googleFirestoreAdminV1ExportDocumentsRequest =+    GoogleFirestoreAdminV1ExportDocumentsRequest'+    { _gfavedrCollectionIds = Nothing+    , _gfavedrOutputURIPrefix = Nothing+    }++-- | Which collection ids to export. Unspecified means all collections.+gfavedrCollectionIds :: Lens' GoogleFirestoreAdminV1ExportDocumentsRequest [Text]+gfavedrCollectionIds+  = lens _gfavedrCollectionIds+      (\ s a -> s{_gfavedrCollectionIds = a})+      . _Default+      . _Coerce++-- | The output URI. Currently only supports Google Cloud Storage URIs of the+-- form: \`gs:\/\/BUCKET_NAME[\/NAMESPACE_PATH]\`, where \`BUCKET_NAME\` is+-- the name of the Google Cloud Storage bucket and \`NAMESPACE_PATH\` is an+-- optional Google Cloud Storage namespace path. When choosing a name, be+-- sure to consider Google Cloud Storage naming guidelines:+-- https:\/\/cloud.google.com\/storage\/docs\/naming. If the URI is a+-- bucket (without a namespace path), a prefix will be generated based on+-- the start time.+gfavedrOutputURIPrefix :: Lens' GoogleFirestoreAdminV1ExportDocumentsRequest (Maybe Text)+gfavedrOutputURIPrefix+  = lens _gfavedrOutputURIPrefix+      (\ s a -> s{_gfavedrOutputURIPrefix = a})++instance FromJSON+         GoogleFirestoreAdminV1ExportDocumentsRequest where+        parseJSON+          = withObject+              "GoogleFirestoreAdminV1ExportDocumentsRequest"+              (\ o ->+                 GoogleFirestoreAdminV1ExportDocumentsRequest' <$>+                   (o .:? "collectionIds" .!= mempty) <*>+                     (o .:? "outputUriPrefix"))++instance ToJSON+         GoogleFirestoreAdminV1ExportDocumentsRequest where+        toJSON+          GoogleFirestoreAdminV1ExportDocumentsRequest'{..}+          = object+              (catMaybes+                 [("collectionIds" .=) <$> _gfavedrCollectionIds,+                  ("outputUriPrefix" .=) <$> _gfavedrOutputURIPrefix])++-- | Targets being watched have changed.+--+-- /See:/ 'targetChange' smart constructor.+data TargetChange = TargetChange'+    { _tcReadTime         :: !(Maybe DateTime')+    , _tcResumeToken      :: !(Maybe Bytes)+    , _tcCause            :: !(Maybe Status)+    , _tcTargetChangeType :: !(Maybe TargetChangeTargetChangeType)+    , _tcTargetIds        :: !(Maybe [Textual Int32])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetChange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tcReadTime'+--+-- * 'tcResumeToken'+--+-- * 'tcCause'+--+-- * 'tcTargetChangeType'+--+-- * 'tcTargetIds'+targetChange+    :: TargetChange+targetChange =+    TargetChange'+    { _tcReadTime = Nothing+    , _tcResumeToken = Nothing+    , _tcCause = Nothing+    , _tcTargetChangeType = Nothing+    , _tcTargetIds = Nothing+    }++-- | The consistent \`read_time\` for the given \`target_ids\` (omitted when+-- the target_ids are not at a consistent snapshot). The stream is+-- guaranteed to send a \`read_time\` with \`target_ids\` empty whenever+-- the entire stream reaches a new consistent snapshot. ADD, CURRENT, and+-- RESET messages are guaranteed to (eventually) result in a new consistent+-- snapshot (while NO_CHANGE and REMOVE messages are not). For a given+-- stream, \`read_time\` is guaranteed to be monotonically increasing.+tcReadTime :: Lens' TargetChange (Maybe UTCTime)+tcReadTime+  = lens _tcReadTime (\ s a -> s{_tcReadTime = a}) .+      mapping _DateTime++-- | A token that can be used to resume the stream for the given+-- \`target_ids\`, or all targets if \`target_ids\` is empty. Not set on+-- every target change.+tcResumeToken :: Lens' TargetChange (Maybe ByteString)+tcResumeToken+  = lens _tcResumeToken+      (\ s a -> s{_tcResumeToken = a})+      . mapping _Bytes++-- | The error that resulted in this change, if applicable.+tcCause :: Lens' TargetChange (Maybe Status)+tcCause = lens _tcCause (\ s a -> s{_tcCause = a})++-- | The type of change that occurred.+tcTargetChangeType :: Lens' TargetChange (Maybe TargetChangeTargetChangeType)+tcTargetChangeType+  = lens _tcTargetChangeType+      (\ s a -> s{_tcTargetChangeType = a})++-- | The target IDs of targets that have changed. If empty, the change+-- applies to all targets. For \`target_change_type=ADD\`, the order of the+-- target IDs matches the order of the requests to add the targets. This+-- allows clients to unambiguously associate server-assigned target IDs+-- with added targets. For other states, the order of the target IDs is not+-- defined.+tcTargetIds :: Lens' TargetChange [Int32]+tcTargetIds+  = lens _tcTargetIds (\ s a -> s{_tcTargetIds = a}) .+      _Default+      . _Coerce++instance FromJSON TargetChange where+        parseJSON+          = withObject "TargetChange"+              (\ o ->+                 TargetChange' <$>+                   (o .:? "readTime") <*> (o .:? "resumeToken") <*>+                     (o .:? "cause")+                     <*> (o .:? "targetChangeType")+                     <*> (o .:? "targetIds" .!= mempty))++instance ToJSON TargetChange where+        toJSON TargetChange'{..}+          = object+              (catMaybes+                 [("readTime" .=) <$> _tcReadTime,+                  ("resumeToken" .=) <$> _tcResumeToken,+                  ("cause" .=) <$> _tcCause,+                  ("targetChangeType" .=) <$> _tcTargetChangeType,+                  ("targetIds" .=) <$> _tcTargetIds])++-- | The response message for Locations.ListLocations.+--+-- /See:/ 'listLocationsResponse' smart constructor.+data ListLocationsResponse = ListLocationsResponse'+    { _llrNextPageToken :: !(Maybe Text)+    , _llrLocations     :: !(Maybe [Location])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListLocationsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'llrNextPageToken'+--+-- * 'llrLocations'+listLocationsResponse+    :: ListLocationsResponse+listLocationsResponse =+    ListLocationsResponse'+    { _llrNextPageToken = Nothing+    , _llrLocations = Nothing+    }++-- | The standard List next-page token.+llrNextPageToken :: Lens' ListLocationsResponse (Maybe Text)+llrNextPageToken+  = lens _llrNextPageToken+      (\ s a -> s{_llrNextPageToken = a})++-- | A list of locations that matches the specified filter in the request.+llrLocations :: Lens' ListLocationsResponse [Location]+llrLocations+  = lens _llrLocations (\ s a -> s{_llrLocations = a})+      . _Default+      . _Coerce++instance FromJSON ListLocationsResponse where+        parseJSON+          = withObject "ListLocationsResponse"+              (\ o ->+                 ListLocationsResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "locations" .!= mempty))++instance ToJSON ListLocationsResponse where+        toJSON ListLocationsResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _llrNextPageToken,+                  ("locations" .=) <$> _llrLocations])++-- | A position in a query result set.+--+-- /See:/ 'cursor' smart constructor.+data Cursor = Cursor'+    { _cValues :: !(Maybe [Value])+    , _cBefore :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Cursor' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cValues'+--+-- * 'cBefore'+cursor+    :: Cursor+cursor =+    Cursor'+    { _cValues = Nothing+    , _cBefore = Nothing+    }++-- | The values that represent a position, in the order they appear in the+-- order by clause of a query. Can contain fewer values than specified in+-- the order by clause.+cValues :: Lens' Cursor [Value]+cValues+  = lens _cValues (\ s a -> s{_cValues = a}) . _Default+      . _Coerce++-- | If the position is just before or just after the given values, relative+-- to the sort order defined by the query.+cBefore :: Lens' Cursor (Maybe Bool)+cBefore = lens _cBefore (\ s a -> s{_cBefore = a})++instance FromJSON Cursor where+        parseJSON+          = withObject "Cursor"+              (\ o ->+                 Cursor' <$>+                   (o .:? "values" .!= mempty) <*> (o .:? "before"))++instance ToJSON Cursor where+        toJSON Cursor'{..}+          = object+              (catMaybes+                 [("values" .=) <$> _cValues,+                  ("before" .=) <$> _cBefore])++-- | Metadata for google.longrunning.Operation results from+-- FirestoreAdmin.ImportDocuments.+--+-- /See:/ 'googleFirestoreAdminV1ImportDocumentsMetadata' smart constructor.+data GoogleFirestoreAdminV1ImportDocumentsMetadata = GoogleFirestoreAdminV1ImportDocumentsMetadata'+    { _gfavidmProgressBytes     :: !(Maybe GoogleFirestoreAdminV1Progress)+    , _gfavidmStartTime         :: !(Maybe DateTime')+    , _gfavidmInputURIPrefix    :: !(Maybe Text)+    , _gfavidmCollectionIds     :: !(Maybe [Text])+    , _gfavidmProgressDocuments :: !(Maybe GoogleFirestoreAdminV1Progress)+    , _gfavidmEndTime           :: !(Maybe DateTime')+    , _gfavidmOperationState    :: !(Maybe GoogleFirestoreAdminV1ImportDocumentsMetadataOperationState)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleFirestoreAdminV1ImportDocumentsMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfavidmProgressBytes'+--+-- * 'gfavidmStartTime'+--+-- * 'gfavidmInputURIPrefix'+--+-- * 'gfavidmCollectionIds'+--+-- * 'gfavidmProgressDocuments'+--+-- * 'gfavidmEndTime'+--+-- * 'gfavidmOperationState'+googleFirestoreAdminV1ImportDocumentsMetadata+    :: GoogleFirestoreAdminV1ImportDocumentsMetadata+googleFirestoreAdminV1ImportDocumentsMetadata =+    GoogleFirestoreAdminV1ImportDocumentsMetadata'+    { _gfavidmProgressBytes = Nothing+    , _gfavidmStartTime = Nothing+    , _gfavidmInputURIPrefix = Nothing+    , _gfavidmCollectionIds = Nothing+    , _gfavidmProgressDocuments = Nothing+    , _gfavidmEndTime = Nothing+    , _gfavidmOperationState = Nothing+    }++-- | The progress, in bytes, of this operation.+gfavidmProgressBytes :: Lens' GoogleFirestoreAdminV1ImportDocumentsMetadata (Maybe GoogleFirestoreAdminV1Progress)+gfavidmProgressBytes+  = lens _gfavidmProgressBytes+      (\ s a -> s{_gfavidmProgressBytes = a})++-- | The time this operation started.+gfavidmStartTime :: Lens' GoogleFirestoreAdminV1ImportDocumentsMetadata (Maybe UTCTime)+gfavidmStartTime+  = lens _gfavidmStartTime+      (\ s a -> s{_gfavidmStartTime = a})+      . mapping _DateTime++-- | The location of the documents being imported.+gfavidmInputURIPrefix :: Lens' GoogleFirestoreAdminV1ImportDocumentsMetadata (Maybe Text)+gfavidmInputURIPrefix+  = lens _gfavidmInputURIPrefix+      (\ s a -> s{_gfavidmInputURIPrefix = a})++-- | Which collection ids are being imported.+gfavidmCollectionIds :: Lens' GoogleFirestoreAdminV1ImportDocumentsMetadata [Text]+gfavidmCollectionIds+  = lens _gfavidmCollectionIds+      (\ s a -> s{_gfavidmCollectionIds = a})+      . _Default+      . _Coerce++-- | The progress, in documents, of this operation.+gfavidmProgressDocuments :: Lens' GoogleFirestoreAdminV1ImportDocumentsMetadata (Maybe GoogleFirestoreAdminV1Progress)+gfavidmProgressDocuments+  = lens _gfavidmProgressDocuments+      (\ s a -> s{_gfavidmProgressDocuments = a})++-- | The time this operation completed. Will be unset if operation still in+-- progress.+gfavidmEndTime :: Lens' GoogleFirestoreAdminV1ImportDocumentsMetadata (Maybe UTCTime)+gfavidmEndTime+  = lens _gfavidmEndTime+      (\ s a -> s{_gfavidmEndTime = a})+      . mapping _DateTime++-- | The state of the import operation.+gfavidmOperationState :: Lens' GoogleFirestoreAdminV1ImportDocumentsMetadata (Maybe GoogleFirestoreAdminV1ImportDocumentsMetadataOperationState)+gfavidmOperationState+  = lens _gfavidmOperationState+      (\ s a -> s{_gfavidmOperationState = a})++instance FromJSON+         GoogleFirestoreAdminV1ImportDocumentsMetadata where+        parseJSON+          = withObject+              "GoogleFirestoreAdminV1ImportDocumentsMetadata"+              (\ o ->+                 GoogleFirestoreAdminV1ImportDocumentsMetadata' <$>+                   (o .:? "progressBytes") <*> (o .:? "startTime") <*>+                     (o .:? "inputUriPrefix")+                     <*> (o .:? "collectionIds" .!= mempty)+                     <*> (o .:? "progressDocuments")+                     <*> (o .:? "endTime")+                     <*> (o .:? "operationState"))++instance ToJSON+         GoogleFirestoreAdminV1ImportDocumentsMetadata where+        toJSON+          GoogleFirestoreAdminV1ImportDocumentsMetadata'{..}+          = object+              (catMaybes+                 [("progressBytes" .=) <$> _gfavidmProgressBytes,+                  ("startTime" .=) <$> _gfavidmStartTime,+                  ("inputUriPrefix" .=) <$> _gfavidmInputURIPrefix,+                  ("collectionIds" .=) <$> _gfavidmCollectionIds,+                  ("progressDocuments" .=) <$>+                    _gfavidmProgressDocuments,+                  ("endTime" .=) <$> _gfavidmEndTime,+                  ("operationState" .=) <$> _gfavidmOperationState])++-- | The request for Firestore.BeginTransaction.+--+-- /See:/ 'beginTransactionRequest' smart constructor.+newtype BeginTransactionRequest = BeginTransactionRequest'+    { _btrOptions :: Maybe TransactionOptions+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BeginTransactionRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'btrOptions'+beginTransactionRequest+    :: BeginTransactionRequest+beginTransactionRequest =+    BeginTransactionRequest'+    { _btrOptions = Nothing+    }++-- | The options for the transaction. Defaults to a read-write transaction.+btrOptions :: Lens' BeginTransactionRequest (Maybe TransactionOptions)+btrOptions+  = lens _btrOptions (\ s a -> s{_btrOptions = a})++instance FromJSON BeginTransactionRequest where+        parseJSON+          = withObject "BeginTransactionRequest"+              (\ o ->+                 BeginTransactionRequest' <$> (o .:? "options"))++instance ToJSON BeginTransactionRequest where+        toJSON BeginTransactionRequest'{..}+          = object (catMaybes [("options" .=) <$> _btrOptions])++-- | The request for Firestore.RunQuery.+--+-- /See:/ 'runQueryRequest' smart constructor.+data RunQueryRequest = RunQueryRequest'+    { _rqrReadTime        :: !(Maybe DateTime')+    , _rqrNewTransaction  :: !(Maybe TransactionOptions)+    , _rqrStructuredQuery :: !(Maybe StructuredQuery)+    , _rqrTransaction     :: !(Maybe Bytes)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RunQueryRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rqrReadTime'+--+-- * 'rqrNewTransaction'+--+-- * 'rqrStructuredQuery'+--+-- * 'rqrTransaction'+runQueryRequest+    :: RunQueryRequest+runQueryRequest =+    RunQueryRequest'+    { _rqrReadTime = Nothing+    , _rqrNewTransaction = Nothing+    , _rqrStructuredQuery = Nothing+    , _rqrTransaction = Nothing+    }++-- | Reads documents as they were at the given time. This may not be older+-- than 60 seconds.+rqrReadTime :: Lens' RunQueryRequest (Maybe UTCTime)+rqrReadTime+  = lens _rqrReadTime (\ s a -> s{_rqrReadTime = a}) .+      mapping _DateTime++-- | Starts a new transaction and reads the documents. Defaults to a+-- read-only transaction. The new transaction ID will be returned as the+-- first response in the stream.+rqrNewTransaction :: Lens' RunQueryRequest (Maybe TransactionOptions)+rqrNewTransaction+  = lens _rqrNewTransaction+      (\ s a -> s{_rqrNewTransaction = a})++-- | A structured query.+rqrStructuredQuery :: Lens' RunQueryRequest (Maybe StructuredQuery)+rqrStructuredQuery+  = lens _rqrStructuredQuery+      (\ s a -> s{_rqrStructuredQuery = a})++-- | Reads documents in a transaction.+rqrTransaction :: Lens' RunQueryRequest (Maybe ByteString)+rqrTransaction+  = lens _rqrTransaction+      (\ s a -> s{_rqrTransaction = a})+      . mapping _Bytes++instance FromJSON RunQueryRequest where+        parseJSON+          = withObject "RunQueryRequest"+              (\ o ->+                 RunQueryRequest' <$>+                   (o .:? "readTime") <*> (o .:? "newTransaction") <*>+                     (o .:? "structuredQuery")+                     <*> (o .:? "transaction"))++instance ToJSON RunQueryRequest where+        toJSON RunQueryRequest'{..}+          = object+              (catMaybes+                 [("readTime" .=) <$> _rqrReadTime,+                  ("newTransaction" .=) <$> _rqrNewTransaction,+                  ("structuredQuery" .=) <$> _rqrStructuredQuery,+                  ("transaction" .=) <$> _rqrTransaction])++-- | Information about an index configuration change.+--+-- /See:/ 'googleFirestoreAdminV1IndexConfigDelta' smart constructor.+data GoogleFirestoreAdminV1IndexConfigDelta = GoogleFirestoreAdminV1IndexConfigDelta'+    { _gfavicdIndex      :: !(Maybe GoogleFirestoreAdminV1Index)+    , _gfavicdChangeType :: !(Maybe GoogleFirestoreAdminV1IndexConfigDeltaChangeType)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleFirestoreAdminV1IndexConfigDelta' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfavicdIndex'+--+-- * 'gfavicdChangeType'+googleFirestoreAdminV1IndexConfigDelta+    :: GoogleFirestoreAdminV1IndexConfigDelta+googleFirestoreAdminV1IndexConfigDelta =+    GoogleFirestoreAdminV1IndexConfigDelta'+    { _gfavicdIndex = Nothing+    , _gfavicdChangeType = Nothing+    }++-- | The index being changed.+gfavicdIndex :: Lens' GoogleFirestoreAdminV1IndexConfigDelta (Maybe GoogleFirestoreAdminV1Index)+gfavicdIndex+  = lens _gfavicdIndex (\ s a -> s{_gfavicdIndex = a})++-- | Specifies how the index is changing.+gfavicdChangeType :: Lens' GoogleFirestoreAdminV1IndexConfigDelta (Maybe GoogleFirestoreAdminV1IndexConfigDeltaChangeType)+gfavicdChangeType+  = lens _gfavicdChangeType+      (\ s a -> s{_gfavicdChangeType = a})++instance FromJSON+         GoogleFirestoreAdminV1IndexConfigDelta where+        parseJSON+          = withObject "GoogleFirestoreAdminV1IndexConfigDelta"+              (\ o ->+                 GoogleFirestoreAdminV1IndexConfigDelta' <$>+                   (o .:? "index") <*> (o .:? "changeType"))++instance ToJSON+         GoogleFirestoreAdminV1IndexConfigDelta where+        toJSON GoogleFirestoreAdminV1IndexConfigDelta'{..}+          = object+              (catMaybes+                 [("index" .=) <$> _gfavicdIndex,+                  ("changeType" .=) <$> _gfavicdChangeType])++-- | The index configuration for this field.+--+-- /See:/ 'googleFirestoreAdminV1IndexConfig' smart constructor.+data GoogleFirestoreAdminV1IndexConfig = GoogleFirestoreAdminV1IndexConfig'+    { _gfavicAncestorField      :: !(Maybe Text)+    , _gfavicReverting          :: !(Maybe Bool)+    , _gfavicIndexes            :: !(Maybe [GoogleFirestoreAdminV1Index])+    , _gfavicUsesAncestorConfig :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleFirestoreAdminV1IndexConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfavicAncestorField'+--+-- * 'gfavicReverting'+--+-- * 'gfavicIndexes'+--+-- * 'gfavicUsesAncestorConfig'+googleFirestoreAdminV1IndexConfig+    :: GoogleFirestoreAdminV1IndexConfig+googleFirestoreAdminV1IndexConfig =+    GoogleFirestoreAdminV1IndexConfig'+    { _gfavicAncestorField = Nothing+    , _gfavicReverting = Nothing+    , _gfavicIndexes = Nothing+    , _gfavicUsesAncestorConfig = Nothing+    }++-- | Output only. Specifies the resource name of the \`Field\` from which+-- this field\'s index configuration is set (when \`uses_ancestor_config\`+-- is true), or from which it *would* be set if this field had no index+-- configuration (when \`uses_ancestor_config\` is false).+gfavicAncestorField :: Lens' GoogleFirestoreAdminV1IndexConfig (Maybe Text)+gfavicAncestorField+  = lens _gfavicAncestorField+      (\ s a -> s{_gfavicAncestorField = a})++-- | Output only When true, the \`Field\`\'s index configuration is in the+-- process of being reverted. Once complete, the index config will+-- transition to the same state as the field specified by+-- \`ancestor_field\`, at which point \`uses_ancestor_config\` will be+-- \`true\` and \`reverting\` will be \`false\`.+gfavicReverting :: Lens' GoogleFirestoreAdminV1IndexConfig (Maybe Bool)+gfavicReverting+  = lens _gfavicReverting+      (\ s a -> s{_gfavicReverting = a})++-- | The indexes supported for this field.+gfavicIndexes :: Lens' GoogleFirestoreAdminV1IndexConfig [GoogleFirestoreAdminV1Index]+gfavicIndexes+  = lens _gfavicIndexes+      (\ s a -> s{_gfavicIndexes = a})+      . _Default+      . _Coerce++-- | Output only. When true, the \`Field\`\'s index configuration is set from+-- the configuration specified by the \`ancestor_field\`. When false, the+-- \`Field\`\'s index configuration is defined explicitly.+gfavicUsesAncestorConfig :: Lens' GoogleFirestoreAdminV1IndexConfig (Maybe Bool)+gfavicUsesAncestorConfig+  = lens _gfavicUsesAncestorConfig+      (\ s a -> s{_gfavicUsesAncestorConfig = a})++instance FromJSON GoogleFirestoreAdminV1IndexConfig+         where+        parseJSON+          = withObject "GoogleFirestoreAdminV1IndexConfig"+              (\ o ->+                 GoogleFirestoreAdminV1IndexConfig' <$>+                   (o .:? "ancestorField") <*> (o .:? "reverting") <*>+                     (o .:? "indexes" .!= mempty)+                     <*> (o .:? "usesAncestorConfig"))++instance ToJSON GoogleFirestoreAdminV1IndexConfig+         where+        toJSON GoogleFirestoreAdminV1IndexConfig'{..}+          = object+              (catMaybes+                 [("ancestorField" .=) <$> _gfavicAncestorField,+                  ("reverting" .=) <$> _gfavicReverting,+                  ("indexes" .=) <$> _gfavicIndexes,+                  ("usesAncestorConfig" .=) <$>+                    _gfavicUsesAncestorConfig])++-- | A field in an index. The field_path describes which field is indexed,+-- the value_mode describes how the field value is indexed.+--+-- /See:/ 'googleFirestoreAdminV1IndexField' smart constructor.+data GoogleFirestoreAdminV1IndexField = GoogleFirestoreAdminV1IndexField'+    { _gfavifFieldPath   :: !(Maybe Text)+    , _gfavifArrayConfig :: !(Maybe GoogleFirestoreAdminV1IndexFieldArrayConfig)+    , _gfavifOrder       :: !(Maybe GoogleFirestoreAdminV1IndexFieldOrder)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleFirestoreAdminV1IndexField' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfavifFieldPath'+--+-- * 'gfavifArrayConfig'+--+-- * 'gfavifOrder'+googleFirestoreAdminV1IndexField+    :: GoogleFirestoreAdminV1IndexField+googleFirestoreAdminV1IndexField =+    GoogleFirestoreAdminV1IndexField'+    { _gfavifFieldPath = Nothing+    , _gfavifArrayConfig = Nothing+    , _gfavifOrder = Nothing+    }++-- | Can be __name__. For single field indexes, this must match the name of+-- the field or may be omitted.+gfavifFieldPath :: Lens' GoogleFirestoreAdminV1IndexField (Maybe Text)+gfavifFieldPath+  = lens _gfavifFieldPath+      (\ s a -> s{_gfavifFieldPath = a})++-- | Indicates that this field supports operations on \`array_value\`s.+gfavifArrayConfig :: Lens' GoogleFirestoreAdminV1IndexField (Maybe GoogleFirestoreAdminV1IndexFieldArrayConfig)+gfavifArrayConfig+  = lens _gfavifArrayConfig+      (\ s a -> s{_gfavifArrayConfig = a})++-- | Indicates that this field supports ordering by the specified order or+-- comparing using =, \<, \<=, >, >=.+gfavifOrder :: Lens' GoogleFirestoreAdminV1IndexField (Maybe GoogleFirestoreAdminV1IndexFieldOrder)+gfavifOrder+  = lens _gfavifOrder (\ s a -> s{_gfavifOrder = a})++instance FromJSON GoogleFirestoreAdminV1IndexField+         where+        parseJSON+          = withObject "GoogleFirestoreAdminV1IndexField"+              (\ o ->+                 GoogleFirestoreAdminV1IndexField' <$>+                   (o .:? "fieldPath") <*> (o .:? "arrayConfig") <*>+                     (o .:? "order"))++instance ToJSON GoogleFirestoreAdminV1IndexField+         where+        toJSON GoogleFirestoreAdminV1IndexField'{..}+          = object+              (catMaybes+                 [("fieldPath" .=) <$> _gfavifFieldPath,+                  ("arrayConfig" .=) <$> _gfavifArrayConfig,+                  ("order" .=) <$> _gfavifOrder])++-- | A write on a document.+--+-- /See:/ 'write' smart constructor.+data Write = Write'+    { _wTransform       :: !(Maybe DocumentTransform)+    , _wUpdateMask      :: !(Maybe DocumentMask)+    , _wCurrentDocument :: !(Maybe Precondition)+    , _wDelete          :: !(Maybe Text)+    , _wUpdate          :: !(Maybe Document)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Write' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wTransform'+--+-- * 'wUpdateMask'+--+-- * 'wCurrentDocument'+--+-- * 'wDelete'+--+-- * 'wUpdate'+write+    :: Write+write =+    Write'+    { _wTransform = Nothing+    , _wUpdateMask = Nothing+    , _wCurrentDocument = Nothing+    , _wDelete = Nothing+    , _wUpdate = Nothing+    }++-- | Applies a tranformation to a document. At most one \`transform\` per+-- document is allowed in a given request. An \`update\` cannot follow a+-- \`transform\` on the same document in a given request.+wTransform :: Lens' Write (Maybe DocumentTransform)+wTransform+  = lens _wTransform (\ s a -> s{_wTransform = a})++-- | The fields to update in this write. This field can be set only when the+-- operation is \`update\`. If the mask is not set for an \`update\` and+-- the document exists, any existing data will be overwritten. If the mask+-- is set and the document on the server has fields not covered by the+-- mask, they are left unchanged. Fields referenced in the mask, but not+-- present in the input document, are deleted from the document on the+-- server. The field paths in this mask must not contain a reserved field+-- name.+wUpdateMask :: Lens' Write (Maybe DocumentMask)+wUpdateMask+  = lens _wUpdateMask (\ s a -> s{_wUpdateMask = a})++-- | An optional precondition on the document. The write will fail if this is+-- set and not met by the target document.+wCurrentDocument :: Lens' Write (Maybe Precondition)+wCurrentDocument+  = lens _wCurrentDocument+      (\ s a -> s{_wCurrentDocument = a})++-- | A document name to delete. In the format:+-- \`projects\/{project_id}\/databases\/{database_id}\/documents\/{document_path}\`.+wDelete :: Lens' Write (Maybe Text)+wDelete = lens _wDelete (\ s a -> s{_wDelete = a})++-- | A document to write.+wUpdate :: Lens' Write (Maybe Document)+wUpdate = lens _wUpdate (\ s a -> s{_wUpdate = a})++instance FromJSON Write where+        parseJSON+          = withObject "Write"+              (\ o ->+                 Write' <$>+                   (o .:? "transform") <*> (o .:? "updateMask") <*>+                     (o .:? "currentDocument")+                     <*> (o .:? "delete")+                     <*> (o .:? "update"))++instance ToJSON Write where+        toJSON Write'{..}+          = object+              (catMaybes+                 [("transform" .=) <$> _wTransform,+                  ("updateMask" .=) <$> _wUpdateMask,+                  ("currentDocument" .=) <$> _wCurrentDocument,+                  ("delete" .=) <$> _wDelete,+                  ("update" .=) <$> _wUpdate])++-- | A resource that represents Google Cloud Platform location.+--+-- /See:/ 'location' smart constructor.+data Location = Location'+    { _lName        :: !(Maybe Text)+    , _lMetadata    :: !(Maybe LocationMetadata)+    , _lDisplayName :: !(Maybe Text)+    , _lLabels      :: !(Maybe LocationLabels)+    , _lLocationId  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Location' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lName'+--+-- * 'lMetadata'+--+-- * 'lDisplayName'+--+-- * 'lLabels'+--+-- * 'lLocationId'+location+    :: Location+location =+    Location'+    { _lName = Nothing+    , _lMetadata = Nothing+    , _lDisplayName = Nothing+    , _lLabels = Nothing+    , _lLocationId = Nothing+    }++-- | Resource name for the location, which may vary between implementations.+-- For example: \`\"projects\/example-project\/locations\/us-east1\"\`+lName :: Lens' Location (Maybe Text)+lName = lens _lName (\ s a -> s{_lName = a})++-- | Service-specific metadata. For example the available capacity at the+-- given location.+lMetadata :: Lens' Location (Maybe LocationMetadata)+lMetadata+  = lens _lMetadata (\ s a -> s{_lMetadata = a})++-- | The friendly name for this location, typically a nearby city name. For+-- example, \"Tokyo\".+lDisplayName :: Lens' Location (Maybe Text)+lDisplayName+  = lens _lDisplayName (\ s a -> s{_lDisplayName = a})++-- | Cross-service attributes for the location. For example+-- {\"cloud.googleapis.com\/region\": \"us-east1\"}+lLabels :: Lens' Location (Maybe LocationLabels)+lLabels = lens _lLabels (\ s a -> s{_lLabels = a})++-- | The canonical id for this location. For example: \`\"us-east1\"\`.+lLocationId :: Lens' Location (Maybe Text)+lLocationId+  = lens _lLocationId (\ s a -> s{_lLocationId = a})++instance FromJSON Location where+        parseJSON+          = withObject "Location"+              (\ o ->+                 Location' <$>+                   (o .:? "name") <*> (o .:? "metadata") <*>+                     (o .:? "displayName")+                     <*> (o .:? "labels")+                     <*> (o .:? "locationId"))++instance ToJSON Location where+        toJSON Location'{..}+          = object+              (catMaybes+                 [("name" .=) <$> _lName,+                  ("metadata" .=) <$> _lMetadata,+                  ("displayName" .=) <$> _lDisplayName,+                  ("labels" .=) <$> _lLabels,+                  ("locationId" .=) <$> _lLocationId])++-- | A generic empty message that you can re-use to avoid defining duplicated+-- empty messages in your APIs. A typical example is to use it as the+-- request or the response type of an API method. For instance: service Foo+-- { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The+-- JSON representation for \`Empty\` is empty JSON object \`{}\`.+--+-- /See:/ 'empty' smart constructor.+data Empty =+    Empty'+    deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Empty' with the minimum fields required to make a request.+--+empty+    :: Empty+empty = Empty'++instance FromJSON Empty where+        parseJSON = withObject "Empty" (\ o -> pure Empty')++instance ToJSON Empty where+        toJSON = const emptyObject++-- | The streamed response for Firestore.BatchGetDocuments.+--+-- /See:/ 'batchGetDocumentsResponse' smart constructor.+data BatchGetDocumentsResponse = BatchGetDocumentsResponse'+    { _bgdrReadTime    :: !(Maybe DateTime')+    , _bgdrFound       :: !(Maybe Document)+    , _bgdrTransaction :: !(Maybe Bytes)+    , _bgdrMissing     :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchGetDocumentsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bgdrReadTime'+--+-- * 'bgdrFound'+--+-- * 'bgdrTransaction'+--+-- * 'bgdrMissing'+batchGetDocumentsResponse+    :: BatchGetDocumentsResponse+batchGetDocumentsResponse =+    BatchGetDocumentsResponse'+    { _bgdrReadTime = Nothing+    , _bgdrFound = Nothing+    , _bgdrTransaction = Nothing+    , _bgdrMissing = Nothing+    }++-- | The time at which the document was read. This may be monotically+-- increasing, in this case the previous documents in the result stream are+-- guaranteed not to have changed between their read_time and this one.+bgdrReadTime :: Lens' BatchGetDocumentsResponse (Maybe UTCTime)+bgdrReadTime+  = lens _bgdrReadTime (\ s a -> s{_bgdrReadTime = a})+      . mapping _DateTime++-- | A document that was requested.+bgdrFound :: Lens' BatchGetDocumentsResponse (Maybe Document)+bgdrFound+  = lens _bgdrFound (\ s a -> s{_bgdrFound = a})++-- | The transaction that was started as part of this request. Will only be+-- set in the first response, and only if+-- BatchGetDocumentsRequest.new_transaction was set in the request.+bgdrTransaction :: Lens' BatchGetDocumentsResponse (Maybe ByteString)+bgdrTransaction+  = lens _bgdrTransaction+      (\ s a -> s{_bgdrTransaction = a})+      . mapping _Bytes++-- | A document name that was requested but does not exist. In the format:+-- \`projects\/{project_id}\/databases\/{database_id}\/documents\/{document_path}\`.+bgdrMissing :: Lens' BatchGetDocumentsResponse (Maybe Text)+bgdrMissing+  = lens _bgdrMissing (\ s a -> s{_bgdrMissing = a})++instance FromJSON BatchGetDocumentsResponse where+        parseJSON+          = withObject "BatchGetDocumentsResponse"+              (\ o ->+                 BatchGetDocumentsResponse' <$>+                   (o .:? "readTime") <*> (o .:? "found") <*>+                     (o .:? "transaction")+                     <*> (o .:? "missing"))++instance ToJSON BatchGetDocumentsResponse where+        toJSON BatchGetDocumentsResponse'{..}+          = object+              (catMaybes+                 [("readTime" .=) <$> _bgdrReadTime,+                  ("found" .=) <$> _bgdrFound,+                  ("transaction" .=) <$> _bgdrTransaction,+                  ("missing" .=) <$> _bgdrMissing])++-- | A filter that merges multiple other filters using the given operator.+--+-- /See:/ 'compositeFilter' smart constructor.+data CompositeFilter = CompositeFilter'+    { _cfOp      :: !(Maybe CompositeFilterOp)+    , _cfFilters :: !(Maybe [Filter])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CompositeFilter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cfOp'+--+-- * 'cfFilters'+compositeFilter+    :: CompositeFilter+compositeFilter =+    CompositeFilter'+    { _cfOp = Nothing+    , _cfFilters = Nothing+    }++-- | The operator for combining multiple filters.+cfOp :: Lens' CompositeFilter (Maybe CompositeFilterOp)+cfOp = lens _cfOp (\ s a -> s{_cfOp = a})++-- | The list of filters to combine. Must contain at least one filter.+cfFilters :: Lens' CompositeFilter [Filter]+cfFilters+  = lens _cfFilters (\ s a -> s{_cfFilters = a}) .+      _Default+      . _Coerce++instance FromJSON CompositeFilter where+        parseJSON+          = withObject "CompositeFilter"+              (\ o ->+                 CompositeFilter' <$>+                   (o .:? "op") <*> (o .:? "filters" .!= mempty))++instance ToJSON CompositeFilter where+        toJSON CompositeFilter'{..}+          = object+              (catMaybes+                 [("op" .=) <$> _cfOp, ("filters" .=) <$> _cfFilters])++-- | A target specified by a set of documents names.+--+-- /See:/ 'documentsTarget' smart constructor.+newtype DocumentsTarget = DocumentsTarget'+    { _dtDocuments :: Maybe [Text]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DocumentsTarget' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtDocuments'+documentsTarget+    :: DocumentsTarget+documentsTarget =+    DocumentsTarget'+    { _dtDocuments = Nothing+    }++-- | The names of the documents to retrieve. In the format:+-- \`projects\/{project_id}\/databases\/{database_id}\/documents\/{document_path}\`.+-- The request will fail if any of the document is not a child resource of+-- the given \`database\`. Duplicate names will be elided.+dtDocuments :: Lens' DocumentsTarget [Text]+dtDocuments+  = lens _dtDocuments (\ s a -> s{_dtDocuments = a}) .+      _Default+      . _Coerce++instance FromJSON DocumentsTarget where+        parseJSON+          = withObject "DocumentsTarget"+              (\ o ->+                 DocumentsTarget' <$> (o .:? "documents" .!= mempty))++instance ToJSON DocumentsTarget where+        toJSON DocumentsTarget'{..}+          = object+              (catMaybes [("documents" .=) <$> _dtDocuments])++-- | Labels associated with this target change.+--+-- /See:/ 'listenRequestLabels' smart constructor.+newtype ListenRequestLabels = ListenRequestLabels'+    { _lrlAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListenRequestLabels' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrlAddtional'+listenRequestLabels+    :: HashMap Text Text -- ^ 'lrlAddtional'+    -> ListenRequestLabels+listenRequestLabels pLrlAddtional_ =+    ListenRequestLabels'+    { _lrlAddtional = _Coerce # pLrlAddtional_+    }++lrlAddtional :: Lens' ListenRequestLabels (HashMap Text Text)+lrlAddtional+  = lens _lrlAddtional (\ s a -> s{_lrlAddtional = a})+      . _Coerce++instance FromJSON ListenRequestLabels where+        parseJSON+          = withObject "ListenRequestLabels"+              (\ o -> ListenRequestLabels' <$> (parseJSONObject o))++instance ToJSON ListenRequestLabels where+        toJSON = toJSON . _lrlAddtional++-- | Cloud Firestore indexes enable simple and complex queries against+-- documents in a database.+--+-- /See:/ 'googleFirestoreAdminV1Index' smart constructor.+data GoogleFirestoreAdminV1Index = GoogleFirestoreAdminV1Index'+    { _gfaviState      :: !(Maybe GoogleFirestoreAdminV1IndexState)+    , _gfaviQueryScope :: !(Maybe GoogleFirestoreAdminV1IndexQueryScope)+    , _gfaviName       :: !(Maybe Text)+    , _gfaviFields     :: !(Maybe [GoogleFirestoreAdminV1IndexField])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleFirestoreAdminV1Index' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfaviState'+--+-- * 'gfaviQueryScope'+--+-- * 'gfaviName'+--+-- * 'gfaviFields'+googleFirestoreAdminV1Index+    :: GoogleFirestoreAdminV1Index+googleFirestoreAdminV1Index =+    GoogleFirestoreAdminV1Index'+    { _gfaviState = Nothing+    , _gfaviQueryScope = Nothing+    , _gfaviName = Nothing+    , _gfaviFields = Nothing+    }++-- | Output only. The serving state of the index.+gfaviState :: Lens' GoogleFirestoreAdminV1Index (Maybe GoogleFirestoreAdminV1IndexState)+gfaviState+  = lens _gfaviState (\ s a -> s{_gfaviState = a})++-- | Indexes with a collection query scope specified allow queries against a+-- collection that is the child of a specific document, specified at query+-- time, and that has the same collection id. Indexes with a collection+-- group query scope specified allow queries against all collections+-- descended from a specific document, specified at query time, and that+-- have the same collection id as this index.+gfaviQueryScope :: Lens' GoogleFirestoreAdminV1Index (Maybe GoogleFirestoreAdminV1IndexQueryScope)+gfaviQueryScope+  = lens _gfaviQueryScope+      (\ s a -> s{_gfaviQueryScope = a})++-- | Output only. A server defined name for this index. The form of this name+-- for composite indexes will be:+-- \`projects\/{project_id}\/databases\/{database_id}\/collectionGroups\/{collection_id}\/indexes\/{composite_index_id}\`+-- For single field indexes, this field will be empty.+gfaviName :: Lens' GoogleFirestoreAdminV1Index (Maybe Text)+gfaviName+  = lens _gfaviName (\ s a -> s{_gfaviName = a})++-- | The fields supported by this index. For composite indexes, this is+-- always 2 or more fields. The last field entry is always for the field+-- path \`__name__\`. If, on creation, \`__name__\` was not specified as+-- the last field, it will be added automatically with the same direction+-- as that of the last field defined. If the final field in a composite+-- index is not directional, the \`__name__\` will be ordered ASCENDING+-- (unless explicitly specified). For single field indexes, this will+-- always be exactly one entry with a field path equal to the field path of+-- the associated field.+gfaviFields :: Lens' GoogleFirestoreAdminV1Index [GoogleFirestoreAdminV1IndexField]+gfaviFields+  = lens _gfaviFields (\ s a -> s{_gfaviFields = a}) .+      _Default+      . _Coerce++instance FromJSON GoogleFirestoreAdminV1Index where+        parseJSON+          = withObject "GoogleFirestoreAdminV1Index"+              (\ o ->+                 GoogleFirestoreAdminV1Index' <$>+                   (o .:? "state") <*> (o .:? "queryScope") <*>+                     (o .:? "name")+                     <*> (o .:? "fields" .!= mempty))++instance ToJSON GoogleFirestoreAdminV1Index where+        toJSON GoogleFirestoreAdminV1Index'{..}+          = object+              (catMaybes+                 [("state" .=) <$> _gfaviState,+                  ("queryScope" .=) <$> _gfaviQueryScope,+                  ("name" .=) <$> _gfaviName,+                  ("fields" .=) <$> _gfaviFields])++-- | The response for Firestore.BeginTransaction.+--+-- /See:/ 'beginTransactionResponse' smart constructor.+newtype BeginTransactionResponse = BeginTransactionResponse'+    { _btrTransaction :: Maybe Bytes+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BeginTransactionResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'btrTransaction'+beginTransactionResponse+    :: BeginTransactionResponse+beginTransactionResponse =+    BeginTransactionResponse'+    { _btrTransaction = Nothing+    }++-- | The transaction that was started.+btrTransaction :: Lens' BeginTransactionResponse (Maybe ByteString)+btrTransaction+  = lens _btrTransaction+      (\ s a -> s{_btrTransaction = a})+      . mapping _Bytes++instance FromJSON BeginTransactionResponse where+        parseJSON+          = withObject "BeginTransactionResponse"+              (\ o ->+                 BeginTransactionResponse' <$> (o .:? "transaction"))++instance ToJSON BeginTransactionResponse where+        toJSON BeginTransactionResponse'{..}+          = object+              (catMaybes [("transaction" .=) <$> _btrTransaction])++-- | The response for Firestore.RunQuery.+--+-- /See:/ 'runQueryResponse' smart constructor.+data RunQueryResponse = RunQueryResponse'+    { _rReadTime       :: !(Maybe DateTime')+    , _rSkippedResults :: !(Maybe (Textual Int32))+    , _rTransaction    :: !(Maybe Bytes)+    , _rDocument       :: !(Maybe Document)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RunQueryResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rReadTime'+--+-- * 'rSkippedResults'+--+-- * 'rTransaction'+--+-- * 'rDocument'+runQueryResponse+    :: RunQueryResponse+runQueryResponse =+    RunQueryResponse'+    { _rReadTime = Nothing+    , _rSkippedResults = Nothing+    , _rTransaction = Nothing+    , _rDocument = Nothing+    }++-- | The time at which the document was read. This may be monotonically+-- increasing; in this case, the previous documents in the result stream+-- are guaranteed not to have changed between their \`read_time\` and this+-- one. If the query returns no results, a response with \`read_time\` and+-- no \`document\` will be sent, and this represents the time at which the+-- query was run.+rReadTime :: Lens' RunQueryResponse (Maybe UTCTime)+rReadTime+  = lens _rReadTime (\ s a -> s{_rReadTime = a}) .+      mapping _DateTime++-- | The number of results that have been skipped due to an offset between+-- the last response and the current response.+rSkippedResults :: Lens' RunQueryResponse (Maybe Int32)+rSkippedResults+  = lens _rSkippedResults+      (\ s a -> s{_rSkippedResults = a})+      . mapping _Coerce++-- | The transaction that was started as part of this request. Can only be+-- set in the first response, and only if RunQueryRequest.new_transaction+-- was set in the request. If set, no other fields will be set in this+-- response.+rTransaction :: Lens' RunQueryResponse (Maybe ByteString)+rTransaction+  = lens _rTransaction (\ s a -> s{_rTransaction = a})+      . mapping _Bytes++-- | A query result. Not set when reporting partial progress.+rDocument :: Lens' RunQueryResponse (Maybe Document)+rDocument+  = lens _rDocument (\ s a -> s{_rDocument = a})++instance FromJSON RunQueryResponse where+        parseJSON+          = withObject "RunQueryResponse"+              (\ o ->+                 RunQueryResponse' <$>+                   (o .:? "readTime") <*> (o .:? "skippedResults") <*>+                     (o .:? "transaction")+                     <*> (o .:? "document"))++instance ToJSON RunQueryResponse where+        toJSON RunQueryResponse'{..}+          = object+              (catMaybes+                 [("readTime" .=) <$> _rReadTime,+                  ("skippedResults" .=) <$> _rSkippedResults,+                  ("transaction" .=) <$> _rTransaction,+                  ("document" .=) <$> _rDocument])++-- | Metadata for google.longrunning.Operation results from+-- FirestoreAdmin.ExportDocuments.+--+-- /See:/ 'googleFirestoreAdminV1ExportDocumentsMetadata' smart constructor.+data GoogleFirestoreAdminV1ExportDocumentsMetadata = GoogleFirestoreAdminV1ExportDocumentsMetadata'+    { _gfavedmProgressBytes     :: !(Maybe GoogleFirestoreAdminV1Progress)+    , _gfavedmStartTime         :: !(Maybe DateTime')+    , _gfavedmCollectionIds     :: !(Maybe [Text])+    , _gfavedmProgressDocuments :: !(Maybe GoogleFirestoreAdminV1Progress)+    , _gfavedmEndTime           :: !(Maybe DateTime')+    , _gfavedmOperationState    :: !(Maybe GoogleFirestoreAdminV1ExportDocumentsMetadataOperationState)+    , _gfavedmOutputURIPrefix   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleFirestoreAdminV1ExportDocumentsMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfavedmProgressBytes'+--+-- * 'gfavedmStartTime'+--+-- * 'gfavedmCollectionIds'+--+-- * 'gfavedmProgressDocuments'+--+-- * 'gfavedmEndTime'+--+-- * 'gfavedmOperationState'+--+-- * 'gfavedmOutputURIPrefix'+googleFirestoreAdminV1ExportDocumentsMetadata+    :: GoogleFirestoreAdminV1ExportDocumentsMetadata+googleFirestoreAdminV1ExportDocumentsMetadata =+    GoogleFirestoreAdminV1ExportDocumentsMetadata'+    { _gfavedmProgressBytes = Nothing+    , _gfavedmStartTime = Nothing+    , _gfavedmCollectionIds = Nothing+    , _gfavedmProgressDocuments = Nothing+    , _gfavedmEndTime = Nothing+    , _gfavedmOperationState = Nothing+    , _gfavedmOutputURIPrefix = Nothing+    }++-- | The progress, in bytes, of this operation.+gfavedmProgressBytes :: Lens' GoogleFirestoreAdminV1ExportDocumentsMetadata (Maybe GoogleFirestoreAdminV1Progress)+gfavedmProgressBytes+  = lens _gfavedmProgressBytes+      (\ s a -> s{_gfavedmProgressBytes = a})++-- | The time this operation started.+gfavedmStartTime :: Lens' GoogleFirestoreAdminV1ExportDocumentsMetadata (Maybe UTCTime)+gfavedmStartTime+  = lens _gfavedmStartTime+      (\ s a -> s{_gfavedmStartTime = a})+      . mapping _DateTime++-- | Which collection ids are being exported.+gfavedmCollectionIds :: Lens' GoogleFirestoreAdminV1ExportDocumentsMetadata [Text]+gfavedmCollectionIds+  = lens _gfavedmCollectionIds+      (\ s a -> s{_gfavedmCollectionIds = a})+      . _Default+      . _Coerce++-- | The progress, in documents, of this operation.+gfavedmProgressDocuments :: Lens' GoogleFirestoreAdminV1ExportDocumentsMetadata (Maybe GoogleFirestoreAdminV1Progress)+gfavedmProgressDocuments+  = lens _gfavedmProgressDocuments+      (\ s a -> s{_gfavedmProgressDocuments = a})++-- | The time this operation completed. Will be unset if operation still in+-- progress.+gfavedmEndTime :: Lens' GoogleFirestoreAdminV1ExportDocumentsMetadata (Maybe UTCTime)+gfavedmEndTime+  = lens _gfavedmEndTime+      (\ s a -> s{_gfavedmEndTime = a})+      . mapping _DateTime++-- | The state of the export operation.+gfavedmOperationState :: Lens' GoogleFirestoreAdminV1ExportDocumentsMetadata (Maybe GoogleFirestoreAdminV1ExportDocumentsMetadataOperationState)+gfavedmOperationState+  = lens _gfavedmOperationState+      (\ s a -> s{_gfavedmOperationState = a})++-- | Where the entities are being exported to.+gfavedmOutputURIPrefix :: Lens' GoogleFirestoreAdminV1ExportDocumentsMetadata (Maybe Text)+gfavedmOutputURIPrefix+  = lens _gfavedmOutputURIPrefix+      (\ s a -> s{_gfavedmOutputURIPrefix = a})++instance FromJSON+         GoogleFirestoreAdminV1ExportDocumentsMetadata where+        parseJSON+          = withObject+              "GoogleFirestoreAdminV1ExportDocumentsMetadata"+              (\ o ->+                 GoogleFirestoreAdminV1ExportDocumentsMetadata' <$>+                   (o .:? "progressBytes") <*> (o .:? "startTime") <*>+                     (o .:? "collectionIds" .!= mempty)+                     <*> (o .:? "progressDocuments")+                     <*> (o .:? "endTime")+                     <*> (o .:? "operationState")+                     <*> (o .:? "outputUriPrefix"))++instance ToJSON+         GoogleFirestoreAdminV1ExportDocumentsMetadata where+        toJSON+          GoogleFirestoreAdminV1ExportDocumentsMetadata'{..}+          = object+              (catMaybes+                 [("progressBytes" .=) <$> _gfavedmProgressBytes,+                  ("startTime" .=) <$> _gfavedmStartTime,+                  ("collectionIds" .=) <$> _gfavedmCollectionIds,+                  ("progressDocuments" .=) <$>+                    _gfavedmProgressDocuments,+                  ("endTime" .=) <$> _gfavedmEndTime,+                  ("operationState" .=) <$> _gfavedmOperationState,+                  ("outputUriPrefix" .=) <$> _gfavedmOutputURIPrefix])++-- | Describes the progress of the operation. Unit of work is generic and+-- must be interpreted based on where Progress is used.+--+-- /See:/ 'googleFirestoreAdminV1Progress' smart constructor.+data GoogleFirestoreAdminV1Progress = GoogleFirestoreAdminV1Progress'+    { _gfavpCompletedWork :: !(Maybe (Textual Int64))+    , _gfavpEstimatedWork :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleFirestoreAdminV1Progress' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfavpCompletedWork'+--+-- * 'gfavpEstimatedWork'+googleFirestoreAdminV1Progress+    :: GoogleFirestoreAdminV1Progress+googleFirestoreAdminV1Progress =+    GoogleFirestoreAdminV1Progress'+    { _gfavpCompletedWork = Nothing+    , _gfavpEstimatedWork = Nothing+    }++-- | The amount of work completed.+gfavpCompletedWork :: Lens' GoogleFirestoreAdminV1Progress (Maybe Int64)+gfavpCompletedWork+  = lens _gfavpCompletedWork+      (\ s a -> s{_gfavpCompletedWork = a})+      . mapping _Coerce++-- | The amount of work estimated.+gfavpEstimatedWork :: Lens' GoogleFirestoreAdminV1Progress (Maybe Int64)+gfavpEstimatedWork+  = lens _gfavpEstimatedWork+      (\ s a -> s{_gfavpEstimatedWork = a})+      . mapping _Coerce++instance FromJSON GoogleFirestoreAdminV1Progress+         where+        parseJSON+          = withObject "GoogleFirestoreAdminV1Progress"+              (\ o ->+                 GoogleFirestoreAdminV1Progress' <$>+                   (o .:? "completedWork") <*> (o .:? "estimatedWork"))++instance ToJSON GoogleFirestoreAdminV1Progress where+        toJSON GoogleFirestoreAdminV1Progress'{..}+          = object+              (catMaybes+                 [("completedWork" .=) <$> _gfavpCompletedWork,+                  ("estimatedWork" .=) <$> _gfavpEstimatedWork])++-- | A set of field paths on a document. Used to restrict a get or update+-- operation on a document to a subset of its fields. This is different+-- from standard field masks, as this is always scoped to a Document, and+-- takes in account the dynamic nature of Value.+--+-- /See:/ 'documentMask' smart constructor.+newtype DocumentMask = DocumentMask'+    { _dmFieldPaths :: Maybe [Text]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DocumentMask' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dmFieldPaths'+documentMask+    :: DocumentMask+documentMask =+    DocumentMask'+    { _dmFieldPaths = Nothing+    }++-- | The list of field paths in the mask. See Document.fields for a field+-- path syntax reference.+dmFieldPaths :: Lens' DocumentMask [Text]+dmFieldPaths+  = lens _dmFieldPaths (\ s a -> s{_dmFieldPaths = a})+      . _Default+      . _Coerce++instance FromJSON DocumentMask where+        parseJSON+          = withObject "DocumentMask"+              (\ o ->+                 DocumentMask' <$> (o .:? "fieldPaths" .!= mempty))++instance ToJSON DocumentMask where+        toJSON DocumentMask'{..}+          = object+              (catMaybes [("fieldPaths" .=) <$> _dmFieldPaths])++-- | A target specified by a query.+--+-- /See:/ 'queryTarget' smart constructor.+data QueryTarget = QueryTarget'+    { _qtParent          :: !(Maybe Text)+    , _qtStructuredQuery :: !(Maybe StructuredQuery)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'QueryTarget' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'qtParent'+--+-- * 'qtStructuredQuery'+queryTarget+    :: QueryTarget+queryTarget =+    QueryTarget'+    { _qtParent = Nothing+    , _qtStructuredQuery = Nothing+    }++-- | The parent resource name. In the format:+-- \`projects\/{project_id}\/databases\/{database_id}\/documents\` or+-- \`projects\/{project_id}\/databases\/{database_id}\/documents\/{document_path}\`.+-- For example: \`projects\/my-project\/databases\/my-database\/documents\`+-- or+-- \`projects\/my-project\/databases\/my-database\/documents\/chatrooms\/my-chatroom\`+qtParent :: Lens' QueryTarget (Maybe Text)+qtParent = lens _qtParent (\ s a -> s{_qtParent = a})++-- | A structured query.+qtStructuredQuery :: Lens' QueryTarget (Maybe StructuredQuery)+qtStructuredQuery+  = lens _qtStructuredQuery+      (\ s a -> s{_qtStructuredQuery = a})++instance FromJSON QueryTarget where+        parseJSON+          = withObject "QueryTarget"+              (\ o ->+                 QueryTarget' <$>+                   (o .:? "parent") <*> (o .:? "structuredQuery"))++instance ToJSON QueryTarget where+        toJSON QueryTarget'{..}+          = object+              (catMaybes+                 [("parent" .=) <$> _qtParent,+                  ("structuredQuery" .=) <$> _qtStructuredQuery])++-- | A message that can hold any of the supported value types.+--+-- /See:/ 'value' smart constructor.+data Value = Value'+    { _vGeoPointValue  :: !(Maybe LatLng)+    , _vBytesValue     :: !(Maybe Bytes)+    , _vIntegerValue   :: !(Maybe (Textual Int64))+    , _vTimestampValue :: !(Maybe DateTime')+    , _vDoubleValue    :: !(Maybe (Textual Double))+    , _vStringValue    :: !(Maybe Text)+    , _vBooleanValue   :: !(Maybe Bool)+    , _vMapValue       :: !(Maybe MapValue)+    , _vArrayValue     :: !(Maybe ArrayValue)+    , _vReferenceValue :: !(Maybe Text)+    , _vNullValue      :: !(Maybe ValueNullValue)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Value' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vGeoPointValue'+--+-- * 'vBytesValue'+--+-- * 'vIntegerValue'+--+-- * 'vTimestampValue'+--+-- * 'vDoubleValue'+--+-- * 'vStringValue'+--+-- * 'vBooleanValue'+--+-- * 'vMapValue'+--+-- * 'vArrayValue'+--+-- * 'vReferenceValue'+--+-- * 'vNullValue'+value+    :: Value+value =+    Value'+    { _vGeoPointValue = Nothing+    , _vBytesValue = Nothing+    , _vIntegerValue = Nothing+    , _vTimestampValue = Nothing+    , _vDoubleValue = Nothing+    , _vStringValue = Nothing+    , _vBooleanValue = Nothing+    , _vMapValue = Nothing+    , _vArrayValue = Nothing+    , _vReferenceValue = Nothing+    , _vNullValue = Nothing+    }++-- | A geo point value representing a point on the surface of Earth.+vGeoPointValue :: Lens' Value (Maybe LatLng)+vGeoPointValue+  = lens _vGeoPointValue+      (\ s a -> s{_vGeoPointValue = a})++-- | A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500+-- bytes are considered by queries.+vBytesValue :: Lens' Value (Maybe ByteString)+vBytesValue+  = lens _vBytesValue (\ s a -> s{_vBytesValue = a}) .+      mapping _Bytes++-- | An integer value.+vIntegerValue :: Lens' Value (Maybe Int64)+vIntegerValue+  = lens _vIntegerValue+      (\ s a -> s{_vIntegerValue = a})+      . mapping _Coerce++-- | A timestamp value. Precise only to microseconds. When stored, any+-- additional precision is rounded down.+vTimestampValue :: Lens' Value (Maybe UTCTime)+vTimestampValue+  = lens _vTimestampValue+      (\ s a -> s{_vTimestampValue = a})+      . mapping _DateTime++-- | A double value.+vDoubleValue :: Lens' Value (Maybe Double)+vDoubleValue+  = lens _vDoubleValue (\ s a -> s{_vDoubleValue = a})+      . mapping _Coerce++-- | A string value. The string, represented as UTF-8, must not exceed 1 MiB+-- - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are+-- considered by queries.+vStringValue :: Lens' Value (Maybe Text)+vStringValue+  = lens _vStringValue (\ s a -> s{_vStringValue = a})++-- | A boolean value.+vBooleanValue :: Lens' Value (Maybe Bool)+vBooleanValue+  = lens _vBooleanValue+      (\ s a -> s{_vBooleanValue = a})++-- | A map value.+vMapValue :: Lens' Value (Maybe MapValue)+vMapValue+  = lens _vMapValue (\ s a -> s{_vMapValue = a})++-- | An array value. Cannot directly contain another array value, though can+-- contain an map which contains another array.+vArrayValue :: Lens' Value (Maybe ArrayValue)+vArrayValue+  = lens _vArrayValue (\ s a -> s{_vArrayValue = a})++-- | A reference to a document. For example:+-- \`projects\/{project_id}\/databases\/{database_id}\/documents\/{document_path}\`.+vReferenceValue :: Lens' Value (Maybe Text)+vReferenceValue+  = lens _vReferenceValue+      (\ s a -> s{_vReferenceValue = a})++-- | A null value.+vNullValue :: Lens' Value (Maybe ValueNullValue)+vNullValue+  = lens _vNullValue (\ s a -> s{_vNullValue = a})++instance FromJSON Value where+        parseJSON+          = withObject "Value"+              (\ o ->+                 Value' <$>+                   (o .:? "geoPointValue") <*> (o .:? "bytesValue") <*>+                     (o .:? "integerValue")+                     <*> (o .:? "timestampValue")+                     <*> (o .:? "doubleValue")+                     <*> (o .:? "stringValue")+                     <*> (o .:? "booleanValue")+                     <*> (o .:? "mapValue")+                     <*> (o .:? "arrayValue")+                     <*> (o .:? "referenceValue")+                     <*> (o .:? "nullValue"))++instance ToJSON Value where+        toJSON Value'{..}+          = object+              (catMaybes+                 [("geoPointValue" .=) <$> _vGeoPointValue,+                  ("bytesValue" .=) <$> _vBytesValue,+                  ("integerValue" .=) <$> _vIntegerValue,+                  ("timestampValue" .=) <$> _vTimestampValue,+                  ("doubleValue" .=) <$> _vDoubleValue,+                  ("stringValue" .=) <$> _vStringValue,+                  ("booleanValue" .=) <$> _vBooleanValue,+                  ("mapValue" .=) <$> _vMapValue,+                  ("arrayValue" .=) <$> _vArrayValue,+                  ("referenceValue" .=) <$> _vReferenceValue,+                  ("nullValue" .=) <$> _vNullValue])++--+-- /See:/ 'statusDetailsItem' smart constructor.+newtype StatusDetailsItem = StatusDetailsItem'+    { _sdiAddtional :: HashMap Text JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'StatusDetailsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdiAddtional'+statusDetailsItem+    :: HashMap Text JSONValue -- ^ 'sdiAddtional'+    -> StatusDetailsItem+statusDetailsItem pSdiAddtional_ =+    StatusDetailsItem'+    { _sdiAddtional = _Coerce # pSdiAddtional_+    }++-- | Properties of the object. Contains field \'type with type URL.+sdiAddtional :: Lens' StatusDetailsItem (HashMap Text JSONValue)+sdiAddtional+  = lens _sdiAddtional (\ s a -> s{_sdiAddtional = a})+      . _Coerce++instance FromJSON StatusDetailsItem where+        parseJSON+          = withObject "StatusDetailsItem"+              (\ o -> StatusDetailsItem' <$> (parseJSONObject o))++instance ToJSON StatusDetailsItem where+        toJSON = toJSON . _sdiAddtional++-- | A transformation of a document.+--+-- /See:/ 'documentTransform' smart constructor.+data DocumentTransform = DocumentTransform'+    { _dtDocument        :: !(Maybe Text)+    , _dtFieldTransforms :: !(Maybe [FieldTransform])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DocumentTransform' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtDocument'+--+-- * 'dtFieldTransforms'+documentTransform+    :: DocumentTransform+documentTransform =+    DocumentTransform'+    { _dtDocument = Nothing+    , _dtFieldTransforms = Nothing+    }++-- | The name of the document to transform.+dtDocument :: Lens' DocumentTransform (Maybe Text)+dtDocument+  = lens _dtDocument (\ s a -> s{_dtDocument = a})++-- | The list of transformations to apply to the fields of the document, in+-- order. This must not be empty.+dtFieldTransforms :: Lens' DocumentTransform [FieldTransform]+dtFieldTransforms+  = lens _dtFieldTransforms+      (\ s a -> s{_dtFieldTransforms = a})+      . _Default+      . _Coerce++instance FromJSON DocumentTransform where+        parseJSON+          = withObject "DocumentTransform"+              (\ o ->+                 DocumentTransform' <$>+                   (o .:? "document") <*>+                     (o .:? "fieldTransforms" .!= mempty))++instance ToJSON DocumentTransform where+        toJSON DocumentTransform'{..}+          = object+              (catMaybes+                 [("document" .=) <$> _dtDocument,+                  ("fieldTransforms" .=) <$> _dtFieldTransforms])++-- | A Firestore query.+--+-- /See:/ 'structuredQuery' smart constructor.+data StructuredQuery = StructuredQuery'+    { _sqWhere   :: !(Maybe Filter)+    , _sqOrderBy :: !(Maybe [Order])+    , _sqStartAt :: !(Maybe Cursor)+    , _sqOffSet  :: !(Maybe (Textual Int32))+    , _sqFrom    :: !(Maybe [CollectionSelector])+    , _sqEndAt   :: !(Maybe Cursor)+    , _sqLimit   :: !(Maybe (Textual Int32))+    , _sqSelect  :: !(Maybe Projection)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'StructuredQuery' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sqWhere'+--+-- * 'sqOrderBy'+--+-- * 'sqStartAt'+--+-- * 'sqOffSet'+--+-- * 'sqFrom'+--+-- * 'sqEndAt'+--+-- * 'sqLimit'+--+-- * 'sqSelect'+structuredQuery+    :: StructuredQuery+structuredQuery =+    StructuredQuery'+    { _sqWhere = Nothing+    , _sqOrderBy = Nothing+    , _sqStartAt = Nothing+    , _sqOffSet = Nothing+    , _sqFrom = Nothing+    , _sqEndAt = Nothing+    , _sqLimit = Nothing+    , _sqSelect = Nothing+    }++-- | The filter to apply.+sqWhere :: Lens' StructuredQuery (Maybe Filter)+sqWhere = lens _sqWhere (\ s a -> s{_sqWhere = a})++-- | The order to apply to the query results. Firestore guarantees a stable+-- ordering through the following rules: * Any field required to appear in+-- \`order_by\`, that is not already specified in \`order_by\`, is appended+-- to the order in field name order by default. * If an order on+-- \`__name__\` is not specified, it is appended by default. Fields are+-- appended with the same sort direction as the last order specified, or+-- \'ASCENDING\' if no order was specified. For example: * \`SELECT * FROM+-- Foo ORDER BY A\` becomes \`SELECT * FROM Foo ORDER BY A, __name__\` *+-- \`SELECT * FROM Foo ORDER BY A DESC\` becomes \`SELECT * FROM Foo ORDER+-- BY A DESC, __name__ DESC\` * \`SELECT * FROM Foo WHERE A > 1\` becomes+-- \`SELECT * FROM Foo WHERE A > 1 ORDER BY A, __name__\`+sqOrderBy :: Lens' StructuredQuery [Order]+sqOrderBy+  = lens _sqOrderBy (\ s a -> s{_sqOrderBy = a}) .+      _Default+      . _Coerce++-- | A starting point for the query results.+sqStartAt :: Lens' StructuredQuery (Maybe Cursor)+sqStartAt+  = lens _sqStartAt (\ s a -> s{_sqStartAt = a})++-- | The number of results to skip. Applies before limit, but after all other+-- constraints. Must be >= 0 if specified.+sqOffSet :: Lens' StructuredQuery (Maybe Int32)+sqOffSet+  = lens _sqOffSet (\ s a -> s{_sqOffSet = a}) .+      mapping _Coerce++-- | The collections to query.+sqFrom :: Lens' StructuredQuery [CollectionSelector]+sqFrom+  = lens _sqFrom (\ s a -> s{_sqFrom = a}) . _Default .+      _Coerce++-- | A end point for the query results.+sqEndAt :: Lens' StructuredQuery (Maybe Cursor)+sqEndAt = lens _sqEndAt (\ s a -> s{_sqEndAt = a})++-- | The maximum number of results to return. Applies after all other+-- constraints. Must be >= 0 if specified.+sqLimit :: Lens' StructuredQuery (Maybe Int32)+sqLimit+  = lens _sqLimit (\ s a -> s{_sqLimit = a}) .+      mapping _Coerce++-- | The projection to return.+sqSelect :: Lens' StructuredQuery (Maybe Projection)+sqSelect = lens _sqSelect (\ s a -> s{_sqSelect = a})++instance FromJSON StructuredQuery where+        parseJSON+          = withObject "StructuredQuery"+              (\ o ->+                 StructuredQuery' <$>+                   (o .:? "where") <*> (o .:? "orderBy" .!= mempty) <*>+                     (o .:? "startAt")+                     <*> (o .:? "offset")+                     <*> (o .:? "from" .!= mempty)+                     <*> (o .:? "endAt")+                     <*> (o .:? "limit")+                     <*> (o .:? "select"))++instance ToJSON StructuredQuery where+        toJSON StructuredQuery'{..}+          = object+              (catMaybes+                 [("where" .=) <$> _sqWhere,+                  ("orderBy" .=) <$> _sqOrderBy,+                  ("startAt" .=) <$> _sqStartAt,+                  ("offset" .=) <$> _sqOffSet, ("from" .=) <$> _sqFrom,+                  ("endAt" .=) <$> _sqEndAt, ("limit" .=) <$> _sqLimit,+                  ("select" .=) <$> _sqSelect])++-- | A digest of all the documents that match a given target.+--+-- /See:/ 'existenceFilter' smart constructor.+data ExistenceFilter = ExistenceFilter'+    { _efTargetId :: !(Maybe (Textual Int32))+    , _efCount    :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ExistenceFilter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'efTargetId'+--+-- * 'efCount'+existenceFilter+    :: ExistenceFilter+existenceFilter =+    ExistenceFilter'+    { _efTargetId = Nothing+    , _efCount = Nothing+    }++-- | The target ID to which this filter applies.+efTargetId :: Lens' ExistenceFilter (Maybe Int32)+efTargetId+  = lens _efTargetId (\ s a -> s{_efTargetId = a}) .+      mapping _Coerce++-- | The total count of documents that match target_id. If different from the+-- count of documents in the client that match, the client must manually+-- determine which documents no longer match the target.+efCount :: Lens' ExistenceFilter (Maybe Int32)+efCount+  = lens _efCount (\ s a -> s{_efCount = a}) .+      mapping _Coerce++instance FromJSON ExistenceFilter where+        parseJSON+          = withObject "ExistenceFilter"+              (\ o ->+                 ExistenceFilter' <$>+                   (o .:? "targetId") <*> (o .:? "count"))++instance ToJSON ExistenceFilter where+        toJSON ExistenceFilter'{..}+          = object+              (catMaybes+                 [("targetId" .=) <$> _efTargetId,+                  ("count" .=) <$> _efCount])++-- | The response for FirestoreAdmin.ListFields.+--+-- /See:/ 'googleFirestoreAdminV1ListFieldsResponse' smart constructor.+data GoogleFirestoreAdminV1ListFieldsResponse = GoogleFirestoreAdminV1ListFieldsResponse'+    { _gfavlfrNextPageToken :: !(Maybe Text)+    , _gfavlfrFields        :: !(Maybe [GoogleFirestoreAdminV1Field])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleFirestoreAdminV1ListFieldsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfavlfrNextPageToken'+--+-- * 'gfavlfrFields'+googleFirestoreAdminV1ListFieldsResponse+    :: GoogleFirestoreAdminV1ListFieldsResponse+googleFirestoreAdminV1ListFieldsResponse =+    GoogleFirestoreAdminV1ListFieldsResponse'+    { _gfavlfrNextPageToken = Nothing+    , _gfavlfrFields = Nothing+    }++-- | A page token that may be used to request another page of results. If+-- blank, this is the last page.+gfavlfrNextPageToken :: Lens' GoogleFirestoreAdminV1ListFieldsResponse (Maybe Text)+gfavlfrNextPageToken+  = lens _gfavlfrNextPageToken+      (\ s a -> s{_gfavlfrNextPageToken = a})++-- | The requested fields.+gfavlfrFields :: Lens' GoogleFirestoreAdminV1ListFieldsResponse [GoogleFirestoreAdminV1Field]+gfavlfrFields+  = lens _gfavlfrFields+      (\ s a -> s{_gfavlfrFields = a})+      . _Default+      . _Coerce++instance FromJSON+         GoogleFirestoreAdminV1ListFieldsResponse where+        parseJSON+          = withObject+              "GoogleFirestoreAdminV1ListFieldsResponse"+              (\ o ->+                 GoogleFirestoreAdminV1ListFieldsResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "fields" .!= mempty))++instance ToJSON+         GoogleFirestoreAdminV1ListFieldsResponse where+        toJSON GoogleFirestoreAdminV1ListFieldsResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _gfavlfrNextPageToken,+                  ("fields" .=) <$> _gfavlfrFields])++-- | The request for FirestoreAdmin.ImportDocuments.+--+-- /See:/ 'googleFirestoreAdminV1ImportDocumentsRequest' smart constructor.+data GoogleFirestoreAdminV1ImportDocumentsRequest = GoogleFirestoreAdminV1ImportDocumentsRequest'+    { _gfavidrInputURIPrefix :: !(Maybe Text)+    , _gfavidrCollectionIds  :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleFirestoreAdminV1ImportDocumentsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfavidrInputURIPrefix'+--+-- * 'gfavidrCollectionIds'+googleFirestoreAdminV1ImportDocumentsRequest+    :: GoogleFirestoreAdminV1ImportDocumentsRequest+googleFirestoreAdminV1ImportDocumentsRequest =+    GoogleFirestoreAdminV1ImportDocumentsRequest'+    { _gfavidrInputURIPrefix = Nothing+    , _gfavidrCollectionIds = Nothing+    }++-- | Location of the exported files. This must match the output_uri_prefix of+-- an ExportDocumentsResponse from an export that has completed+-- successfully. See:+-- google.firestore.admin.v1.ExportDocumentsResponse.output_uri_prefix.+gfavidrInputURIPrefix :: Lens' GoogleFirestoreAdminV1ImportDocumentsRequest (Maybe Text)+gfavidrInputURIPrefix+  = lens _gfavidrInputURIPrefix+      (\ s a -> s{_gfavidrInputURIPrefix = a})++-- | Which collection ids to import. Unspecified means all collections+-- included in the import.+gfavidrCollectionIds :: Lens' GoogleFirestoreAdminV1ImportDocumentsRequest [Text]+gfavidrCollectionIds+  = lens _gfavidrCollectionIds+      (\ s a -> s{_gfavidrCollectionIds = a})+      . _Default+      . _Coerce++instance FromJSON+         GoogleFirestoreAdminV1ImportDocumentsRequest where+        parseJSON+          = withObject+              "GoogleFirestoreAdminV1ImportDocumentsRequest"+              (\ o ->+                 GoogleFirestoreAdminV1ImportDocumentsRequest' <$>+                   (o .:? "inputUriPrefix") <*>+                     (o .:? "collectionIds" .!= mempty))++instance ToJSON+         GoogleFirestoreAdminV1ImportDocumentsRequest where+        toJSON+          GoogleFirestoreAdminV1ImportDocumentsRequest'{..}+          = object+              (catMaybes+                 [("inputUriPrefix" .=) <$> _gfavidrInputURIPrefix,+                  ("collectionIds" .=) <$> _gfavidrCollectionIds])++-- | The metadata message for google.cloud.location.Location.metadata.+--+-- /See:/ 'googleFirestoreAdminV1LocationMetadata' smart constructor.+data GoogleFirestoreAdminV1LocationMetadata =+    GoogleFirestoreAdminV1LocationMetadata'+    deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleFirestoreAdminV1LocationMetadata' with the minimum fields required to make a request.+--+googleFirestoreAdminV1LocationMetadata+    :: GoogleFirestoreAdminV1LocationMetadata+googleFirestoreAdminV1LocationMetadata =+    GoogleFirestoreAdminV1LocationMetadata'++instance FromJSON+         GoogleFirestoreAdminV1LocationMetadata where+        parseJSON+          = withObject "GoogleFirestoreAdminV1LocationMetadata"+              (\ o -> pure GoogleFirestoreAdminV1LocationMetadata')++instance ToJSON+         GoogleFirestoreAdminV1LocationMetadata where+        toJSON = const emptyObject++-- | The request message for Operations.CancelOperation.+--+-- /See:/ 'googleLongrunningCancelOperationRequest' smart constructor.+data GoogleLongrunningCancelOperationRequest =+    GoogleLongrunningCancelOperationRequest'+    deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleLongrunningCancelOperationRequest' with the minimum fields required to make a request.+--+googleLongrunningCancelOperationRequest+    :: GoogleLongrunningCancelOperationRequest+googleLongrunningCancelOperationRequest =+    GoogleLongrunningCancelOperationRequest'++instance FromJSON+         GoogleLongrunningCancelOperationRequest where+        parseJSON+          = withObject+              "GoogleLongrunningCancelOperationRequest"+              (\ o ->+                 pure GoogleLongrunningCancelOperationRequest')++instance ToJSON+         GoogleLongrunningCancelOperationRequest where+        toJSON = const emptyObject++-- | The response from Firestore.ListCollectionIds.+--+-- /See:/ 'listCollectionIdsResponse' smart constructor.+data ListCollectionIdsResponse = ListCollectionIdsResponse'+    { _lcirNextPageToken :: !(Maybe Text)+    , _lcirCollectionIds :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListCollectionIdsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lcirNextPageToken'+--+-- * 'lcirCollectionIds'+listCollectionIdsResponse+    :: ListCollectionIdsResponse+listCollectionIdsResponse =+    ListCollectionIdsResponse'+    { _lcirNextPageToken = Nothing+    , _lcirCollectionIds = Nothing+    }++-- | A page token that may be used to continue the list.+lcirNextPageToken :: Lens' ListCollectionIdsResponse (Maybe Text)+lcirNextPageToken+  = lens _lcirNextPageToken+      (\ s a -> s{_lcirNextPageToken = a})++-- | The collection ids.+lcirCollectionIds :: Lens' ListCollectionIdsResponse [Text]+lcirCollectionIds+  = lens _lcirCollectionIds+      (\ s a -> s{_lcirCollectionIds = a})+      . _Default+      . _Coerce++instance FromJSON ListCollectionIdsResponse where+        parseJSON+          = withObject "ListCollectionIdsResponse"+              (\ o ->+                 ListCollectionIdsResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "collectionIds" .!= mempty))++instance ToJSON ListCollectionIdsResponse where+        toJSON ListCollectionIdsResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _lcirNextPageToken,+                  ("collectionIds" .=) <$> _lcirCollectionIds])++-- | A reference to a field, such as \`max(messages.time) as max_time\`.+--+-- /See:/ 'fieldReference' smart constructor.+newtype FieldReference = FieldReference'+    { _frFieldPath :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FieldReference' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'frFieldPath'+fieldReference+    :: FieldReference+fieldReference =+    FieldReference'+    { _frFieldPath = Nothing+    }++frFieldPath :: Lens' FieldReference (Maybe Text)+frFieldPath+  = lens _frFieldPath (\ s a -> s{_frFieldPath = a})++instance FromJSON FieldReference where+        parseJSON+          = withObject "FieldReference"+              (\ o -> FieldReference' <$> (o .:? "fieldPath"))++instance ToJSON FieldReference where+        toJSON FieldReference'{..}+          = object+              (catMaybes [("fieldPath" .=) <$> _frFieldPath])++-- | A Document has been removed from the view of the targets. Sent if the+-- document is no longer relevant to a target and is out of view. Can be+-- sent instead of a DocumentDelete or a DocumentChange if the server can+-- not send the new value of the document. Multiple DocumentRemove messages+-- may be returned for the same logical write or delete, if multiple+-- targets are affected.+--+-- /See:/ 'documentRemove' smart constructor.+data DocumentRemove = DocumentRemove'+    { _drReadTime         :: !(Maybe DateTime')+    , _drDocument         :: !(Maybe Text)+    , _drRemovedTargetIds :: !(Maybe [Textual Int32])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DocumentRemove' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drReadTime'+--+-- * 'drDocument'+--+-- * 'drRemovedTargetIds'+documentRemove+    :: DocumentRemove+documentRemove =+    DocumentRemove'+    { _drReadTime = Nothing+    , _drDocument = Nothing+    , _drRemovedTargetIds = Nothing+    }++-- | The read timestamp at which the remove was observed. Greater or equal to+-- the \`commit_time\` of the change\/delete\/remove.+drReadTime :: Lens' DocumentRemove (Maybe UTCTime)+drReadTime+  = lens _drReadTime (\ s a -> s{_drReadTime = a}) .+      mapping _DateTime++-- | The resource name of the Document that has gone out of view.+drDocument :: Lens' DocumentRemove (Maybe Text)+drDocument+  = lens _drDocument (\ s a -> s{_drDocument = a})++-- | A set of target IDs for targets that previously matched this document.+drRemovedTargetIds :: Lens' DocumentRemove [Int32]+drRemovedTargetIds+  = lens _drRemovedTargetIds+      (\ s a -> s{_drRemovedTargetIds = a})+      . _Default+      . _Coerce++instance FromJSON DocumentRemove where+        parseJSON+          = withObject "DocumentRemove"+              (\ o ->+                 DocumentRemove' <$>+                   (o .:? "readTime") <*> (o .:? "document") <*>+                     (o .:? "removedTargetIds" .!= mempty))++instance ToJSON DocumentRemove where+        toJSON DocumentRemove'{..}+          = object+              (catMaybes+                 [("readTime" .=) <$> _drReadTime,+                  ("document" .=) <$> _drDocument,+                  ("removedTargetIds" .=) <$> _drRemovedTargetIds])++-- | A Document has changed. May be the result of multiple writes, including+-- deletes, that ultimately resulted in a new value for the Document.+-- Multiple DocumentChange messages may be returned for the same logical+-- change, if multiple targets are affected.+--+-- /See:/ 'documentChange' smart constructor.+data DocumentChange = DocumentChange'+    { _dcDocument         :: !(Maybe Document)+    , _dcTargetIds        :: !(Maybe [Textual Int32])+    , _dcRemovedTargetIds :: !(Maybe [Textual Int32])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DocumentChange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcDocument'+--+-- * 'dcTargetIds'+--+-- * 'dcRemovedTargetIds'+documentChange+    :: DocumentChange+documentChange =+    DocumentChange'+    { _dcDocument = Nothing+    , _dcTargetIds = Nothing+    , _dcRemovedTargetIds = Nothing+    }++-- | The new state of the Document. If \`mask\` is set, contains only fields+-- that were updated or added.+dcDocument :: Lens' DocumentChange (Maybe Document)+dcDocument+  = lens _dcDocument (\ s a -> s{_dcDocument = a})++-- | A set of target IDs of targets that match this document.+dcTargetIds :: Lens' DocumentChange [Int32]+dcTargetIds+  = lens _dcTargetIds (\ s a -> s{_dcTargetIds = a}) .+      _Default+      . _Coerce++-- | A set of target IDs for targets that no longer match this document.+dcRemovedTargetIds :: Lens' DocumentChange [Int32]+dcRemovedTargetIds+  = lens _dcRemovedTargetIds+      (\ s a -> s{_dcRemovedTargetIds = a})+      . _Default+      . _Coerce++instance FromJSON DocumentChange where+        parseJSON+          = withObject "DocumentChange"+              (\ o ->+                 DocumentChange' <$>+                   (o .:? "document") <*> (o .:? "targetIds" .!= mempty)+                     <*> (o .:? "removedTargetIds" .!= mempty))++instance ToJSON DocumentChange where+        toJSON DocumentChange'{..}+          = object+              (catMaybes+                 [("document" .=) <$> _dcDocument,+                  ("targetIds" .=) <$> _dcTargetIds,+                  ("removedTargetIds" .=) <$> _dcRemovedTargetIds])++-- | Metadata for google.longrunning.Operation results from+-- FirestoreAdmin.UpdateField.+--+-- /See:/ 'googleFirestoreAdminV1FieldOperationMetadata' smart constructor.+data GoogleFirestoreAdminV1FieldOperationMetadata = GoogleFirestoreAdminV1FieldOperationMetadata'+    { _gfavfomProgressBytes     :: !(Maybe GoogleFirestoreAdminV1Progress)+    , _gfavfomState             :: !(Maybe GoogleFirestoreAdminV1FieldOperationMetadataState)+    , _gfavfomField             :: !(Maybe Text)+    , _gfavfomStartTime         :: !(Maybe DateTime')+    , _gfavfomProgressDocuments :: !(Maybe GoogleFirestoreAdminV1Progress)+    , _gfavfomIndexConfigDeltas :: !(Maybe [GoogleFirestoreAdminV1IndexConfigDelta])+    , _gfavfomEndTime           :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleFirestoreAdminV1FieldOperationMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfavfomProgressBytes'+--+-- * 'gfavfomState'+--+-- * 'gfavfomField'+--+-- * 'gfavfomStartTime'+--+-- * 'gfavfomProgressDocuments'+--+-- * 'gfavfomIndexConfigDeltas'+--+-- * 'gfavfomEndTime'+googleFirestoreAdminV1FieldOperationMetadata+    :: GoogleFirestoreAdminV1FieldOperationMetadata+googleFirestoreAdminV1FieldOperationMetadata =+    GoogleFirestoreAdminV1FieldOperationMetadata'+    { _gfavfomProgressBytes = Nothing+    , _gfavfomState = Nothing+    , _gfavfomField = Nothing+    , _gfavfomStartTime = Nothing+    , _gfavfomProgressDocuments = Nothing+    , _gfavfomIndexConfigDeltas = Nothing+    , _gfavfomEndTime = Nothing+    }++-- | The progress, in bytes, of this operation.+gfavfomProgressBytes :: Lens' GoogleFirestoreAdminV1FieldOperationMetadata (Maybe GoogleFirestoreAdminV1Progress)+gfavfomProgressBytes+  = lens _gfavfomProgressBytes+      (\ s a -> s{_gfavfomProgressBytes = a})++-- | The state of the operation.+gfavfomState :: Lens' GoogleFirestoreAdminV1FieldOperationMetadata (Maybe GoogleFirestoreAdminV1FieldOperationMetadataState)+gfavfomState+  = lens _gfavfomState (\ s a -> s{_gfavfomState = a})++-- | The field resource that this operation is acting on. For example:+-- \`projects\/{project_id}\/databases\/{database_id}\/collectionGroups\/{collection_id}\/fields\/{field_path}\`+gfavfomField :: Lens' GoogleFirestoreAdminV1FieldOperationMetadata (Maybe Text)+gfavfomField+  = lens _gfavfomField (\ s a -> s{_gfavfomField = a})++-- | The time this operation started.+gfavfomStartTime :: Lens' GoogleFirestoreAdminV1FieldOperationMetadata (Maybe UTCTime)+gfavfomStartTime+  = lens _gfavfomStartTime+      (\ s a -> s{_gfavfomStartTime = a})+      . mapping _DateTime++-- | The progress, in documents, of this operation.+gfavfomProgressDocuments :: Lens' GoogleFirestoreAdminV1FieldOperationMetadata (Maybe GoogleFirestoreAdminV1Progress)+gfavfomProgressDocuments+  = lens _gfavfomProgressDocuments+      (\ s a -> s{_gfavfomProgressDocuments = a})++-- | A list of IndexConfigDelta, which describe the intent of this operation.+gfavfomIndexConfigDeltas :: Lens' GoogleFirestoreAdminV1FieldOperationMetadata [GoogleFirestoreAdminV1IndexConfigDelta]+gfavfomIndexConfigDeltas+  = lens _gfavfomIndexConfigDeltas+      (\ s a -> s{_gfavfomIndexConfigDeltas = a})+      . _Default+      . _Coerce++-- | The time this operation completed. Will be unset if operation still in+-- progress.+gfavfomEndTime :: Lens' GoogleFirestoreAdminV1FieldOperationMetadata (Maybe UTCTime)+gfavfomEndTime+  = lens _gfavfomEndTime+      (\ s a -> s{_gfavfomEndTime = a})+      . mapping _DateTime++instance FromJSON+         GoogleFirestoreAdminV1FieldOperationMetadata where+        parseJSON+          = withObject+              "GoogleFirestoreAdminV1FieldOperationMetadata"+              (\ o ->+                 GoogleFirestoreAdminV1FieldOperationMetadata' <$>+                   (o .:? "progressBytes") <*> (o .:? "state") <*>+                     (o .:? "field")+                     <*> (o .:? "startTime")+                     <*> (o .:? "progressDocuments")+                     <*> (o .:? "indexConfigDeltas" .!= mempty)+                     <*> (o .:? "endTime"))++instance ToJSON+         GoogleFirestoreAdminV1FieldOperationMetadata where+        toJSON+          GoogleFirestoreAdminV1FieldOperationMetadata'{..}+          = object+              (catMaybes+                 [("progressBytes" .=) <$> _gfavfomProgressBytes,+                  ("state" .=) <$> _gfavfomState,+                  ("field" .=) <$> _gfavfomField,+                  ("startTime" .=) <$> _gfavfomStartTime,+                  ("progressDocuments" .=) <$>+                    _gfavfomProgressDocuments,+                  ("indexConfigDeltas" .=) <$>+                    _gfavfomIndexConfigDeltas,+                  ("endTime" .=) <$> _gfavfomEndTime])++-- | The response for FirestoreAdmin.ListIndexes.+--+-- /See:/ 'googleFirestoreAdminV1ListIndexesResponse' smart constructor.+data GoogleFirestoreAdminV1ListIndexesResponse = GoogleFirestoreAdminV1ListIndexesResponse'+    { _gfavlirNextPageToken :: !(Maybe Text)+    , _gfavlirIndexes       :: !(Maybe [GoogleFirestoreAdminV1Index])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleFirestoreAdminV1ListIndexesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfavlirNextPageToken'+--+-- * 'gfavlirIndexes'+googleFirestoreAdminV1ListIndexesResponse+    :: GoogleFirestoreAdminV1ListIndexesResponse+googleFirestoreAdminV1ListIndexesResponse =+    GoogleFirestoreAdminV1ListIndexesResponse'+    { _gfavlirNextPageToken = Nothing+    , _gfavlirIndexes = Nothing+    }++-- | A page token that may be used to request another page of results. If+-- blank, this is the last page.+gfavlirNextPageToken :: Lens' GoogleFirestoreAdminV1ListIndexesResponse (Maybe Text)+gfavlirNextPageToken+  = lens _gfavlirNextPageToken+      (\ s a -> s{_gfavlirNextPageToken = a})++-- | The requested indexes.+gfavlirIndexes :: Lens' GoogleFirestoreAdminV1ListIndexesResponse [GoogleFirestoreAdminV1Index]+gfavlirIndexes+  = lens _gfavlirIndexes+      (\ s a -> s{_gfavlirIndexes = a})+      . _Default+      . _Coerce++instance FromJSON+         GoogleFirestoreAdminV1ListIndexesResponse where+        parseJSON+          = withObject+              "GoogleFirestoreAdminV1ListIndexesResponse"+              (\ o ->+                 GoogleFirestoreAdminV1ListIndexesResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "indexes" .!= mempty))++instance ToJSON+         GoogleFirestoreAdminV1ListIndexesResponse where+        toJSON GoogleFirestoreAdminV1ListIndexesResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _gfavlirNextPageToken,+                  ("indexes" .=) <$> _gfavlirIndexes])++-- | A map value.+--+-- /See:/ 'mapValue' smart constructor.+newtype MapValue = MapValue'+    { _mvFields :: Maybe MapValueFields+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MapValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mvFields'+mapValue+    :: MapValue+mapValue =+    MapValue'+    { _mvFields = Nothing+    }++-- | The map\'s fields. The map keys represent field names. Field names+-- matching the regular expression \`__.*__\` are reserved. Reserved field+-- names are forbidden except in certain documented contexts. The map keys,+-- represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.+mvFields :: Lens' MapValue (Maybe MapValueFields)+mvFields = lens _mvFields (\ s a -> s{_mvFields = a})++instance FromJSON MapValue where+        parseJSON+          = withObject "MapValue"+              (\ o -> MapValue' <$> (o .:? "fields"))++instance ToJSON MapValue where+        toJSON MapValue'{..}+          = object (catMaybes [("fields" .=) <$> _mvFields])++-- | The request for Firestore.BatchGetDocuments.+--+-- /See:/ 'batchGetDocumentsRequest' smart constructor.+data BatchGetDocumentsRequest = BatchGetDocumentsRequest'+    { _bReadTime       :: !(Maybe DateTime')+    , _bNewTransaction :: !(Maybe TransactionOptions)+    , _bTransaction    :: !(Maybe Bytes)+    , _bDocuments      :: !(Maybe [Text])+    , _bMask           :: !(Maybe DocumentMask)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchGetDocumentsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bReadTime'+--+-- * 'bNewTransaction'+--+-- * 'bTransaction'+--+-- * 'bDocuments'+--+-- * 'bMask'+batchGetDocumentsRequest+    :: BatchGetDocumentsRequest+batchGetDocumentsRequest =+    BatchGetDocumentsRequest'+    { _bReadTime = Nothing+    , _bNewTransaction = Nothing+    , _bTransaction = Nothing+    , _bDocuments = Nothing+    , _bMask = Nothing+    }++-- | Reads documents as they were at the given time. This may not be older+-- than 60 seconds.+bReadTime :: Lens' BatchGetDocumentsRequest (Maybe UTCTime)+bReadTime+  = lens _bReadTime (\ s a -> s{_bReadTime = a}) .+      mapping _DateTime++-- | Starts a new transaction and reads the documents. Defaults to a+-- read-only transaction. The new transaction ID will be returned as the+-- first response in the stream.+bNewTransaction :: Lens' BatchGetDocumentsRequest (Maybe TransactionOptions)+bNewTransaction+  = lens _bNewTransaction+      (\ s a -> s{_bNewTransaction = a})++-- | Reads documents in a transaction.+bTransaction :: Lens' BatchGetDocumentsRequest (Maybe ByteString)+bTransaction+  = lens _bTransaction (\ s a -> s{_bTransaction = a})+      . mapping _Bytes++-- | The names of the documents to retrieve. In the format:+-- \`projects\/{project_id}\/databases\/{database_id}\/documents\/{document_path}\`.+-- The request will fail if any of the document is not a child resource of+-- the given \`database\`. Duplicate names will be elided.+bDocuments :: Lens' BatchGetDocumentsRequest [Text]+bDocuments+  = lens _bDocuments (\ s a -> s{_bDocuments = a}) .+      _Default+      . _Coerce++-- | The fields to return. If not set, returns all fields. If a document has+-- a field that is not present in this mask, that field will not be+-- returned in the response.+bMask :: Lens' BatchGetDocumentsRequest (Maybe DocumentMask)+bMask = lens _bMask (\ s a -> s{_bMask = a})++instance FromJSON BatchGetDocumentsRequest where+        parseJSON+          = withObject "BatchGetDocumentsRequest"+              (\ o ->+                 BatchGetDocumentsRequest' <$>+                   (o .:? "readTime") <*> (o .:? "newTransaction") <*>+                     (o .:? "transaction")+                     <*> (o .:? "documents" .!= mempty)+                     <*> (o .:? "mask"))++instance ToJSON BatchGetDocumentsRequest where+        toJSON BatchGetDocumentsRequest'{..}+          = object+              (catMaybes+                 [("readTime" .=) <$> _bReadTime,+                  ("newTransaction" .=) <$> _bNewTransaction,+                  ("transaction" .=) <$> _bTransaction,+                  ("documents" .=) <$> _bDocuments,+                  ("mask" .=) <$> _bMask])++-- | A Firestore document. Must not exceed 1 MiB - 4 bytes.+--+-- /See:/ 'document' smart constructor.+data Document = Document'+    { _dUpdateTime :: !(Maybe DateTime')+    , _dName       :: !(Maybe Text)+    , _dCreateTime :: !(Maybe DateTime')+    , _dFields     :: !(Maybe DocumentFields)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Document' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dUpdateTime'+--+-- * 'dName'+--+-- * 'dCreateTime'+--+-- * 'dFields'+document+    :: Document+document =+    Document'+    { _dUpdateTime = Nothing+    , _dName = Nothing+    , _dCreateTime = Nothing+    , _dFields = Nothing+    }++-- | Output only. The time at which the document was last changed. This value+-- is initially set to the \`create_time\` then increases monotonically+-- with each change to the document. It can also be compared to values from+-- other documents and the \`read_time\` of a query.+dUpdateTime :: Lens' Document (Maybe UTCTime)+dUpdateTime+  = lens _dUpdateTime (\ s a -> s{_dUpdateTime = a}) .+      mapping _DateTime++-- | The resource name of the document, for example+-- \`projects\/{project_id}\/databases\/{database_id}\/documents\/{document_path}\`.+dName :: Lens' Document (Maybe Text)+dName = lens _dName (\ s a -> s{_dName = a})++-- | Output only. The time at which the document was created. This value+-- increases monotonically when a document is deleted then recreated. It+-- can also be compared to values from other documents and the+-- \`read_time\` of a query.+dCreateTime :: Lens' Document (Maybe UTCTime)+dCreateTime+  = lens _dCreateTime (\ s a -> s{_dCreateTime = a}) .+      mapping _DateTime++-- | The document\'s fields. The map keys represent field names. A simple+-- field name contains only characters \`a\` to \`z\`, \`A\` to \`Z\`,+-- \`0\` to \`9\`, or \`_\`, and must not start with \`0\` to \`9\`. For+-- example, \`foo_bar_17\`. Field names matching the regular expression+-- \`__.*__\` are reserved. Reserved field names are forbidden except in+-- certain documented contexts. The map keys, represented as UTF-8, must+-- not exceed 1,500 bytes and cannot be empty. Field paths may be used in+-- other contexts to refer to structured fields defined here. For+-- \`map_value\`, the field path is represented by the simple or quoted+-- field names of the containing fields, delimited by \`.\`. For example,+-- the structured field \`\"foo\" : { map_value: { \"x&y\" : {+-- string_value: \"hello\" }}}\` would be represented by the field path+-- \`foo.x&y\`. Within a field path, a quoted field name starts and ends+-- with \`\` \` \`\` and may contain any character. Some characters,+-- including \`\` \` \`\`, must be escaped using a \`\\\`. For example,+-- \`\` \`x&y\` \`\` represents \`x&y\` and \`\` \`bak\\\`tik\` \`\`+-- represents \`\` bak\`tik \`\`.+dFields :: Lens' Document (Maybe DocumentFields)+dFields = lens _dFields (\ s a -> s{_dFields = a})++instance FromJSON Document where+        parseJSON+          = withObject "Document"+              (\ o ->+                 Document' <$>+                   (o .:? "updateTime") <*> (o .:? "name") <*>+                     (o .:? "createTime")+                     <*> (o .:? "fields"))++instance ToJSON Document where+        toJSON Document'{..}+          = object+              (catMaybes+                 [("updateTime" .=) <$> _dUpdateTime,+                  ("name" .=) <$> _dName,+                  ("createTime" .=) <$> _dCreateTime,+                  ("fields" .=) <$> _dFields])++-- | An array value.+--+-- /See:/ 'arrayValue' smart constructor.+newtype ArrayValue = ArrayValue'+    { _avValues :: Maybe [Value]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ArrayValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'avValues'+arrayValue+    :: ArrayValue+arrayValue =+    ArrayValue'+    { _avValues = Nothing+    }++-- | Values in the array.+avValues :: Lens' ArrayValue [Value]+avValues+  = lens _avValues (\ s a -> s{_avValues = a}) .+      _Default+      . _Coerce++instance FromJSON ArrayValue where+        parseJSON+          = withObject "ArrayValue"+              (\ o -> ArrayValue' <$> (o .:? "values" .!= mempty))++instance ToJSON ArrayValue where+        toJSON ArrayValue'{..}+          = object (catMaybes [("values" .=) <$> _avValues])++-- | The response for Firestore.Commit.+--+-- /See:/ 'commitResponse' smart constructor.+data CommitResponse = CommitResponse'+    { _crCommitTime   :: !(Maybe DateTime')+    , _crWriteResults :: !(Maybe [WriteResult])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CommitResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crCommitTime'+--+-- * 'crWriteResults'+commitResponse+    :: CommitResponse+commitResponse =+    CommitResponse'+    { _crCommitTime = Nothing+    , _crWriteResults = Nothing+    }++-- | The time at which the commit occurred.+crCommitTime :: Lens' CommitResponse (Maybe UTCTime)+crCommitTime+  = lens _crCommitTime (\ s a -> s{_crCommitTime = a})+      . mapping _DateTime++-- | The result of applying the writes. This i-th write result corresponds to+-- the i-th write in the request.+crWriteResults :: Lens' CommitResponse [WriteResult]+crWriteResults+  = lens _crWriteResults+      (\ s a -> s{_crWriteResults = a})+      . _Default+      . _Coerce++instance FromJSON CommitResponse where+        parseJSON+          = withObject "CommitResponse"+              (\ o ->+                 CommitResponse' <$>+                   (o .:? "commitTime") <*>+                     (o .:? "writeResults" .!= mempty))++instance ToJSON CommitResponse where+        toJSON CommitResponse'{..}+          = object+              (catMaybes+                 [("commitTime" .=) <$> _crCommitTime,+                  ("writeResults" .=) <$> _crWriteResults])++-- | The response for Firestore.Listen.+--+-- /See:/ 'listenResponse' smart constructor.+data ListenResponse = ListenResponse'+    { _lrTargetChange   :: !(Maybe TargetChange)+    , _lrDocumentRemove :: !(Maybe DocumentRemove)+    , _lrDocumentChange :: !(Maybe DocumentChange)+    , _lrFilter         :: !(Maybe ExistenceFilter)+    , _lrDocumentDelete :: !(Maybe DocumentDelete)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListenResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrTargetChange'+--+-- * 'lrDocumentRemove'+--+-- * 'lrDocumentChange'+--+-- * 'lrFilter'+--+-- * 'lrDocumentDelete'+listenResponse+    :: ListenResponse+listenResponse =+    ListenResponse'+    { _lrTargetChange = Nothing+    , _lrDocumentRemove = Nothing+    , _lrDocumentChange = Nothing+    , _lrFilter = Nothing+    , _lrDocumentDelete = Nothing+    }++-- | Targets have changed.+lrTargetChange :: Lens' ListenResponse (Maybe TargetChange)+lrTargetChange+  = lens _lrTargetChange+      (\ s a -> s{_lrTargetChange = a})++-- | A Document has been removed from a target (because it is no longer+-- relevant to that target).+lrDocumentRemove :: Lens' ListenResponse (Maybe DocumentRemove)+lrDocumentRemove+  = lens _lrDocumentRemove+      (\ s a -> s{_lrDocumentRemove = a})++-- | A Document has changed.+lrDocumentChange :: Lens' ListenResponse (Maybe DocumentChange)+lrDocumentChange+  = lens _lrDocumentChange+      (\ s a -> s{_lrDocumentChange = a})++-- | A filter to apply to the set of documents previously returned for the+-- given target. Returned when documents may have been removed from the+-- given target, but the exact documents are unknown.+lrFilter :: Lens' ListenResponse (Maybe ExistenceFilter)+lrFilter = lens _lrFilter (\ s a -> s{_lrFilter = a})++-- | A Document has been deleted.+lrDocumentDelete :: Lens' ListenResponse (Maybe DocumentDelete)+lrDocumentDelete+  = lens _lrDocumentDelete+      (\ s a -> s{_lrDocumentDelete = a})++instance FromJSON ListenResponse where+        parseJSON+          = withObject "ListenResponse"+              (\ o ->+                 ListenResponse' <$>+                   (o .:? "targetChange") <*> (o .:? "documentRemove")+                     <*> (o .:? "documentChange")+                     <*> (o .:? "filter")+                     <*> (o .:? "documentDelete"))++instance ToJSON ListenResponse where+        toJSON ListenResponse'{..}+          = object+              (catMaybes+                 [("targetChange" .=) <$> _lrTargetChange,+                  ("documentRemove" .=) <$> _lrDocumentRemove,+                  ("documentChange" .=) <$> _lrDocumentChange,+                  ("filter" .=) <$> _lrFilter,+                  ("documentDelete" .=) <$> _lrDocumentDelete])++-- | A filter on a specific field.+--+-- /See:/ 'fieldFilter' smart constructor.+data FieldFilter = FieldFilter'+    { _ffOp    :: !(Maybe FieldFilterOp)+    , _ffField :: !(Maybe FieldReference)+    , _ffValue :: !(Maybe Value)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FieldFilter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ffOp'+--+-- * 'ffField'+--+-- * 'ffValue'+fieldFilter+    :: FieldFilter+fieldFilter =+    FieldFilter'+    { _ffOp = Nothing+    , _ffField = Nothing+    , _ffValue = Nothing+    }++-- | The operator to filter by.+ffOp :: Lens' FieldFilter (Maybe FieldFilterOp)+ffOp = lens _ffOp (\ s a -> s{_ffOp = a})++-- | The field to filter by.+ffField :: Lens' FieldFilter (Maybe FieldReference)+ffField = lens _ffField (\ s a -> s{_ffField = a})++-- | The value to compare to.+ffValue :: Lens' FieldFilter (Maybe Value)+ffValue = lens _ffValue (\ s a -> s{_ffValue = a})++instance FromJSON FieldFilter where+        parseJSON+          = withObject "FieldFilter"+              (\ o ->+                 FieldFilter' <$>+                   (o .:? "op") <*> (o .:? "field") <*> (o .:? "value"))++instance ToJSON FieldFilter where+        toJSON FieldFilter'{..}+          = object+              (catMaybes+                 [("op" .=) <$> _ffOp, ("field" .=) <$> _ffField,+                  ("value" .=) <$> _ffValue])++-- | The normal response of the operation in case of success. If the original+-- method returns no data on success, such as \`Delete\`, the response is+-- \`google.protobuf.Empty\`. If the original method is standard+-- \`Get\`\/\`Create\`\/\`Update\`, the response should be the resource.+-- For other methods, the response should have the type \`XxxResponse\`,+-- where \`Xxx\` is the original method name. For example, if the original+-- method name is \`TakeSnapshot()\`, the inferred response type is+-- \`TakeSnapshotResponse\`.+--+-- /See:/ 'googleLongrunningOperationResponse' smart constructor.+newtype GoogleLongrunningOperationResponse = GoogleLongrunningOperationResponse'+    { _glorAddtional :: HashMap Text JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleLongrunningOperationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'glorAddtional'+googleLongrunningOperationResponse+    :: HashMap Text JSONValue -- ^ 'glorAddtional'+    -> GoogleLongrunningOperationResponse+googleLongrunningOperationResponse pGlorAddtional_ =+    GoogleLongrunningOperationResponse'+    { _glorAddtional = _Coerce # pGlorAddtional_+    }++-- | Properties of the object. Contains field \'type with type URL.+glorAddtional :: Lens' GoogleLongrunningOperationResponse (HashMap Text JSONValue)+glorAddtional+  = lens _glorAddtional+      (\ s a -> s{_glorAddtional = a})+      . _Coerce++instance FromJSON GoogleLongrunningOperationResponse+         where+        parseJSON+          = withObject "GoogleLongrunningOperationResponse"+              (\ o ->+                 GoogleLongrunningOperationResponse' <$>+                   (parseJSONObject o))++instance ToJSON GoogleLongrunningOperationResponse+         where+        toJSON = toJSON . _glorAddtional++-- | The response for Firestore.ListDocuments.+--+-- /See:/ 'listDocumentsResponse' smart constructor.+data ListDocumentsResponse = ListDocumentsResponse'+    { _ldrNextPageToken :: !(Maybe Text)+    , _ldrDocuments     :: !(Maybe [Document])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListDocumentsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ldrNextPageToken'+--+-- * 'ldrDocuments'+listDocumentsResponse+    :: ListDocumentsResponse+listDocumentsResponse =+    ListDocumentsResponse'+    { _ldrNextPageToken = Nothing+    , _ldrDocuments = Nothing+    }++-- | The next page token.+ldrNextPageToken :: Lens' ListDocumentsResponse (Maybe Text)+ldrNextPageToken+  = lens _ldrNextPageToken+      (\ s a -> s{_ldrNextPageToken = a})++-- | The Documents found.+ldrDocuments :: Lens' ListDocumentsResponse [Document]+ldrDocuments+  = lens _ldrDocuments (\ s a -> s{_ldrDocuments = a})+      . _Default+      . _Coerce++instance FromJSON ListDocumentsResponse where+        parseJSON+          = withObject "ListDocumentsResponse"+              (\ o ->+                 ListDocumentsResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "documents" .!= mempty))++instance ToJSON ListDocumentsResponse where+        toJSON ListDocumentsResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _ldrNextPageToken,+                  ("documents" .=) <$> _ldrDocuments])++-- | Returned in the google.longrunning.Operation response field.+--+-- /See:/ 'googleFirestoreAdminV1ExportDocumentsResponse' smart constructor.+newtype GoogleFirestoreAdminV1ExportDocumentsResponse = GoogleFirestoreAdminV1ExportDocumentsResponse'+    { _gOutputURIPrefix :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleFirestoreAdminV1ExportDocumentsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gOutputURIPrefix'+googleFirestoreAdminV1ExportDocumentsResponse+    :: GoogleFirestoreAdminV1ExportDocumentsResponse+googleFirestoreAdminV1ExportDocumentsResponse =+    GoogleFirestoreAdminV1ExportDocumentsResponse'+    { _gOutputURIPrefix = Nothing+    }++-- | Location of the output files. This can be used to begin an import into+-- Cloud Firestore (this project or another project) after the operation+-- completes successfully.+gOutputURIPrefix :: Lens' GoogleFirestoreAdminV1ExportDocumentsResponse (Maybe Text)+gOutputURIPrefix+  = lens _gOutputURIPrefix+      (\ s a -> s{_gOutputURIPrefix = a})++instance FromJSON+         GoogleFirestoreAdminV1ExportDocumentsResponse where+        parseJSON+          = withObject+              "GoogleFirestoreAdminV1ExportDocumentsResponse"+              (\ o ->+                 GoogleFirestoreAdminV1ExportDocumentsResponse' <$>+                   (o .:? "outputUriPrefix"))++instance ToJSON+         GoogleFirestoreAdminV1ExportDocumentsResponse where+        toJSON+          GoogleFirestoreAdminV1ExportDocumentsResponse'{..}+          = object+              (catMaybes+                 [("outputUriPrefix" .=) <$> _gOutputURIPrefix])++-- | The projection of document\'s fields to return.+--+-- /See:/ 'projection' smart constructor.+newtype Projection = Projection'+    { _pFields :: Maybe [FieldReference]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Projection' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pFields'+projection+    :: Projection+projection =+    Projection'+    { _pFields = Nothing+    }++-- | The fields to return. If empty, all fields are returned. To only return+-- the name of the document, use \`[\'__name__\']\`.+pFields :: Lens' Projection [FieldReference]+pFields+  = lens _pFields (\ s a -> s{_pFields = a}) . _Default+      . _Coerce++instance FromJSON Projection where+        parseJSON+          = withObject "Projection"+              (\ o -> Projection' <$> (o .:? "fields" .!= mempty))++instance ToJSON Projection where+        toJSON Projection'{..}+          = object (catMaybes [("fields" .=) <$> _pFields])++-- | A filter.+--+-- /See:/ 'filter'' smart constructor.+data Filter = Filter'+    { _fCompositeFilter :: !(Maybe CompositeFilter)+    , _fFieldFilter     :: !(Maybe FieldFilter)+    , _fUnaryFilter     :: !(Maybe UnaryFilter)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Filter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fCompositeFilter'+--+-- * 'fFieldFilter'+--+-- * 'fUnaryFilter'+filter'+    :: Filter+filter' =+    Filter'+    { _fCompositeFilter = Nothing+    , _fFieldFilter = Nothing+    , _fUnaryFilter = Nothing+    }++-- | A composite filter.+fCompositeFilter :: Lens' Filter (Maybe CompositeFilter)+fCompositeFilter+  = lens _fCompositeFilter+      (\ s a -> s{_fCompositeFilter = a})++-- | A filter on a document field.+fFieldFilter :: Lens' Filter (Maybe FieldFilter)+fFieldFilter+  = lens _fFieldFilter (\ s a -> s{_fFieldFilter = a})++-- | A filter that takes exactly one argument.+fUnaryFilter :: Lens' Filter (Maybe UnaryFilter)+fUnaryFilter+  = lens _fUnaryFilter (\ s a -> s{_fUnaryFilter = a})++instance FromJSON Filter where+        parseJSON+          = withObject "Filter"+              (\ o ->+                 Filter' <$>+                   (o .:? "compositeFilter") <*> (o .:? "fieldFilter")+                     <*> (o .:? "unaryFilter"))++instance ToJSON Filter where+        toJSON Filter'{..}+          = object+              (catMaybes+                 [("compositeFilter" .=) <$> _fCompositeFilter,+                  ("fieldFilter" .=) <$> _fFieldFilter,+                  ("unaryFilter" .=) <$> _fUnaryFilter])++-- | Metadata for google.longrunning.Operation results from+-- FirestoreAdmin.CreateIndex.+--+-- /See:/ 'googleFirestoreAdminV1IndexOperationMetadata' smart constructor.+data GoogleFirestoreAdminV1IndexOperationMetadata = GoogleFirestoreAdminV1IndexOperationMetadata'+    { _gfaviomProgressBytes     :: !(Maybe GoogleFirestoreAdminV1Progress)+    , _gfaviomState             :: !(Maybe GoogleFirestoreAdminV1IndexOperationMetadataState)+    , _gfaviomStartTime         :: !(Maybe DateTime')+    , _gfaviomProgressDocuments :: !(Maybe GoogleFirestoreAdminV1Progress)+    , _gfaviomEndTime           :: !(Maybe DateTime')+    , _gfaviomIndex             :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleFirestoreAdminV1IndexOperationMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfaviomProgressBytes'+--+-- * 'gfaviomState'+--+-- * 'gfaviomStartTime'+--+-- * 'gfaviomProgressDocuments'+--+-- * 'gfaviomEndTime'+--+-- * 'gfaviomIndex'+googleFirestoreAdminV1IndexOperationMetadata+    :: GoogleFirestoreAdminV1IndexOperationMetadata+googleFirestoreAdminV1IndexOperationMetadata =+    GoogleFirestoreAdminV1IndexOperationMetadata'+    { _gfaviomProgressBytes = Nothing+    , _gfaviomState = Nothing+    , _gfaviomStartTime = Nothing+    , _gfaviomProgressDocuments = Nothing+    , _gfaviomEndTime = Nothing+    , _gfaviomIndex = Nothing+    }++-- | The progress, in bytes, of this operation.+gfaviomProgressBytes :: Lens' GoogleFirestoreAdminV1IndexOperationMetadata (Maybe GoogleFirestoreAdminV1Progress)+gfaviomProgressBytes+  = lens _gfaviomProgressBytes+      (\ s a -> s{_gfaviomProgressBytes = a})++-- | The state of the operation.+gfaviomState :: Lens' GoogleFirestoreAdminV1IndexOperationMetadata (Maybe GoogleFirestoreAdminV1IndexOperationMetadataState)+gfaviomState+  = lens _gfaviomState (\ s a -> s{_gfaviomState = a})++-- | The time this operation started.+gfaviomStartTime :: Lens' GoogleFirestoreAdminV1IndexOperationMetadata (Maybe UTCTime)+gfaviomStartTime+  = lens _gfaviomStartTime+      (\ s a -> s{_gfaviomStartTime = a})+      . mapping _DateTime++-- | The progress, in documents, of this operation.+gfaviomProgressDocuments :: Lens' GoogleFirestoreAdminV1IndexOperationMetadata (Maybe GoogleFirestoreAdminV1Progress)+gfaviomProgressDocuments+  = lens _gfaviomProgressDocuments+      (\ s a -> s{_gfaviomProgressDocuments = a})++-- | The time this operation completed. Will be unset if operation still in+-- progress.+gfaviomEndTime :: Lens' GoogleFirestoreAdminV1IndexOperationMetadata (Maybe UTCTime)+gfaviomEndTime+  = lens _gfaviomEndTime+      (\ s a -> s{_gfaviomEndTime = a})+      . mapping _DateTime++-- | The index resource that this operation is acting on. For example:+-- \`projects\/{project_id}\/databases\/{database_id}\/collectionGroups\/{collection_id}\/indexes\/{index_id}\`+gfaviomIndex :: Lens' GoogleFirestoreAdminV1IndexOperationMetadata (Maybe Text)+gfaviomIndex+  = lens _gfaviomIndex (\ s a -> s{_gfaviomIndex = a})++instance FromJSON+         GoogleFirestoreAdminV1IndexOperationMetadata where+        parseJSON+          = withObject+              "GoogleFirestoreAdminV1IndexOperationMetadata"+              (\ o ->+                 GoogleFirestoreAdminV1IndexOperationMetadata' <$>+                   (o .:? "progressBytes") <*> (o .:? "state") <*>+                     (o .:? "startTime")+                     <*> (o .:? "progressDocuments")+                     <*> (o .:? "endTime")+                     <*> (o .:? "index"))++instance ToJSON+         GoogleFirestoreAdminV1IndexOperationMetadata where+        toJSON+          GoogleFirestoreAdminV1IndexOperationMetadata'{..}+          = object+              (catMaybes+                 [("progressBytes" .=) <$> _gfaviomProgressBytes,+                  ("state" .=) <$> _gfaviomState,+                  ("startTime" .=) <$> _gfaviomStartTime,+                  ("progressDocuments" .=) <$>+                    _gfaviomProgressDocuments,+                  ("endTime" .=) <$> _gfaviomEndTime,+                  ("index" .=) <$> _gfaviomIndex])++-- | Cross-service attributes for the location. For example+-- {\"cloud.googleapis.com\/region\": \"us-east1\"}+--+-- /See:/ 'locationLabels' smart constructor.+newtype LocationLabels = LocationLabels'+    { _llAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LocationLabels' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'llAddtional'+locationLabels+    :: HashMap Text Text -- ^ 'llAddtional'+    -> LocationLabels+locationLabels pLlAddtional_ =+    LocationLabels'+    { _llAddtional = _Coerce # pLlAddtional_+    }++llAddtional :: Lens' LocationLabels (HashMap Text Text)+llAddtional+  = lens _llAddtional (\ s a -> s{_llAddtional = a}) .+      _Coerce++instance FromJSON LocationLabels where+        parseJSON+          = withObject "LocationLabels"+              (\ o -> LocationLabels' <$> (parseJSONObject o))++instance ToJSON LocationLabels where+        toJSON = toJSON . _llAddtional++-- | A request for Firestore.Listen+--+-- /See:/ 'listenRequest' smart constructor.+data ListenRequest = ListenRequest'+    { _lrRemoveTarget :: !(Maybe (Textual Int32))+    , _lrLabels       :: !(Maybe ListenRequestLabels)+    , _lrAddTarget    :: !(Maybe Target)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListenRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrRemoveTarget'+--+-- * 'lrLabels'+--+-- * 'lrAddTarget'+listenRequest+    :: ListenRequest+listenRequest =+    ListenRequest'+    { _lrRemoveTarget = Nothing+    , _lrLabels = Nothing+    , _lrAddTarget = Nothing+    }++-- | The ID of a target to remove from this stream.+lrRemoveTarget :: Lens' ListenRequest (Maybe Int32)+lrRemoveTarget+  = lens _lrRemoveTarget+      (\ s a -> s{_lrRemoveTarget = a})+      . mapping _Coerce++-- | Labels associated with this target change.+lrLabels :: Lens' ListenRequest (Maybe ListenRequestLabels)+lrLabels = lens _lrLabels (\ s a -> s{_lrLabels = a})++-- | A target to add to this stream.+lrAddTarget :: Lens' ListenRequest (Maybe Target)+lrAddTarget+  = lens _lrAddTarget (\ s a -> s{_lrAddTarget = a})++instance FromJSON ListenRequest where+        parseJSON+          = withObject "ListenRequest"+              (\ o ->+                 ListenRequest' <$>+                   (o .:? "removeTarget") <*> (o .:? "labels") <*>+                     (o .:? "addTarget"))++instance ToJSON ListenRequest where+        toJSON ListenRequest'{..}+          = object+              (catMaybes+                 [("removeTarget" .=) <$> _lrRemoveTarget,+                  ("labels" .=) <$> _lrLabels,+                  ("addTarget" .=) <$> _lrAddTarget])++-- | The request for Firestore.Commit.+--+-- /See:/ 'commitRequest' smart constructor.+data CommitRequest = CommitRequest'+    { _crTransaction :: !(Maybe Bytes)+    , _crWrites      :: !(Maybe [Write])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CommitRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crTransaction'+--+-- * 'crWrites'+commitRequest+    :: CommitRequest+commitRequest =+    CommitRequest'+    { _crTransaction = Nothing+    , _crWrites = Nothing+    }++-- | If set, applies all writes in this transaction, and commits it.+crTransaction :: Lens' CommitRequest (Maybe ByteString)+crTransaction+  = lens _crTransaction+      (\ s a -> s{_crTransaction = a})+      . mapping _Bytes++-- | The writes to apply. Always executed atomically and in order.+crWrites :: Lens' CommitRequest [Write]+crWrites+  = lens _crWrites (\ s a -> s{_crWrites = a}) .+      _Default+      . _Coerce++instance FromJSON CommitRequest where+        parseJSON+          = withObject "CommitRequest"+              (\ o ->+                 CommitRequest' <$>+                   (o .:? "transaction") <*>+                     (o .:? "writes" .!= mempty))++instance ToJSON CommitRequest where+        toJSON CommitRequest'{..}+          = object+              (catMaybes+                 [("transaction" .=) <$> _crTransaction,+                  ("writes" .=) <$> _crWrites])++-- | Service-specific metadata. For example the available capacity at the+-- given location.+--+-- /See:/ 'locationMetadata' smart constructor.+newtype LocationMetadata = LocationMetadata'+    { _lmAddtional :: HashMap Text JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LocationMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lmAddtional'+locationMetadata+    :: HashMap Text JSONValue -- ^ 'lmAddtional'+    -> LocationMetadata+locationMetadata pLmAddtional_ =+    LocationMetadata'+    { _lmAddtional = _Coerce # pLmAddtional_+    }++-- | Properties of the object. Contains field \'type with type URL.+lmAddtional :: Lens' LocationMetadata (HashMap Text JSONValue)+lmAddtional+  = lens _lmAddtional (\ s a -> s{_lmAddtional = a}) .+      _Coerce++instance FromJSON LocationMetadata where+        parseJSON+          = withObject "LocationMetadata"+              (\ o -> LocationMetadata' <$> (parseJSONObject o))++instance ToJSON LocationMetadata where+        toJSON = toJSON . _lmAddtional++-- | The response message for Operations.ListOperations.+--+-- /See:/ 'googleLongrunningListOperationsResponse' smart constructor.+data GoogleLongrunningListOperationsResponse = GoogleLongrunningListOperationsResponse'+    { _gllorNextPageToken :: !(Maybe Text)+    , _gllorOperations    :: !(Maybe [GoogleLongrunningOperation])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleLongrunningListOperationsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gllorNextPageToken'+--+-- * 'gllorOperations'+googleLongrunningListOperationsResponse+    :: GoogleLongrunningListOperationsResponse+googleLongrunningListOperationsResponse =+    GoogleLongrunningListOperationsResponse'+    { _gllorNextPageToken = Nothing+    , _gllorOperations = Nothing+    }++-- | The standard List next-page token.+gllorNextPageToken :: Lens' GoogleLongrunningListOperationsResponse (Maybe Text)+gllorNextPageToken+  = lens _gllorNextPageToken+      (\ s a -> s{_gllorNextPageToken = a})++-- | A list of operations that matches the specified filter in the request.+gllorOperations :: Lens' GoogleLongrunningListOperationsResponse [GoogleLongrunningOperation]+gllorOperations+  = lens _gllorOperations+      (\ s a -> s{_gllorOperations = a})+      . _Default+      . _Coerce++instance FromJSON+         GoogleLongrunningListOperationsResponse where+        parseJSON+          = withObject+              "GoogleLongrunningListOperationsResponse"+              (\ o ->+                 GoogleLongrunningListOperationsResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "operations" .!= mempty))++instance ToJSON+         GoogleLongrunningListOperationsResponse where+        toJSON GoogleLongrunningListOperationsResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _gllorNextPageToken,+                  ("operations" .=) <$> _gllorOperations])++-- | A selection of a collection, such as \`messages as m1\`.+--+-- /See:/ 'collectionSelector' smart constructor.+data CollectionSelector = CollectionSelector'+    { _csAllDescendants :: !(Maybe Bool)+    , _csCollectionId   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CollectionSelector' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csAllDescendants'+--+-- * 'csCollectionId'+collectionSelector+    :: CollectionSelector+collectionSelector =+    CollectionSelector'+    { _csAllDescendants = Nothing+    , _csCollectionId = Nothing+    }++-- | When false, selects only collections that are immediate children of the+-- \`parent\` specified in the containing \`RunQueryRequest\`. When true,+-- selects all descendant collections.+csAllDescendants :: Lens' CollectionSelector (Maybe Bool)+csAllDescendants+  = lens _csAllDescendants+      (\ s a -> s{_csAllDescendants = a})++-- | The collection ID. When set, selects only collections with this ID.+csCollectionId :: Lens' CollectionSelector (Maybe Text)+csCollectionId+  = lens _csCollectionId+      (\ s a -> s{_csCollectionId = a})++instance FromJSON CollectionSelector where+        parseJSON+          = withObject "CollectionSelector"+              (\ o ->+                 CollectionSelector' <$>+                   (o .:? "allDescendants") <*> (o .:? "collectionId"))++instance ToJSON CollectionSelector where+        toJSON CollectionSelector'{..}+          = object+              (catMaybes+                 [("allDescendants" .=) <$> _csAllDescendants,+                  ("collectionId" .=) <$> _csCollectionId])++-- | The request for Firestore.ListCollectionIds.+--+-- /See:/ 'listCollectionIdsRequest' smart constructor.+data ListCollectionIdsRequest = ListCollectionIdsRequest'+    { _lcirPageToken :: !(Maybe Text)+    , _lcirPageSize  :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListCollectionIdsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lcirPageToken'+--+-- * 'lcirPageSize'+listCollectionIdsRequest+    :: ListCollectionIdsRequest+listCollectionIdsRequest =+    ListCollectionIdsRequest'+    { _lcirPageToken = Nothing+    , _lcirPageSize = Nothing+    }++-- | A page token. Must be a value from ListCollectionIdsResponse.+lcirPageToken :: Lens' ListCollectionIdsRequest (Maybe Text)+lcirPageToken+  = lens _lcirPageToken+      (\ s a -> s{_lcirPageToken = a})++-- | The maximum number of results to return.+lcirPageSize :: Lens' ListCollectionIdsRequest (Maybe Int32)+lcirPageSize+  = lens _lcirPageSize (\ s a -> s{_lcirPageSize = a})+      . mapping _Coerce++instance FromJSON ListCollectionIdsRequest where+        parseJSON+          = withObject "ListCollectionIdsRequest"+              (\ o ->+                 ListCollectionIdsRequest' <$>+                   (o .:? "pageToken") <*> (o .:? "pageSize"))++instance ToJSON ListCollectionIdsRequest where+        toJSON ListCollectionIdsRequest'{..}+          = object+              (catMaybes+                 [("pageToken" .=) <$> _lcirPageToken,+                  ("pageSize" .=) <$> _lcirPageSize])++-- | The response for Firestore.Write.+--+-- /See:/ 'writeResponse' smart constructor.+data WriteResponse = WriteResponse'+    { _wStreamToken  :: !(Maybe Bytes)+    , _wCommitTime   :: !(Maybe DateTime')+    , _wWriteResults :: !(Maybe [WriteResult])+    , _wStreamId     :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'WriteResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wStreamToken'+--+-- * 'wCommitTime'+--+-- * 'wWriteResults'+--+-- * 'wStreamId'+writeResponse+    :: WriteResponse+writeResponse =+    WriteResponse'+    { _wStreamToken = Nothing+    , _wCommitTime = Nothing+    , _wWriteResults = Nothing+    , _wStreamId = Nothing+    }++-- | A token that represents the position of this response in the stream.+-- This can be used by a client to resume the stream at this point. This+-- field is always set.+wStreamToken :: Lens' WriteResponse (Maybe ByteString)+wStreamToken+  = lens _wStreamToken (\ s a -> s{_wStreamToken = a})+      . mapping _Bytes++-- | The time at which the commit occurred.+wCommitTime :: Lens' WriteResponse (Maybe UTCTime)+wCommitTime+  = lens _wCommitTime (\ s a -> s{_wCommitTime = a}) .+      mapping _DateTime++-- | The result of applying the writes. This i-th write result corresponds to+-- the i-th write in the request.+wWriteResults :: Lens' WriteResponse [WriteResult]+wWriteResults+  = lens _wWriteResults+      (\ s a -> s{_wWriteResults = a})+      . _Default+      . _Coerce++-- | The ID of the stream. Only set on the first message, when a new stream+-- was created.+wStreamId :: Lens' WriteResponse (Maybe Text)+wStreamId+  = lens _wStreamId (\ s a -> s{_wStreamId = a})++instance FromJSON WriteResponse where+        parseJSON+          = withObject "WriteResponse"+              (\ o ->+                 WriteResponse' <$>+                   (o .:? "streamToken") <*> (o .:? "commitTime") <*>+                     (o .:? "writeResults" .!= mempty)+                     <*> (o .:? "streamId"))++instance ToJSON WriteResponse where+        toJSON WriteResponse'{..}+          = object+              (catMaybes+                 [("streamToken" .=) <$> _wStreamToken,+                  ("commitTime" .=) <$> _wCommitTime,+                  ("writeResults" .=) <$> _wWriteResults,+                  ("streamId" .=) <$> _wStreamId])++-- | An order on a field.+--+-- /See:/ 'order' smart constructor.+data Order = Order'+    { _oField     :: !(Maybe FieldReference)+    , _oDirection :: !(Maybe OrderDirection)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Order' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oField'+--+-- * 'oDirection'+order+    :: Order+order =+    Order'+    { _oField = Nothing+    , _oDirection = Nothing+    }++-- | The field to order by.+oField :: Lens' Order (Maybe FieldReference)+oField = lens _oField (\ s a -> s{_oField = a})++-- | The direction to order by. Defaults to \`ASCENDING\`.+oDirection :: Lens' Order (Maybe OrderDirection)+oDirection+  = lens _oDirection (\ s a -> s{_oDirection = a})++instance FromJSON Order where+        parseJSON+          = withObject "Order"+              (\ o ->+                 Order' <$> (o .:? "field") <*> (o .:? "direction"))++instance ToJSON Order where+        toJSON Order'{..}+          = object+              (catMaybes+                 [("field" .=) <$> _oField,+                  ("direction" .=) <$> _oDirection])++-- | A Document has been deleted. May be the result of multiple writes,+-- including updates, the last of which deleted the Document. Multiple+-- DocumentDelete messages may be returned for the same logical delete, if+-- multiple targets are affected.+--+-- /See:/ 'documentDelete' smart constructor.+data DocumentDelete = DocumentDelete'+    { _ddReadTime         :: !(Maybe DateTime')+    , _ddDocument         :: !(Maybe Text)+    , _ddRemovedTargetIds :: !(Maybe [Textual Int32])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DocumentDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddReadTime'+--+-- * 'ddDocument'+--+-- * 'ddRemovedTargetIds'+documentDelete+    :: DocumentDelete+documentDelete =+    DocumentDelete'+    { _ddReadTime = Nothing+    , _ddDocument = Nothing+    , _ddRemovedTargetIds = Nothing+    }++-- | The read timestamp at which the delete was observed. Greater or equal to+-- the \`commit_time\` of the delete.+ddReadTime :: Lens' DocumentDelete (Maybe UTCTime)+ddReadTime+  = lens _ddReadTime (\ s a -> s{_ddReadTime = a}) .+      mapping _DateTime++-- | The resource name of the Document that was deleted.+ddDocument :: Lens' DocumentDelete (Maybe Text)+ddDocument+  = lens _ddDocument (\ s a -> s{_ddDocument = a})++-- | A set of target IDs for targets that previously matched this entity.+ddRemovedTargetIds :: Lens' DocumentDelete [Int32]+ddRemovedTargetIds+  = lens _ddRemovedTargetIds+      (\ s a -> s{_ddRemovedTargetIds = a})+      . _Default+      . _Coerce++instance FromJSON DocumentDelete where+        parseJSON+          = withObject "DocumentDelete"+              (\ o ->+                 DocumentDelete' <$>+                   (o .:? "readTime") <*> (o .:? "document") <*>+                     (o .:? "removedTargetIds" .!= mempty))++instance ToJSON DocumentDelete where+        toJSON DocumentDelete'{..}+          = object+              (catMaybes+                 [("readTime" .=) <$> _ddReadTime,+                  ("document" .=) <$> _ddDocument,+                  ("removedTargetIds" .=) <$> _ddRemovedTargetIds])++-- | A transformation of a field of the document.+--+-- /See:/ 'fieldTransform' smart constructor.+data FieldTransform = FieldTransform'+    { _ftFieldPath             :: !(Maybe Text)+    , _ftAppendMissingElements :: !(Maybe ArrayValue)+    , _ftSetToServerValue      :: !(Maybe FieldTransformSetToServerValue)+    , _ftRemoveAllFromArray    :: !(Maybe ArrayValue)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FieldTransform' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ftFieldPath'+--+-- * 'ftAppendMissingElements'+--+-- * 'ftSetToServerValue'+--+-- * 'ftRemoveAllFromArray'+fieldTransform+    :: FieldTransform+fieldTransform =+    FieldTransform'+    { _ftFieldPath = Nothing+    , _ftAppendMissingElements = Nothing+    , _ftSetToServerValue = Nothing+    , _ftRemoveAllFromArray = Nothing+    }++-- | The path of the field. See Document.fields for the field path syntax+-- reference.+ftFieldPath :: Lens' FieldTransform (Maybe Text)+ftFieldPath+  = lens _ftFieldPath (\ s a -> s{_ftFieldPath = a})++-- | Append the given elements in order if they are not already present in+-- the current field value. If the field is not an array, or if the field+-- does not yet exist, it is first set to the empty array. Equivalent+-- numbers of different types (e.g. 3L and 3.0) are considered equal when+-- checking if a value is missing. NaN is equal to NaN, and Null is equal+-- to Null. If the input contains multiple equivalent values, only the+-- first will be considered. The corresponding transform_result will be the+-- null value.+ftAppendMissingElements :: Lens' FieldTransform (Maybe ArrayValue)+ftAppendMissingElements+  = lens _ftAppendMissingElements+      (\ s a -> s{_ftAppendMissingElements = a})++-- | Sets the field to the given server value.+ftSetToServerValue :: Lens' FieldTransform (Maybe FieldTransformSetToServerValue)+ftSetToServerValue+  = lens _ftSetToServerValue+      (\ s a -> s{_ftSetToServerValue = a})++-- | Remove all of the given elements from the array in the field. If the+-- field is not an array, or if the field does not yet exist, it is set to+-- the empty array. Equivalent numbers of the different types (e.g. 3L and+-- 3.0) are considered equal when deciding whether an element should be+-- removed. NaN is equal to NaN, and Null is equal to Null. This will+-- remove all equivalent values if there are duplicates. The corresponding+-- transform_result will be the null value.+ftRemoveAllFromArray :: Lens' FieldTransform (Maybe ArrayValue)+ftRemoveAllFromArray+  = lens _ftRemoveAllFromArray+      (\ s a -> s{_ftRemoveAllFromArray = a})++instance FromJSON FieldTransform where+        parseJSON+          = withObject "FieldTransform"+              (\ o ->+                 FieldTransform' <$>+                   (o .:? "fieldPath") <*>+                     (o .:? "appendMissingElements")+                     <*> (o .:? "setToServerValue")+                     <*> (o .:? "removeAllFromArray"))++instance ToJSON FieldTransform where+        toJSON FieldTransform'{..}+          = object+              (catMaybes+                 [("fieldPath" .=) <$> _ftFieldPath,+                  ("appendMissingElements" .=) <$>+                    _ftAppendMissingElements,+                  ("setToServerValue" .=) <$> _ftSetToServerValue,+                  ("removeAllFromArray" .=) <$> _ftRemoveAllFromArray])++-- | The map\'s fields. The map keys represent field names. Field names+-- matching the regular expression \`__.*__\` are reserved. Reserved field+-- names are forbidden except in certain documented contexts. The map keys,+-- represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.+--+-- /See:/ 'mapValueFields' smart constructor.+newtype MapValueFields = MapValueFields'+    { _mvfAddtional :: HashMap Text Value+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MapValueFields' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mvfAddtional'+mapValueFields+    :: HashMap Text Value -- ^ 'mvfAddtional'+    -> MapValueFields+mapValueFields pMvfAddtional_ =+    MapValueFields'+    { _mvfAddtional = _Coerce # pMvfAddtional_+    }++mvfAddtional :: Lens' MapValueFields (HashMap Text Value)+mvfAddtional+  = lens _mvfAddtional (\ s a -> s{_mvfAddtional = a})+      . _Coerce++instance FromJSON MapValueFields where+        parseJSON+          = withObject "MapValueFields"+              (\ o -> MapValueFields' <$> (parseJSONObject o))++instance ToJSON MapValueFields where+        toJSON = toJSON . _mvfAddtional++-- | The document\'s fields. The map keys represent field names. A simple+-- field name contains only characters \`a\` to \`z\`, \`A\` to \`Z\`,+-- \`0\` to \`9\`, or \`_\`, and must not start with \`0\` to \`9\`. For+-- example, \`foo_bar_17\`. Field names matching the regular expression+-- \`__.*__\` are reserved. Reserved field names are forbidden except in+-- certain documented contexts. The map keys, represented as UTF-8, must+-- not exceed 1,500 bytes and cannot be empty. Field paths may be used in+-- other contexts to refer to structured fields defined here. For+-- \`map_value\`, the field path is represented by the simple or quoted+-- field names of the containing fields, delimited by \`.\`. For example,+-- the structured field \`\"foo\" : { map_value: { \"x&y\" : {+-- string_value: \"hello\" }}}\` would be represented by the field path+-- \`foo.x&y\`. Within a field path, a quoted field name starts and ends+-- with \`\` \` \`\` and may contain any character. Some characters,+-- including \`\` \` \`\`, must be escaped using a \`\\\`. For example,+-- \`\` \`x&y\` \`\` represents \`x&y\` and \`\` \`bak\\\`tik\` \`\`+-- represents \`\` bak\`tik \`\`.+--+-- /See:/ 'documentFields' smart constructor.+newtype DocumentFields = DocumentFields'+    { _dfAddtional :: HashMap Text Value+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DocumentFields' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dfAddtional'+documentFields+    :: HashMap Text Value -- ^ 'dfAddtional'+    -> DocumentFields+documentFields pDfAddtional_ =+    DocumentFields'+    { _dfAddtional = _Coerce # pDfAddtional_+    }++dfAddtional :: Lens' DocumentFields (HashMap Text Value)+dfAddtional+  = lens _dfAddtional (\ s a -> s{_dfAddtional = a}) .+      _Coerce++instance FromJSON DocumentFields where+        parseJSON+          = withObject "DocumentFields"+              (\ o -> DocumentFields' <$> (parseJSONObject o))++instance ToJSON DocumentFields where+        toJSON = toJSON . _dfAddtional++-- | Options for a transaction that can only be used to read documents.+--+-- /See:/ 'readOnly' smart constructor.+newtype ReadOnly = ReadOnly'+    { _roReadTime :: Maybe DateTime'+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ReadOnly' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'roReadTime'+readOnly+    :: ReadOnly+readOnly =+    ReadOnly'+    { _roReadTime = Nothing+    }++-- | Reads documents at the given time. This may not be older than 60+-- seconds.+roReadTime :: Lens' ReadOnly (Maybe UTCTime)+roReadTime+  = lens _roReadTime (\ s a -> s{_roReadTime = a}) .+      mapping _DateTime++instance FromJSON ReadOnly where+        parseJSON+          = withObject "ReadOnly"+              (\ o -> ReadOnly' <$> (o .:? "readTime"))++instance ToJSON ReadOnly where+        toJSON ReadOnly'{..}+          = object+              (catMaybes [("readTime" .=) <$> _roReadTime])++-- | A specification of a set of documents to listen to.+--+-- /See:/ 'target' smart constructor.+data Target = Target'+    { _tTargetId    :: !(Maybe (Textual Int32))+    , _tOnce        :: !(Maybe Bool)+    , _tReadTime    :: !(Maybe DateTime')+    , _tResumeToken :: !(Maybe Bytes)+    , _tDocuments   :: !(Maybe DocumentsTarget)+    , _tQuery       :: !(Maybe QueryTarget)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Target' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tTargetId'+--+-- * 'tOnce'+--+-- * 'tReadTime'+--+-- * 'tResumeToken'+--+-- * 'tDocuments'+--+-- * 'tQuery'+target+    :: Target+target =+    Target'+    { _tTargetId = Nothing+    , _tOnce = Nothing+    , _tReadTime = Nothing+    , _tResumeToken = Nothing+    , _tDocuments = Nothing+    , _tQuery = Nothing+    }++-- | A client provided target ID. If not set, the server will assign an ID+-- for the target. Used for resuming a target without changing IDs. The IDs+-- can either be client-assigned or be server-assigned in a previous+-- stream. All targets with client provided IDs must be added before adding+-- a target that needs a server-assigned id.+tTargetId :: Lens' Target (Maybe Int32)+tTargetId+  = lens _tTargetId (\ s a -> s{_tTargetId = a}) .+      mapping _Coerce++-- | If the target should be removed once it is current and consistent.+tOnce :: Lens' Target (Maybe Bool)+tOnce = lens _tOnce (\ s a -> s{_tOnce = a})++-- | Start listening after a specific \`read_time\`. The client must know the+-- state of matching documents at this time.+tReadTime :: Lens' Target (Maybe UTCTime)+tReadTime+  = lens _tReadTime (\ s a -> s{_tReadTime = a}) .+      mapping _DateTime++-- | A resume token from a prior TargetChange for an identical target. Using+-- a resume token with a different target is unsupported and may fail.+tResumeToken :: Lens' Target (Maybe ByteString)+tResumeToken+  = lens _tResumeToken (\ s a -> s{_tResumeToken = a})+      . mapping _Bytes++-- | A target specified by a set of document names.+tDocuments :: Lens' Target (Maybe DocumentsTarget)+tDocuments+  = lens _tDocuments (\ s a -> s{_tDocuments = a})++-- | A target specified by a query.+tQuery :: Lens' Target (Maybe QueryTarget)+tQuery = lens _tQuery (\ s a -> s{_tQuery = a})++instance FromJSON Target where+        parseJSON+          = withObject "Target"+              (\ o ->+                 Target' <$>+                   (o .:? "targetId") <*> (o .:? "once") <*>+                     (o .:? "readTime")+                     <*> (o .:? "resumeToken")+                     <*> (o .:? "documents")+                     <*> (o .:? "query"))++instance ToJSON Target where+        toJSON Target'{..}+          = object+              (catMaybes+                 [("targetId" .=) <$> _tTargetId,+                  ("once" .=) <$> _tOnce,+                  ("readTime" .=) <$> _tReadTime,+                  ("resumeToken" .=) <$> _tResumeToken,+                  ("documents" .=) <$> _tDocuments,+                  ("query" .=) <$> _tQuery])++-- | Labels associated with this write request.+--+-- /See:/ 'writeRequestLabels' smart constructor.+newtype WriteRequestLabels = WriteRequestLabels'+    { _wrlAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'WriteRequestLabels' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'wrlAddtional'+writeRequestLabels+    :: HashMap Text Text -- ^ 'wrlAddtional'+    -> WriteRequestLabels+writeRequestLabels pWrlAddtional_ =+    WriteRequestLabels'+    { _wrlAddtional = _Coerce # pWrlAddtional_+    }++wrlAddtional :: Lens' WriteRequestLabels (HashMap Text Text)+wrlAddtional+  = lens _wrlAddtional (\ s a -> s{_wrlAddtional = a})+      . _Coerce++instance FromJSON WriteRequestLabels where+        parseJSON+          = withObject "WriteRequestLabels"+              (\ o -> WriteRequestLabels' <$> (parseJSONObject o))++instance ToJSON WriteRequestLabels where+        toJSON = toJSON . _wrlAddtional++-- | This resource represents a long-running operation that is the result of+-- a network API call.+--+-- /See:/ 'googleLongrunningOperation' smart constructor.+data GoogleLongrunningOperation = GoogleLongrunningOperation'+    { _gloDone     :: !(Maybe Bool)+    , _gloError    :: !(Maybe Status)+    , _gloResponse :: !(Maybe GoogleLongrunningOperationResponse)+    , _gloName     :: !(Maybe Text)+    , _gloMetadata :: !(Maybe GoogleLongrunningOperationMetadata)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleLongrunningOperation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gloDone'+--+-- * 'gloError'+--+-- * 'gloResponse'+--+-- * 'gloName'+--+-- * 'gloMetadata'+googleLongrunningOperation+    :: GoogleLongrunningOperation+googleLongrunningOperation =+    GoogleLongrunningOperation'+    { _gloDone = Nothing+    , _gloError = Nothing+    , _gloResponse = Nothing+    , _gloName = Nothing+    , _gloMetadata = Nothing+    }++-- | If the value is \`false\`, it means the operation is still in progress.+-- If \`true\`, the operation is completed, and either \`error\` or+-- \`response\` is available.+gloDone :: Lens' GoogleLongrunningOperation (Maybe Bool)+gloDone = lens _gloDone (\ s a -> s{_gloDone = a})++-- | The error result of the operation in case of failure or cancellation.+gloError :: Lens' GoogleLongrunningOperation (Maybe Status)+gloError = lens _gloError (\ s a -> s{_gloError = a})++-- | The normal response of the operation in case of success. If the original+-- method returns no data on success, such as \`Delete\`, the response is+-- \`google.protobuf.Empty\`. If the original method is standard+-- \`Get\`\/\`Create\`\/\`Update\`, the response should be the resource.+-- For other methods, the response should have the type \`XxxResponse\`,+-- where \`Xxx\` is the original method name. For example, if the original+-- method name is \`TakeSnapshot()\`, the inferred response type is+-- \`TakeSnapshotResponse\`.+gloResponse :: Lens' GoogleLongrunningOperation (Maybe GoogleLongrunningOperationResponse)+gloResponse+  = lens _gloResponse (\ s a -> s{_gloResponse = a})++-- | The server-assigned name, which is only unique within the same service+-- that originally returns it. If you use the default HTTP mapping, the+-- \`name\` should have the format of \`operations\/some\/unique\/name\`.+gloName :: Lens' GoogleLongrunningOperation (Maybe Text)+gloName = lens _gloName (\ s a -> s{_gloName = a})++-- | Service-specific metadata associated with the operation. It typically+-- contains progress information and common metadata such as create time.+-- Some services might not provide such metadata. Any method that returns a+-- long-running operation should document the metadata type, if any.+gloMetadata :: Lens' GoogleLongrunningOperation (Maybe GoogleLongrunningOperationMetadata)+gloMetadata+  = lens _gloMetadata (\ s a -> s{_gloMetadata = a})++instance FromJSON GoogleLongrunningOperation where+        parseJSON+          = withObject "GoogleLongrunningOperation"+              (\ o ->+                 GoogleLongrunningOperation' <$>+                   (o .:? "done") <*> (o .:? "error") <*>+                     (o .:? "response")+                     <*> (o .:? "name")+                     <*> (o .:? "metadata"))++instance ToJSON GoogleLongrunningOperation where+        toJSON GoogleLongrunningOperation'{..}+          = object+              (catMaybes+                 [("done" .=) <$> _gloDone,+                  ("error" .=) <$> _gloError,+                  ("response" .=) <$> _gloResponse,+                  ("name" .=) <$> _gloName,+                  ("metadata" .=) <$> _gloMetadata])++-- | A filter with a single operand.+--+-- /See:/ 'unaryFilter' smart constructor.+data UnaryFilter = UnaryFilter'+    { _ufOp    :: !(Maybe UnaryFilterOp)+    , _ufField :: !(Maybe FieldReference)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UnaryFilter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ufOp'+--+-- * 'ufField'+unaryFilter+    :: UnaryFilter+unaryFilter =+    UnaryFilter'+    { _ufOp = Nothing+    , _ufField = Nothing+    }++-- | The unary operator to apply.+ufOp :: Lens' UnaryFilter (Maybe UnaryFilterOp)+ufOp = lens _ufOp (\ s a -> s{_ufOp = a})++-- | The field to which to apply the operator.+ufField :: Lens' UnaryFilter (Maybe FieldReference)+ufField = lens _ufField (\ s a -> s{_ufField = a})++instance FromJSON UnaryFilter where+        parseJSON+          = withObject "UnaryFilter"+              (\ o ->+                 UnaryFilter' <$> (o .:? "op") <*> (o .:? "field"))++instance ToJSON UnaryFilter where+        toJSON UnaryFilter'{..}+          = object+              (catMaybes+                 [("op" .=) <$> _ufOp, ("field" .=) <$> _ufField])
+ gen/Network/Google/FireStore/Types/Sum.hs view
@@ -0,0 +1,731 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.FireStore.Types.Sum+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.FireStore.Types.Sum where++import           Network.Google.Prelude hiding (Bytes)++-- | Indicates that this field supports ordering by the specified order or+-- comparing using =, \<, \<=, >, >=.+data GoogleFirestoreAdminV1IndexFieldOrder+    = OrderUnspecified+      -- ^ @ORDER_UNSPECIFIED@+      -- The ordering is unspecified. Not a valid option.+    | Ascending+      -- ^ @ASCENDING@+      -- The field is ordered by ascending field value.+    | Descending+      -- ^ @DESCENDING@+      -- The field is ordered by descending field value.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable GoogleFirestoreAdminV1IndexFieldOrder++instance FromHttpApiData GoogleFirestoreAdminV1IndexFieldOrder where+    parseQueryParam = \case+        "ORDER_UNSPECIFIED" -> Right OrderUnspecified+        "ASCENDING" -> Right Ascending+        "DESCENDING" -> Right Descending+        x -> Left ("Unable to parse GoogleFirestoreAdminV1IndexFieldOrder from: " <> x)++instance ToHttpApiData GoogleFirestoreAdminV1IndexFieldOrder where+    toQueryParam = \case+        OrderUnspecified -> "ORDER_UNSPECIFIED"+        Ascending -> "ASCENDING"+        Descending -> "DESCENDING"++instance FromJSON GoogleFirestoreAdminV1IndexFieldOrder where+    parseJSON = parseJSONText "GoogleFirestoreAdminV1IndexFieldOrder"++instance ToJSON GoogleFirestoreAdminV1IndexFieldOrder where+    toJSON = toJSONText++-- | Specifies how the index is changing.+data GoogleFirestoreAdminV1IndexConfigDeltaChangeType+    = ChangeTypeUnspecified+      -- ^ @CHANGE_TYPE_UNSPECIFIED@+      -- The type of change is not specified or known.+    | Add+      -- ^ @ADD@+      -- The single field index is being added.+    | Remove+      -- ^ @REMOVE@+      -- The single field index is being removed.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable GoogleFirestoreAdminV1IndexConfigDeltaChangeType++instance FromHttpApiData GoogleFirestoreAdminV1IndexConfigDeltaChangeType where+    parseQueryParam = \case+        "CHANGE_TYPE_UNSPECIFIED" -> Right ChangeTypeUnspecified+        "ADD" -> Right Add+        "REMOVE" -> Right Remove+        x -> Left ("Unable to parse GoogleFirestoreAdminV1IndexConfigDeltaChangeType from: " <> x)++instance ToHttpApiData GoogleFirestoreAdminV1IndexConfigDeltaChangeType where+    toQueryParam = \case+        ChangeTypeUnspecified -> "CHANGE_TYPE_UNSPECIFIED"+        Add -> "ADD"+        Remove -> "REMOVE"++instance FromJSON GoogleFirestoreAdminV1IndexConfigDeltaChangeType where+    parseJSON = parseJSONText "GoogleFirestoreAdminV1IndexConfigDeltaChangeType"++instance ToJSON GoogleFirestoreAdminV1IndexConfigDeltaChangeType where+    toJSON = toJSONText++-- | Output only. The serving state of the index.+data GoogleFirestoreAdminV1IndexState+    = StateUnspecified+      -- ^ @STATE_UNSPECIFIED@+      -- The state is unspecified.+    | Creating+      -- ^ @CREATING@+      -- The index is being created. There is an active long-running operation+      -- for the index. The index is updated when writing a document. Some index+      -- data may exist.+    | Ready+      -- ^ @READY@+      -- The index is ready to be used. The index is updated when writing a+      -- document. The index is fully populated from all stored documents it+      -- applies to.+    | NeedsRepair+      -- ^ @NEEDS_REPAIR@+      -- The index was being created, but something went wrong. There is no+      -- active long-running operation for the index, and the most recently+      -- finished long-running operation failed. The index is not updated when+      -- writing a document. Some index data may exist. Use the+      -- google.longrunning.Operations API to determine why the operation that+      -- last attempted to create this index failed, then re-create the index.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable GoogleFirestoreAdminV1IndexState++instance FromHttpApiData GoogleFirestoreAdminV1IndexState where+    parseQueryParam = \case+        "STATE_UNSPECIFIED" -> Right StateUnspecified+        "CREATING" -> Right Creating+        "READY" -> Right Ready+        "NEEDS_REPAIR" -> Right NeedsRepair+        x -> Left ("Unable to parse GoogleFirestoreAdminV1IndexState from: " <> x)++instance ToHttpApiData GoogleFirestoreAdminV1IndexState where+    toQueryParam = \case+        StateUnspecified -> "STATE_UNSPECIFIED"+        Creating -> "CREATING"+        Ready -> "READY"+        NeedsRepair -> "NEEDS_REPAIR"++instance FromJSON GoogleFirestoreAdminV1IndexState where+    parseJSON = parseJSONText "GoogleFirestoreAdminV1IndexState"++instance ToJSON GoogleFirestoreAdminV1IndexState where+    toJSON = toJSONText++-- | The operator for combining multiple filters.+data CompositeFilterOp+    = OperatorUnspecified+      -- ^ @OPERATOR_UNSPECIFIED@+      -- Unspecified. This value must not be used.+    | And+      -- ^ @AND@+      -- The results are required to satisfy each of the combined filters.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable CompositeFilterOp++instance FromHttpApiData CompositeFilterOp where+    parseQueryParam = \case+        "OPERATOR_UNSPECIFIED" -> Right OperatorUnspecified+        "AND" -> Right And+        x -> Left ("Unable to parse CompositeFilterOp from: " <> x)++instance ToHttpApiData CompositeFilterOp where+    toQueryParam = \case+        OperatorUnspecified -> "OPERATOR_UNSPECIFIED"+        And -> "AND"++instance FromJSON CompositeFilterOp where+    parseJSON = parseJSONText "CompositeFilterOp"++instance ToJSON CompositeFilterOp where+    toJSON = toJSONText++-- | Indexes with a collection query scope specified allow queries against a+-- collection that is the child of a specific document, specified at query+-- time, and that has the same collection id. Indexes with a collection+-- group query scope specified allow queries against all collections+-- descended from a specific document, specified at query time, and that+-- have the same collection id as this index.+data GoogleFirestoreAdminV1IndexQueryScope+    = QueryScopeUnspecified+      -- ^ @QUERY_SCOPE_UNSPECIFIED@+      -- The query scope is unspecified. Not a valid option.+    | Collection+      -- ^ @COLLECTION@+      -- Indexes with a collection query scope specified allow queries against a+      -- collection that is the child of a specific document, specified at query+      -- time, and that has the collection id specified by the index.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable GoogleFirestoreAdminV1IndexQueryScope++instance FromHttpApiData GoogleFirestoreAdminV1IndexQueryScope where+    parseQueryParam = \case+        "QUERY_SCOPE_UNSPECIFIED" -> Right QueryScopeUnspecified+        "COLLECTION" -> Right Collection+        x -> Left ("Unable to parse GoogleFirestoreAdminV1IndexQueryScope from: " <> x)++instance ToHttpApiData GoogleFirestoreAdminV1IndexQueryScope where+    toQueryParam = \case+        QueryScopeUnspecified -> "QUERY_SCOPE_UNSPECIFIED"+        Collection -> "COLLECTION"++instance FromJSON GoogleFirestoreAdminV1IndexQueryScope where+    parseJSON = parseJSONText "GoogleFirestoreAdminV1IndexQueryScope"++instance ToJSON GoogleFirestoreAdminV1IndexQueryScope where+    toJSON = toJSONText++-- | The direction to order by. Defaults to \`ASCENDING\`.+data OrderDirection+    = ODDirectionUnspecified+      -- ^ @DIRECTION_UNSPECIFIED@+      -- Unspecified.+    | ODAscending+      -- ^ @ASCENDING@+      -- Ascending.+    | ODDescending+      -- ^ @DESCENDING@+      -- Descending.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable OrderDirection++instance FromHttpApiData OrderDirection where+    parseQueryParam = \case+        "DIRECTION_UNSPECIFIED" -> Right ODDirectionUnspecified+        "ASCENDING" -> Right ODAscending+        "DESCENDING" -> Right ODDescending+        x -> Left ("Unable to parse OrderDirection from: " <> x)++instance ToHttpApiData OrderDirection where+    toQueryParam = \case+        ODDirectionUnspecified -> "DIRECTION_UNSPECIFIED"+        ODAscending -> "ASCENDING"+        ODDescending -> "DESCENDING"++instance FromJSON OrderDirection where+    parseJSON = parseJSONText "OrderDirection"++instance ToJSON OrderDirection where+    toJSON = toJSONText++-- | A null value.+data ValueNullValue+    = NullValue+      -- ^ @NULL_VALUE@+      -- Null value.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ValueNullValue++instance FromHttpApiData ValueNullValue where+    parseQueryParam = \case+        "NULL_VALUE" -> Right NullValue+        x -> Left ("Unable to parse ValueNullValue from: " <> x)++instance ToHttpApiData ValueNullValue where+    toQueryParam = \case+        NullValue -> "NULL_VALUE"++instance FromJSON ValueNullValue where+    parseJSON = parseJSONText "ValueNullValue"++instance ToJSON ValueNullValue where+    toJSON = toJSONText++-- | The unary operator to apply.+data UnaryFilterOp+    = UFOOperatorUnspecified+      -- ^ @OPERATOR_UNSPECIFIED@+      -- Unspecified. This value must not be used.+    | UFOIsNan+      -- ^ @IS_NAN@+      -- Test if a field is equal to NaN.+    | UFOIsNull+      -- ^ @IS_NULL@+      -- Test if an exprestion evaluates to Null.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable UnaryFilterOp++instance FromHttpApiData UnaryFilterOp where+    parseQueryParam = \case+        "OPERATOR_UNSPECIFIED" -> Right UFOOperatorUnspecified+        "IS_NAN" -> Right UFOIsNan+        "IS_NULL" -> Right UFOIsNull+        x -> Left ("Unable to parse UnaryFilterOp from: " <> x)++instance ToHttpApiData UnaryFilterOp where+    toQueryParam = \case+        UFOOperatorUnspecified -> "OPERATOR_UNSPECIFIED"+        UFOIsNan -> "IS_NAN"+        UFOIsNull -> "IS_NULL"++instance FromJSON UnaryFilterOp where+    parseJSON = parseJSONText "UnaryFilterOp"++instance ToJSON UnaryFilterOp where+    toJSON = toJSONText++-- | Indicates that this field supports operations on \`array_value\`s.+data GoogleFirestoreAdminV1IndexFieldArrayConfig+    = ArrayConfigUnspecified+      -- ^ @ARRAY_CONFIG_UNSPECIFIED@+      -- The index does not support additional array queries.+    | Contains+      -- ^ @CONTAINS@+      -- The index supports array containment queries.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable GoogleFirestoreAdminV1IndexFieldArrayConfig++instance FromHttpApiData GoogleFirestoreAdminV1IndexFieldArrayConfig where+    parseQueryParam = \case+        "ARRAY_CONFIG_UNSPECIFIED" -> Right ArrayConfigUnspecified+        "CONTAINS" -> Right Contains+        x -> Left ("Unable to parse GoogleFirestoreAdminV1IndexFieldArrayConfig from: " <> x)++instance ToHttpApiData GoogleFirestoreAdminV1IndexFieldArrayConfig where+    toQueryParam = \case+        ArrayConfigUnspecified -> "ARRAY_CONFIG_UNSPECIFIED"+        Contains -> "CONTAINS"++instance FromJSON GoogleFirestoreAdminV1IndexFieldArrayConfig where+    parseJSON = parseJSONText "GoogleFirestoreAdminV1IndexFieldArrayConfig"++instance ToJSON GoogleFirestoreAdminV1IndexFieldArrayConfig where+    toJSON = toJSONText++-- | The state of the operation.+data GoogleFirestoreAdminV1IndexOperationMetadataState+    = OperationStateUnspecified+      -- ^ @OPERATION_STATE_UNSPECIFIED@+      -- Unspecified.+    | Initializing+      -- ^ @INITIALIZING@+      -- Request is being prepared for processing.+    | Processing+      -- ^ @PROCESSING@+      -- Request is actively being processed.+    | Cancelling+      -- ^ @CANCELLING@+      -- Request is in the process of being cancelled after user called+      -- google.longrunning.Operations.CancelOperation on the operation.+    | Finalizing+      -- ^ @FINALIZING@+      -- Request has been processed and is in its finalization stage.+    | Successful+      -- ^ @SUCCESSFUL@+      -- Request has completed successfully.+    | Failed+      -- ^ @FAILED@+      -- Request has finished being processed, but encountered an error.+    | Cancelled+      -- ^ @CANCELLED@+      -- Request has finished being cancelled after user called+      -- google.longrunning.Operations.CancelOperation.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable GoogleFirestoreAdminV1IndexOperationMetadataState++instance FromHttpApiData GoogleFirestoreAdminV1IndexOperationMetadataState where+    parseQueryParam = \case+        "OPERATION_STATE_UNSPECIFIED" -> Right OperationStateUnspecified+        "INITIALIZING" -> Right Initializing+        "PROCESSING" -> Right Processing+        "CANCELLING" -> Right Cancelling+        "FINALIZING" -> Right Finalizing+        "SUCCESSFUL" -> Right Successful+        "FAILED" -> Right Failed+        "CANCELLED" -> Right Cancelled+        x -> Left ("Unable to parse GoogleFirestoreAdminV1IndexOperationMetadataState from: " <> x)++instance ToHttpApiData GoogleFirestoreAdminV1IndexOperationMetadataState where+    toQueryParam = \case+        OperationStateUnspecified -> "OPERATION_STATE_UNSPECIFIED"+        Initializing -> "INITIALIZING"+        Processing -> "PROCESSING"+        Cancelling -> "CANCELLING"+        Finalizing -> "FINALIZING"+        Successful -> "SUCCESSFUL"+        Failed -> "FAILED"+        Cancelled -> "CANCELLED"++instance FromJSON GoogleFirestoreAdminV1IndexOperationMetadataState where+    parseJSON = parseJSONText "GoogleFirestoreAdminV1IndexOperationMetadataState"++instance ToJSON GoogleFirestoreAdminV1IndexOperationMetadataState where+    toJSON = toJSONText++-- | V1 error format.+data Xgafv+    = X1+      -- ^ @1@+      -- v1 error format+    | X2+      -- ^ @2@+      -- v2 error format+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable Xgafv++instance FromHttpApiData Xgafv where+    parseQueryParam = \case+        "1" -> Right X1+        "2" -> Right X2+        x -> Left ("Unable to parse Xgafv from: " <> x)++instance ToHttpApiData Xgafv where+    toQueryParam = \case+        X1 -> "1"+        X2 -> "2"++instance FromJSON Xgafv where+    parseJSON = parseJSONText "Xgafv"++instance ToJSON Xgafv where+    toJSON = toJSONText++-- | The operator to filter by.+data FieldFilterOp+    = FFOOperatorUnspecified+      -- ^ @OPERATOR_UNSPECIFIED@+      -- Unspecified. This value must not be used.+    | FFOLessThan+      -- ^ @LESS_THAN@+      -- Less than. Requires that the field come first in \`order_by\`.+    | FFOLessThanOrEqual+      -- ^ @LESS_THAN_OR_EQUAL@+      -- Less than or equal. Requires that the field come first in \`order_by\`.+    | FFOGreaterThan+      -- ^ @GREATER_THAN@+      -- Greater than. Requires that the field come first in \`order_by\`.+    | FFOGreaterThanOrEqual+      -- ^ @GREATER_THAN_OR_EQUAL@+      -- Greater than or equal. Requires that the field come first in+      -- \`order_by\`.+    | FFOEqual+      -- ^ @EQUAL@+      -- Equal.+    | FFOArrayContains+      -- ^ @ARRAY_CONTAINS@+      -- Contains. Requires that the field is an array.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable FieldFilterOp++instance FromHttpApiData FieldFilterOp where+    parseQueryParam = \case+        "OPERATOR_UNSPECIFIED" -> Right FFOOperatorUnspecified+        "LESS_THAN" -> Right FFOLessThan+        "LESS_THAN_OR_EQUAL" -> Right FFOLessThanOrEqual+        "GREATER_THAN" -> Right FFOGreaterThan+        "GREATER_THAN_OR_EQUAL" -> Right FFOGreaterThanOrEqual+        "EQUAL" -> Right FFOEqual+        "ARRAY_CONTAINS" -> Right FFOArrayContains+        x -> Left ("Unable to parse FieldFilterOp from: " <> x)++instance ToHttpApiData FieldFilterOp where+    toQueryParam = \case+        FFOOperatorUnspecified -> "OPERATOR_UNSPECIFIED"+        FFOLessThan -> "LESS_THAN"+        FFOLessThanOrEqual -> "LESS_THAN_OR_EQUAL"+        FFOGreaterThan -> "GREATER_THAN"+        FFOGreaterThanOrEqual -> "GREATER_THAN_OR_EQUAL"+        FFOEqual -> "EQUAL"+        FFOArrayContains -> "ARRAY_CONTAINS"++instance FromJSON FieldFilterOp where+    parseJSON = parseJSONText "FieldFilterOp"++instance ToJSON FieldFilterOp where+    toJSON = toJSONText++-- | The type of change that occurred.+data TargetChangeTargetChangeType+    = TCTCTNoChange+      -- ^ @NO_CHANGE@+      -- No change has occurred. Used only to send an updated \`resume_token\`.+    | TCTCTAdd+      -- ^ @ADD@+      -- The targets have been added.+    | TCTCTRemove+      -- ^ @REMOVE@+      -- The targets have been removed.+    | TCTCTCurrent+      -- ^ @CURRENT@+      -- The targets reflect all changes committed before the targets were added+      -- to the stream. This will be sent after or with a \`read_time\` that is+      -- greater than or equal to the time at which the targets were added.+      -- Listeners can wait for this change if read-after-write semantics are+      -- desired.+    | TCTCTReset+      -- ^ @RESET@+      -- The targets have been reset, and a new initial state for the targets+      -- will be returned in subsequent changes. After the initial state is+      -- complete, \`CURRENT\` will be returned even if the target was previously+      -- indicated to be \`CURRENT\`.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable TargetChangeTargetChangeType++instance FromHttpApiData TargetChangeTargetChangeType where+    parseQueryParam = \case+        "NO_CHANGE" -> Right TCTCTNoChange+        "ADD" -> Right TCTCTAdd+        "REMOVE" -> Right TCTCTRemove+        "CURRENT" -> Right TCTCTCurrent+        "RESET" -> Right TCTCTReset+        x -> Left ("Unable to parse TargetChangeTargetChangeType from: " <> x)++instance ToHttpApiData TargetChangeTargetChangeType where+    toQueryParam = \case+        TCTCTNoChange -> "NO_CHANGE"+        TCTCTAdd -> "ADD"+        TCTCTRemove -> "REMOVE"+        TCTCTCurrent -> "CURRENT"+        TCTCTReset -> "RESET"++instance FromJSON TargetChangeTargetChangeType where+    parseJSON = parseJSONText "TargetChangeTargetChangeType"++instance ToJSON TargetChangeTargetChangeType where+    toJSON = toJSONText++-- | The state of the import operation.+data GoogleFirestoreAdminV1ImportDocumentsMetadataOperationState+    = GFAVIDMOSOperationStateUnspecified+      -- ^ @OPERATION_STATE_UNSPECIFIED@+      -- Unspecified.+    | GFAVIDMOSInitializing+      -- ^ @INITIALIZING@+      -- Request is being prepared for processing.+    | GFAVIDMOSProcessing+      -- ^ @PROCESSING@+      -- Request is actively being processed.+    | GFAVIDMOSCancelling+      -- ^ @CANCELLING@+      -- Request is in the process of being cancelled after user called+      -- google.longrunning.Operations.CancelOperation on the operation.+    | GFAVIDMOSFinalizing+      -- ^ @FINALIZING@+      -- Request has been processed and is in its finalization stage.+    | GFAVIDMOSSuccessful+      -- ^ @SUCCESSFUL@+      -- Request has completed successfully.+    | GFAVIDMOSFailed+      -- ^ @FAILED@+      -- Request has finished being processed, but encountered an error.+    | GFAVIDMOSCancelled+      -- ^ @CANCELLED@+      -- Request has finished being cancelled after user called+      -- google.longrunning.Operations.CancelOperation.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable GoogleFirestoreAdminV1ImportDocumentsMetadataOperationState++instance FromHttpApiData GoogleFirestoreAdminV1ImportDocumentsMetadataOperationState where+    parseQueryParam = \case+        "OPERATION_STATE_UNSPECIFIED" -> Right GFAVIDMOSOperationStateUnspecified+        "INITIALIZING" -> Right GFAVIDMOSInitializing+        "PROCESSING" -> Right GFAVIDMOSProcessing+        "CANCELLING" -> Right GFAVIDMOSCancelling+        "FINALIZING" -> Right GFAVIDMOSFinalizing+        "SUCCESSFUL" -> Right GFAVIDMOSSuccessful+        "FAILED" -> Right GFAVIDMOSFailed+        "CANCELLED" -> Right GFAVIDMOSCancelled+        x -> Left ("Unable to parse GoogleFirestoreAdminV1ImportDocumentsMetadataOperationState from: " <> x)++instance ToHttpApiData GoogleFirestoreAdminV1ImportDocumentsMetadataOperationState where+    toQueryParam = \case+        GFAVIDMOSOperationStateUnspecified -> "OPERATION_STATE_UNSPECIFIED"+        GFAVIDMOSInitializing -> "INITIALIZING"+        GFAVIDMOSProcessing -> "PROCESSING"+        GFAVIDMOSCancelling -> "CANCELLING"+        GFAVIDMOSFinalizing -> "FINALIZING"+        GFAVIDMOSSuccessful -> "SUCCESSFUL"+        GFAVIDMOSFailed -> "FAILED"+        GFAVIDMOSCancelled -> "CANCELLED"++instance FromJSON GoogleFirestoreAdminV1ImportDocumentsMetadataOperationState where+    parseJSON = parseJSONText "GoogleFirestoreAdminV1ImportDocumentsMetadataOperationState"++instance ToJSON GoogleFirestoreAdminV1ImportDocumentsMetadataOperationState where+    toJSON = toJSONText++-- | The state of the operation.+data GoogleFirestoreAdminV1FieldOperationMetadataState+    = GFAVFOMSOperationStateUnspecified+      -- ^ @OPERATION_STATE_UNSPECIFIED@+      -- Unspecified.+    | GFAVFOMSInitializing+      -- ^ @INITIALIZING@+      -- Request is being prepared for processing.+    | GFAVFOMSProcessing+      -- ^ @PROCESSING@+      -- Request is actively being processed.+    | GFAVFOMSCancelling+      -- ^ @CANCELLING@+      -- Request is in the process of being cancelled after user called+      -- google.longrunning.Operations.CancelOperation on the operation.+    | GFAVFOMSFinalizing+      -- ^ @FINALIZING@+      -- Request has been processed and is in its finalization stage.+    | GFAVFOMSSuccessful+      -- ^ @SUCCESSFUL@+      -- Request has completed successfully.+    | GFAVFOMSFailed+      -- ^ @FAILED@+      -- Request has finished being processed, but encountered an error.+    | GFAVFOMSCancelled+      -- ^ @CANCELLED@+      -- Request has finished being cancelled after user called+      -- google.longrunning.Operations.CancelOperation.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable GoogleFirestoreAdminV1FieldOperationMetadataState++instance FromHttpApiData GoogleFirestoreAdminV1FieldOperationMetadataState where+    parseQueryParam = \case+        "OPERATION_STATE_UNSPECIFIED" -> Right GFAVFOMSOperationStateUnspecified+        "INITIALIZING" -> Right GFAVFOMSInitializing+        "PROCESSING" -> Right GFAVFOMSProcessing+        "CANCELLING" -> Right GFAVFOMSCancelling+        "FINALIZING" -> Right GFAVFOMSFinalizing+        "SUCCESSFUL" -> Right GFAVFOMSSuccessful+        "FAILED" -> Right GFAVFOMSFailed+        "CANCELLED" -> Right GFAVFOMSCancelled+        x -> Left ("Unable to parse GoogleFirestoreAdminV1FieldOperationMetadataState from: " <> x)++instance ToHttpApiData GoogleFirestoreAdminV1FieldOperationMetadataState where+    toQueryParam = \case+        GFAVFOMSOperationStateUnspecified -> "OPERATION_STATE_UNSPECIFIED"+        GFAVFOMSInitializing -> "INITIALIZING"+        GFAVFOMSProcessing -> "PROCESSING"+        GFAVFOMSCancelling -> "CANCELLING"+        GFAVFOMSFinalizing -> "FINALIZING"+        GFAVFOMSSuccessful -> "SUCCESSFUL"+        GFAVFOMSFailed -> "FAILED"+        GFAVFOMSCancelled -> "CANCELLED"++instance FromJSON GoogleFirestoreAdminV1FieldOperationMetadataState where+    parseJSON = parseJSONText "GoogleFirestoreAdminV1FieldOperationMetadataState"++instance ToJSON GoogleFirestoreAdminV1FieldOperationMetadataState where+    toJSON = toJSONText++-- | Sets the field to the given server value.+data FieldTransformSetToServerValue+    = ServerValueUnspecified+      -- ^ @SERVER_VALUE_UNSPECIFIED@+      -- Unspecified. This value must not be used.+    | RequestTime+      -- ^ @REQUEST_TIME@+      -- The time at which the server processed the request, with millisecond+      -- precision.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable FieldTransformSetToServerValue++instance FromHttpApiData FieldTransformSetToServerValue where+    parseQueryParam = \case+        "SERVER_VALUE_UNSPECIFIED" -> Right ServerValueUnspecified+        "REQUEST_TIME" -> Right RequestTime+        x -> Left ("Unable to parse FieldTransformSetToServerValue from: " <> x)++instance ToHttpApiData FieldTransformSetToServerValue where+    toQueryParam = \case+        ServerValueUnspecified -> "SERVER_VALUE_UNSPECIFIED"+        RequestTime -> "REQUEST_TIME"++instance FromJSON FieldTransformSetToServerValue where+    parseJSON = parseJSONText "FieldTransformSetToServerValue"++instance ToJSON FieldTransformSetToServerValue where+    toJSON = toJSONText++-- | The state of the export operation.+data GoogleFirestoreAdminV1ExportDocumentsMetadataOperationState+    = GFAVEDMOSOperationStateUnspecified+      -- ^ @OPERATION_STATE_UNSPECIFIED@+      -- Unspecified.+    | GFAVEDMOSInitializing+      -- ^ @INITIALIZING@+      -- Request is being prepared for processing.+    | GFAVEDMOSProcessing+      -- ^ @PROCESSING@+      -- Request is actively being processed.+    | GFAVEDMOSCancelling+      -- ^ @CANCELLING@+      -- Request is in the process of being cancelled after user called+      -- google.longrunning.Operations.CancelOperation on the operation.+    | GFAVEDMOSFinalizing+      -- ^ @FINALIZING@+      -- Request has been processed and is in its finalization stage.+    | GFAVEDMOSSuccessful+      -- ^ @SUCCESSFUL@+      -- Request has completed successfully.+    | GFAVEDMOSFailed+      -- ^ @FAILED@+      -- Request has finished being processed, but encountered an error.+    | GFAVEDMOSCancelled+      -- ^ @CANCELLED@+      -- Request has finished being cancelled after user called+      -- google.longrunning.Operations.CancelOperation.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable GoogleFirestoreAdminV1ExportDocumentsMetadataOperationState++instance FromHttpApiData GoogleFirestoreAdminV1ExportDocumentsMetadataOperationState where+    parseQueryParam = \case+        "OPERATION_STATE_UNSPECIFIED" -> Right GFAVEDMOSOperationStateUnspecified+        "INITIALIZING" -> Right GFAVEDMOSInitializing+        "PROCESSING" -> Right GFAVEDMOSProcessing+        "CANCELLING" -> Right GFAVEDMOSCancelling+        "FINALIZING" -> Right GFAVEDMOSFinalizing+        "SUCCESSFUL" -> Right GFAVEDMOSSuccessful+        "FAILED" -> Right GFAVEDMOSFailed+        "CANCELLED" -> Right GFAVEDMOSCancelled+        x -> Left ("Unable to parse GoogleFirestoreAdminV1ExportDocumentsMetadataOperationState from: " <> x)++instance ToHttpApiData GoogleFirestoreAdminV1ExportDocumentsMetadataOperationState where+    toQueryParam = \case+        GFAVEDMOSOperationStateUnspecified -> "OPERATION_STATE_UNSPECIFIED"+        GFAVEDMOSInitializing -> "INITIALIZING"+        GFAVEDMOSProcessing -> "PROCESSING"+        GFAVEDMOSCancelling -> "CANCELLING"+        GFAVEDMOSFinalizing -> "FINALIZING"+        GFAVEDMOSSuccessful -> "SUCCESSFUL"+        GFAVEDMOSFailed -> "FAILED"+        GFAVEDMOSCancelled -> "CANCELLED"++instance FromJSON GoogleFirestoreAdminV1ExportDocumentsMetadataOperationState where+    parseJSON = parseJSONText "GoogleFirestoreAdminV1ExportDocumentsMetadataOperationState"++instance ToJSON GoogleFirestoreAdminV1ExportDocumentsMetadataOperationState where+    toJSON = toJSONText
+ gen/Network/Google/Resource/FireStore/Projects/Databases/CollectionGroups/Fields/Get.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.FireStore.Projects.Databases.CollectionGroups.Fields.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the metadata and configuration for a Field.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.collectionGroups.fields.get@.+module Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Fields.Get+    (+    -- * REST Resource+      ProjectsDatabasesCollectionGroupsFieldsGetResource++    -- * Creating a Request+    , projectsDatabasesCollectionGroupsFieldsGet+    , ProjectsDatabasesCollectionGroupsFieldsGet++    -- * Request Lenses+    , pdcgfgXgafv+    , pdcgfgUploadProtocol+    , pdcgfgAccessToken+    , pdcgfgUploadType+    , pdcgfgName+    , pdcgfgCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.collectionGroups.fields.get@ method which the+-- 'ProjectsDatabasesCollectionGroupsFieldsGet' request conforms to.+type ProjectsDatabasesCollectionGroupsFieldsGetResource+     =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     Get '[JSON] GoogleFirestoreAdminV1Field++-- | Gets the metadata and configuration for a Field.+--+-- /See:/ 'projectsDatabasesCollectionGroupsFieldsGet' smart constructor.+data ProjectsDatabasesCollectionGroupsFieldsGet = ProjectsDatabasesCollectionGroupsFieldsGet'+    { _pdcgfgXgafv          :: !(Maybe Xgafv)+    , _pdcgfgUploadProtocol :: !(Maybe Text)+    , _pdcgfgAccessToken    :: !(Maybe Text)+    , _pdcgfgUploadType     :: !(Maybe Text)+    , _pdcgfgName           :: !Text+    , _pdcgfgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesCollectionGroupsFieldsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdcgfgXgafv'+--+-- * 'pdcgfgUploadProtocol'+--+-- * 'pdcgfgAccessToken'+--+-- * 'pdcgfgUploadType'+--+-- * 'pdcgfgName'+--+-- * 'pdcgfgCallback'+projectsDatabasesCollectionGroupsFieldsGet+    :: Text -- ^ 'pdcgfgName'+    -> ProjectsDatabasesCollectionGroupsFieldsGet+projectsDatabasesCollectionGroupsFieldsGet pPdcgfgName_ =+    ProjectsDatabasesCollectionGroupsFieldsGet'+    { _pdcgfgXgafv = Nothing+    , _pdcgfgUploadProtocol = Nothing+    , _pdcgfgAccessToken = Nothing+    , _pdcgfgUploadType = Nothing+    , _pdcgfgName = pPdcgfgName_+    , _pdcgfgCallback = Nothing+    }++-- | V1 error format.+pdcgfgXgafv :: Lens' ProjectsDatabasesCollectionGroupsFieldsGet (Maybe Xgafv)+pdcgfgXgafv+  = lens _pdcgfgXgafv (\ s a -> s{_pdcgfgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pdcgfgUploadProtocol :: Lens' ProjectsDatabasesCollectionGroupsFieldsGet (Maybe Text)+pdcgfgUploadProtocol+  = lens _pdcgfgUploadProtocol+      (\ s a -> s{_pdcgfgUploadProtocol = a})++-- | OAuth access token.+pdcgfgAccessToken :: Lens' ProjectsDatabasesCollectionGroupsFieldsGet (Maybe Text)+pdcgfgAccessToken+  = lens _pdcgfgAccessToken+      (\ s a -> s{_pdcgfgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pdcgfgUploadType :: Lens' ProjectsDatabasesCollectionGroupsFieldsGet (Maybe Text)+pdcgfgUploadType+  = lens _pdcgfgUploadType+      (\ s a -> s{_pdcgfgUploadType = a})++-- | A name of the form+-- \`projects\/{project_id}\/databases\/{database_id}\/collectionGroups\/{collection_id}\/fields\/{field_id}\`+pdcgfgName :: Lens' ProjectsDatabasesCollectionGroupsFieldsGet Text+pdcgfgName+  = lens _pdcgfgName (\ s a -> s{_pdcgfgName = a})++-- | JSONP+pdcgfgCallback :: Lens' ProjectsDatabasesCollectionGroupsFieldsGet (Maybe Text)+pdcgfgCallback+  = lens _pdcgfgCallback+      (\ s a -> s{_pdcgfgCallback = a})++instance GoogleRequest+         ProjectsDatabasesCollectionGroupsFieldsGet where+        type Rs ProjectsDatabasesCollectionGroupsFieldsGet =+             GoogleFirestoreAdminV1Field+        type Scopes+               ProjectsDatabasesCollectionGroupsFieldsGet+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient+          ProjectsDatabasesCollectionGroupsFieldsGet'{..}+          = go _pdcgfgName _pdcgfgXgafv _pdcgfgUploadProtocol+              _pdcgfgAccessToken+              _pdcgfgUploadType+              _pdcgfgCallback+              (Just AltJSON)+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsDatabasesCollectionGroupsFieldsGetResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/CollectionGroups/Fields/List.hs view
@@ -0,0 +1,213 @@+{-# 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.FireStore.Projects.Databases.CollectionGroups.Fields.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the field configuration and metadata for this database. Currently,+-- FirestoreAdmin.ListFields only supports listing fields that have been+-- explicitly overridden. To issue this query, call+-- FirestoreAdmin.ListFields with the filter set to+-- \`indexConfig.usesAncestorConfig:false\`.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.collectionGroups.fields.list@.+module Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Fields.List+    (+    -- * REST Resource+      ProjectsDatabasesCollectionGroupsFieldsListResource++    -- * Creating a Request+    , projectsDatabasesCollectionGroupsFieldsList+    , ProjectsDatabasesCollectionGroupsFieldsList++    -- * Request Lenses+    , pdcgflParent+    , pdcgflXgafv+    , pdcgflUploadProtocol+    , pdcgflAccessToken+    , pdcgflUploadType+    , pdcgflFilter+    , pdcgflPageToken+    , pdcgflPageSize+    , pdcgflCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.collectionGroups.fields.list@ method which the+-- 'ProjectsDatabasesCollectionGroupsFieldsList' request conforms to.+type ProjectsDatabasesCollectionGroupsFieldsListResource+     =+     "v1" :>+       Capture "parent" Text :>+         "fields" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "pageSize" (Textual Int32) :>+                         QueryParam "callback" Text :>+                           QueryParam "alt" AltJSON :>+                             Get '[JSON]+                               GoogleFirestoreAdminV1ListFieldsResponse++-- | Lists the field configuration and metadata for this database. Currently,+-- FirestoreAdmin.ListFields only supports listing fields that have been+-- explicitly overridden. To issue this query, call+-- FirestoreAdmin.ListFields with the filter set to+-- \`indexConfig.usesAncestorConfig:false\`.+--+-- /See:/ 'projectsDatabasesCollectionGroupsFieldsList' smart constructor.+data ProjectsDatabasesCollectionGroupsFieldsList = ProjectsDatabasesCollectionGroupsFieldsList'+    { _pdcgflParent         :: !Text+    , _pdcgflXgafv          :: !(Maybe Xgafv)+    , _pdcgflUploadProtocol :: !(Maybe Text)+    , _pdcgflAccessToken    :: !(Maybe Text)+    , _pdcgflUploadType     :: !(Maybe Text)+    , _pdcgflFilter         :: !(Maybe Text)+    , _pdcgflPageToken      :: !(Maybe Text)+    , _pdcgflPageSize       :: !(Maybe (Textual Int32))+    , _pdcgflCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesCollectionGroupsFieldsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdcgflParent'+--+-- * 'pdcgflXgafv'+--+-- * 'pdcgflUploadProtocol'+--+-- * 'pdcgflAccessToken'+--+-- * 'pdcgflUploadType'+--+-- * 'pdcgflFilter'+--+-- * 'pdcgflPageToken'+--+-- * 'pdcgflPageSize'+--+-- * 'pdcgflCallback'+projectsDatabasesCollectionGroupsFieldsList+    :: Text -- ^ 'pdcgflParent'+    -> ProjectsDatabasesCollectionGroupsFieldsList+projectsDatabasesCollectionGroupsFieldsList pPdcgflParent_ =+    ProjectsDatabasesCollectionGroupsFieldsList'+    { _pdcgflParent = pPdcgflParent_+    , _pdcgflXgafv = Nothing+    , _pdcgflUploadProtocol = Nothing+    , _pdcgflAccessToken = Nothing+    , _pdcgflUploadType = Nothing+    , _pdcgflFilter = Nothing+    , _pdcgflPageToken = Nothing+    , _pdcgflPageSize = Nothing+    , _pdcgflCallback = Nothing+    }++-- | A parent name of the form+-- \`projects\/{project_id}\/databases\/{database_id}\/collectionGroups\/{collection_id}\`+pdcgflParent :: Lens' ProjectsDatabasesCollectionGroupsFieldsList Text+pdcgflParent+  = lens _pdcgflParent (\ s a -> s{_pdcgflParent = a})++-- | V1 error format.+pdcgflXgafv :: Lens' ProjectsDatabasesCollectionGroupsFieldsList (Maybe Xgafv)+pdcgflXgafv+  = lens _pdcgflXgafv (\ s a -> s{_pdcgflXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pdcgflUploadProtocol :: Lens' ProjectsDatabasesCollectionGroupsFieldsList (Maybe Text)+pdcgflUploadProtocol+  = lens _pdcgflUploadProtocol+      (\ s a -> s{_pdcgflUploadProtocol = a})++-- | OAuth access token.+pdcgflAccessToken :: Lens' ProjectsDatabasesCollectionGroupsFieldsList (Maybe Text)+pdcgflAccessToken+  = lens _pdcgflAccessToken+      (\ s a -> s{_pdcgflAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pdcgflUploadType :: Lens' ProjectsDatabasesCollectionGroupsFieldsList (Maybe Text)+pdcgflUploadType+  = lens _pdcgflUploadType+      (\ s a -> s{_pdcgflUploadType = a})++-- | The filter to apply to list results. Currently,+-- FirestoreAdmin.ListFields only supports listing fields that have been+-- explicitly overridden. To issue this query, call+-- FirestoreAdmin.ListFields with the filter set to+-- \`indexConfig.usesAncestorConfig:false\`.+pdcgflFilter :: Lens' ProjectsDatabasesCollectionGroupsFieldsList (Maybe Text)+pdcgflFilter+  = lens _pdcgflFilter (\ s a -> s{_pdcgflFilter = a})++-- | A page token, returned from a previous call to+-- FirestoreAdmin.ListFields, that may be used to get the next page of+-- results.+pdcgflPageToken :: Lens' ProjectsDatabasesCollectionGroupsFieldsList (Maybe Text)+pdcgflPageToken+  = lens _pdcgflPageToken+      (\ s a -> s{_pdcgflPageToken = a})++-- | The number of results to return.+pdcgflPageSize :: Lens' ProjectsDatabasesCollectionGroupsFieldsList (Maybe Int32)+pdcgflPageSize+  = lens _pdcgflPageSize+      (\ s a -> s{_pdcgflPageSize = a})+      . mapping _Coerce++-- | JSONP+pdcgflCallback :: Lens' ProjectsDatabasesCollectionGroupsFieldsList (Maybe Text)+pdcgflCallback+  = lens _pdcgflCallback+      (\ s a -> s{_pdcgflCallback = a})++instance GoogleRequest+         ProjectsDatabasesCollectionGroupsFieldsList where+        type Rs ProjectsDatabasesCollectionGroupsFieldsList =+             GoogleFirestoreAdminV1ListFieldsResponse+        type Scopes+               ProjectsDatabasesCollectionGroupsFieldsList+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient+          ProjectsDatabasesCollectionGroupsFieldsList'{..}+          = go _pdcgflParent _pdcgflXgafv _pdcgflUploadProtocol+              _pdcgflAccessToken+              _pdcgflUploadType+              _pdcgflFilter+              _pdcgflPageToken+              _pdcgflPageSize+              _pdcgflCallback+              (Just AltJSON)+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsDatabasesCollectionGroupsFieldsListResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/CollectionGroups/Fields/Patch.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.FireStore.Projects.Databases.CollectionGroups.Fields.Patch+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a field configuration. Currently, field updates apply only to+-- single field index configuration. However, calls to+-- FirestoreAdmin.UpdateField should provide a field mask to avoid changing+-- any configuration that the caller isn\'t aware of. The field mask should+-- be specified as: \`{ paths: \"index_config\" }\`. This call returns a+-- google.longrunning.Operation which may be used to track the status of+-- the field update. The metadata for the operation will be the type+-- FieldOperationMetadata. To configure the default field settings for the+-- database, use the special \`Field\` with resource name:+-- \`projects\/{project_id}\/databases\/{database_id}\/collectionGroups\/__default__\/fields\/*\`.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.collectionGroups.fields.patch@.+module Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Fields.Patch+    (+    -- * REST Resource+      ProjectsDatabasesCollectionGroupsFieldsPatchResource++    -- * Creating a Request+    , projectsDatabasesCollectionGroupsFieldsPatch+    , ProjectsDatabasesCollectionGroupsFieldsPatch++    -- * Request Lenses+    , pdcgfpXgafv+    , pdcgfpUploadProtocol+    , pdcgfpUpdateMask+    , pdcgfpAccessToken+    , pdcgfpUploadType+    , pdcgfpPayload+    , pdcgfpName+    , pdcgfpCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.collectionGroups.fields.patch@ method which the+-- 'ProjectsDatabasesCollectionGroupsFieldsPatch' request conforms to.+type ProjectsDatabasesCollectionGroupsFieldsPatchResource+     =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "updateMask" GFieldMask :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] GoogleFirestoreAdminV1Field :>+                         Patch '[JSON] GoogleLongrunningOperation++-- | Updates a field configuration. Currently, field updates apply only to+-- single field index configuration. However, calls to+-- FirestoreAdmin.UpdateField should provide a field mask to avoid changing+-- any configuration that the caller isn\'t aware of. The field mask should+-- be specified as: \`{ paths: \"index_config\" }\`. This call returns a+-- google.longrunning.Operation which may be used to track the status of+-- the field update. The metadata for the operation will be the type+-- FieldOperationMetadata. To configure the default field settings for the+-- database, use the special \`Field\` with resource name:+-- \`projects\/{project_id}\/databases\/{database_id}\/collectionGroups\/__default__\/fields\/*\`.+--+-- /See:/ 'projectsDatabasesCollectionGroupsFieldsPatch' smart constructor.+data ProjectsDatabasesCollectionGroupsFieldsPatch = ProjectsDatabasesCollectionGroupsFieldsPatch'+    { _pdcgfpXgafv          :: !(Maybe Xgafv)+    , _pdcgfpUploadProtocol :: !(Maybe Text)+    , _pdcgfpUpdateMask     :: !(Maybe GFieldMask)+    , _pdcgfpAccessToken    :: !(Maybe Text)+    , _pdcgfpUploadType     :: !(Maybe Text)+    , _pdcgfpPayload        :: !GoogleFirestoreAdminV1Field+    , _pdcgfpName           :: !Text+    , _pdcgfpCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesCollectionGroupsFieldsPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdcgfpXgafv'+--+-- * 'pdcgfpUploadProtocol'+--+-- * 'pdcgfpUpdateMask'+--+-- * 'pdcgfpAccessToken'+--+-- * 'pdcgfpUploadType'+--+-- * 'pdcgfpPayload'+--+-- * 'pdcgfpName'+--+-- * 'pdcgfpCallback'+projectsDatabasesCollectionGroupsFieldsPatch+    :: GoogleFirestoreAdminV1Field -- ^ 'pdcgfpPayload'+    -> Text -- ^ 'pdcgfpName'+    -> ProjectsDatabasesCollectionGroupsFieldsPatch+projectsDatabasesCollectionGroupsFieldsPatch pPdcgfpPayload_ pPdcgfpName_ =+    ProjectsDatabasesCollectionGroupsFieldsPatch'+    { _pdcgfpXgafv = Nothing+    , _pdcgfpUploadProtocol = Nothing+    , _pdcgfpUpdateMask = Nothing+    , _pdcgfpAccessToken = Nothing+    , _pdcgfpUploadType = Nothing+    , _pdcgfpPayload = pPdcgfpPayload_+    , _pdcgfpName = pPdcgfpName_+    , _pdcgfpCallback = Nothing+    }++-- | V1 error format.+pdcgfpXgafv :: Lens' ProjectsDatabasesCollectionGroupsFieldsPatch (Maybe Xgafv)+pdcgfpXgafv+  = lens _pdcgfpXgafv (\ s a -> s{_pdcgfpXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pdcgfpUploadProtocol :: Lens' ProjectsDatabasesCollectionGroupsFieldsPatch (Maybe Text)+pdcgfpUploadProtocol+  = lens _pdcgfpUploadProtocol+      (\ s a -> s{_pdcgfpUploadProtocol = a})++-- | A mask, relative to the field. If specified, only configuration+-- specified by this field_mask will be updated in the field.+pdcgfpUpdateMask :: Lens' ProjectsDatabasesCollectionGroupsFieldsPatch (Maybe GFieldMask)+pdcgfpUpdateMask+  = lens _pdcgfpUpdateMask+      (\ s a -> s{_pdcgfpUpdateMask = a})++-- | OAuth access token.+pdcgfpAccessToken :: Lens' ProjectsDatabasesCollectionGroupsFieldsPatch (Maybe Text)+pdcgfpAccessToken+  = lens _pdcgfpAccessToken+      (\ s a -> s{_pdcgfpAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pdcgfpUploadType :: Lens' ProjectsDatabasesCollectionGroupsFieldsPatch (Maybe Text)+pdcgfpUploadType+  = lens _pdcgfpUploadType+      (\ s a -> s{_pdcgfpUploadType = a})++-- | Multipart request metadata.+pdcgfpPayload :: Lens' ProjectsDatabasesCollectionGroupsFieldsPatch GoogleFirestoreAdminV1Field+pdcgfpPayload+  = lens _pdcgfpPayload+      (\ s a -> s{_pdcgfpPayload = a})++-- | A field name of the form+-- \`projects\/{project_id}\/databases\/{database_id}\/collectionGroups\/{collection_id}\/fields\/{field_path}\`+-- A field path may be a simple field name, e.g. \`address\` or a path to+-- fields within map_value , e.g. \`address.city\`, or a special field+-- path. The only valid special field is \`*\`, which represents any field.+-- Field paths may be quoted using \` (backtick). The only character that+-- needs to be escaped within a quoted field path is the backtick character+-- itself, escaped using a backslash. Special characters in field paths+-- that must be quoted include: \`*\`, \`.\`, \`\`\` (backtick), \`[\`,+-- \`]\`, as well as any ascii symbolic characters. Examples: (Note:+-- Comments here are written in markdown syntax, so there is an additional+-- layer of backticks to represent a code block) \`\\\`address.city\\\`\`+-- represents a field named \`address.city\`, not the map key \`city\` in+-- the field \`address\`. \`\\\`*\\\`\` represents a field named \`*\`, not+-- any field. A special \`Field\` contains the default indexing settings+-- for all fields. This field\'s resource name is:+-- \`projects\/{project_id}\/databases\/{database_id}\/collectionGroups\/__default__\/fields\/*\`+-- Indexes defined on this \`Field\` will be applied to all fields which do+-- not have their own \`Field\` index configuration.+pdcgfpName :: Lens' ProjectsDatabasesCollectionGroupsFieldsPatch Text+pdcgfpName+  = lens _pdcgfpName (\ s a -> s{_pdcgfpName = a})++-- | JSONP+pdcgfpCallback :: Lens' ProjectsDatabasesCollectionGroupsFieldsPatch (Maybe Text)+pdcgfpCallback+  = lens _pdcgfpCallback+      (\ s a -> s{_pdcgfpCallback = a})++instance GoogleRequest+         ProjectsDatabasesCollectionGroupsFieldsPatch where+        type Rs ProjectsDatabasesCollectionGroupsFieldsPatch+             = GoogleLongrunningOperation+        type Scopes+               ProjectsDatabasesCollectionGroupsFieldsPatch+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient+          ProjectsDatabasesCollectionGroupsFieldsPatch'{..}+          = go _pdcgfpName _pdcgfpXgafv _pdcgfpUploadProtocol+              _pdcgfpUpdateMask+              _pdcgfpAccessToken+              _pdcgfpUploadType+              _pdcgfpCallback+              (Just AltJSON)+              _pdcgfpPayload+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsDatabasesCollectionGroupsFieldsPatchResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/CollectionGroups/Indexes/Create.hs view
@@ -0,0 +1,178 @@+{-# 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.FireStore.Projects.Databases.CollectionGroups.Indexes.Create+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a composite index. This returns a google.longrunning.Operation+-- which may be used to track the status of the creation. The metadata for+-- the operation will be the type IndexOperationMetadata.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.collectionGroups.indexes.create@.+module Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Indexes.Create+    (+    -- * REST Resource+      ProjectsDatabasesCollectionGroupsIndexesCreateResource++    -- * Creating a Request+    , projectsDatabasesCollectionGroupsIndexesCreate+    , ProjectsDatabasesCollectionGroupsIndexesCreate++    -- * Request Lenses+    , pdcgicParent+    , pdcgicXgafv+    , pdcgicUploadProtocol+    , pdcgicAccessToken+    , pdcgicUploadType+    , pdcgicPayload+    , pdcgicCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.collectionGroups.indexes.create@ method which the+-- 'ProjectsDatabasesCollectionGroupsIndexesCreate' request conforms to.+type ProjectsDatabasesCollectionGroupsIndexesCreateResource+     =+     "v1" :>+       Capture "parent" Text :>+         "indexes" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] GoogleFirestoreAdminV1Index :>+                         Post '[JSON] GoogleLongrunningOperation++-- | Creates a composite index. This returns a google.longrunning.Operation+-- which may be used to track the status of the creation. The metadata for+-- the operation will be the type IndexOperationMetadata.+--+-- /See:/ 'projectsDatabasesCollectionGroupsIndexesCreate' smart constructor.+data ProjectsDatabasesCollectionGroupsIndexesCreate = ProjectsDatabasesCollectionGroupsIndexesCreate'+    { _pdcgicParent         :: !Text+    , _pdcgicXgafv          :: !(Maybe Xgafv)+    , _pdcgicUploadProtocol :: !(Maybe Text)+    , _pdcgicAccessToken    :: !(Maybe Text)+    , _pdcgicUploadType     :: !(Maybe Text)+    , _pdcgicPayload        :: !GoogleFirestoreAdminV1Index+    , _pdcgicCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesCollectionGroupsIndexesCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdcgicParent'+--+-- * 'pdcgicXgafv'+--+-- * 'pdcgicUploadProtocol'+--+-- * 'pdcgicAccessToken'+--+-- * 'pdcgicUploadType'+--+-- * 'pdcgicPayload'+--+-- * 'pdcgicCallback'+projectsDatabasesCollectionGroupsIndexesCreate+    :: Text -- ^ 'pdcgicParent'+    -> GoogleFirestoreAdminV1Index -- ^ 'pdcgicPayload'+    -> ProjectsDatabasesCollectionGroupsIndexesCreate+projectsDatabasesCollectionGroupsIndexesCreate pPdcgicParent_ pPdcgicPayload_ =+    ProjectsDatabasesCollectionGroupsIndexesCreate'+    { _pdcgicParent = pPdcgicParent_+    , _pdcgicXgafv = Nothing+    , _pdcgicUploadProtocol = Nothing+    , _pdcgicAccessToken = Nothing+    , _pdcgicUploadType = Nothing+    , _pdcgicPayload = pPdcgicPayload_+    , _pdcgicCallback = Nothing+    }++-- | A parent name of the form+-- \`projects\/{project_id}\/databases\/{database_id}\/collectionGroups\/{collection_id}\`+pdcgicParent :: Lens' ProjectsDatabasesCollectionGroupsIndexesCreate Text+pdcgicParent+  = lens _pdcgicParent (\ s a -> s{_pdcgicParent = a})++-- | V1 error format.+pdcgicXgafv :: Lens' ProjectsDatabasesCollectionGroupsIndexesCreate (Maybe Xgafv)+pdcgicXgafv+  = lens _pdcgicXgafv (\ s a -> s{_pdcgicXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pdcgicUploadProtocol :: Lens' ProjectsDatabasesCollectionGroupsIndexesCreate (Maybe Text)+pdcgicUploadProtocol+  = lens _pdcgicUploadProtocol+      (\ s a -> s{_pdcgicUploadProtocol = a})++-- | OAuth access token.+pdcgicAccessToken :: Lens' ProjectsDatabasesCollectionGroupsIndexesCreate (Maybe Text)+pdcgicAccessToken+  = lens _pdcgicAccessToken+      (\ s a -> s{_pdcgicAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pdcgicUploadType :: Lens' ProjectsDatabasesCollectionGroupsIndexesCreate (Maybe Text)+pdcgicUploadType+  = lens _pdcgicUploadType+      (\ s a -> s{_pdcgicUploadType = a})++-- | Multipart request metadata.+pdcgicPayload :: Lens' ProjectsDatabasesCollectionGroupsIndexesCreate GoogleFirestoreAdminV1Index+pdcgicPayload+  = lens _pdcgicPayload+      (\ s a -> s{_pdcgicPayload = a})++-- | JSONP+pdcgicCallback :: Lens' ProjectsDatabasesCollectionGroupsIndexesCreate (Maybe Text)+pdcgicCallback+  = lens _pdcgicCallback+      (\ s a -> s{_pdcgicCallback = a})++instance GoogleRequest+         ProjectsDatabasesCollectionGroupsIndexesCreate where+        type Rs+               ProjectsDatabasesCollectionGroupsIndexesCreate+             = GoogleLongrunningOperation+        type Scopes+               ProjectsDatabasesCollectionGroupsIndexesCreate+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient+          ProjectsDatabasesCollectionGroupsIndexesCreate'{..}+          = go _pdcgicParent _pdcgicXgafv _pdcgicUploadProtocol+              _pdcgicAccessToken+              _pdcgicUploadType+              _pdcgicCallback+              (Just AltJSON)+              _pdcgicPayload+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsDatabasesCollectionGroupsIndexesCreateResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/CollectionGroups/Indexes/Delete.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.FireStore.Projects.Databases.CollectionGroups.Indexes.Delete+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a composite index.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.collectionGroups.indexes.delete@.+module Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Indexes.Delete+    (+    -- * REST Resource+      ProjectsDatabasesCollectionGroupsIndexesDeleteResource++    -- * Creating a Request+    , projectsDatabasesCollectionGroupsIndexesDelete+    , ProjectsDatabasesCollectionGroupsIndexesDelete++    -- * Request Lenses+    , pdcgidXgafv+    , pdcgidUploadProtocol+    , pdcgidAccessToken+    , pdcgidUploadType+    , pdcgidName+    , pdcgidCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.collectionGroups.indexes.delete@ method which the+-- 'ProjectsDatabasesCollectionGroupsIndexesDelete' request conforms to.+type ProjectsDatabasesCollectionGroupsIndexesDeleteResource+     =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Empty++-- | Deletes a composite index.+--+-- /See:/ 'projectsDatabasesCollectionGroupsIndexesDelete' smart constructor.+data ProjectsDatabasesCollectionGroupsIndexesDelete = ProjectsDatabasesCollectionGroupsIndexesDelete'+    { _pdcgidXgafv          :: !(Maybe Xgafv)+    , _pdcgidUploadProtocol :: !(Maybe Text)+    , _pdcgidAccessToken    :: !(Maybe Text)+    , _pdcgidUploadType     :: !(Maybe Text)+    , _pdcgidName           :: !Text+    , _pdcgidCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesCollectionGroupsIndexesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdcgidXgafv'+--+-- * 'pdcgidUploadProtocol'+--+-- * 'pdcgidAccessToken'+--+-- * 'pdcgidUploadType'+--+-- * 'pdcgidName'+--+-- * 'pdcgidCallback'+projectsDatabasesCollectionGroupsIndexesDelete+    :: Text -- ^ 'pdcgidName'+    -> ProjectsDatabasesCollectionGroupsIndexesDelete+projectsDatabasesCollectionGroupsIndexesDelete pPdcgidName_ =+    ProjectsDatabasesCollectionGroupsIndexesDelete'+    { _pdcgidXgafv = Nothing+    , _pdcgidUploadProtocol = Nothing+    , _pdcgidAccessToken = Nothing+    , _pdcgidUploadType = Nothing+    , _pdcgidName = pPdcgidName_+    , _pdcgidCallback = Nothing+    }++-- | V1 error format.+pdcgidXgafv :: Lens' ProjectsDatabasesCollectionGroupsIndexesDelete (Maybe Xgafv)+pdcgidXgafv+  = lens _pdcgidXgafv (\ s a -> s{_pdcgidXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pdcgidUploadProtocol :: Lens' ProjectsDatabasesCollectionGroupsIndexesDelete (Maybe Text)+pdcgidUploadProtocol+  = lens _pdcgidUploadProtocol+      (\ s a -> s{_pdcgidUploadProtocol = a})++-- | OAuth access token.+pdcgidAccessToken :: Lens' ProjectsDatabasesCollectionGroupsIndexesDelete (Maybe Text)+pdcgidAccessToken+  = lens _pdcgidAccessToken+      (\ s a -> s{_pdcgidAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pdcgidUploadType :: Lens' ProjectsDatabasesCollectionGroupsIndexesDelete (Maybe Text)+pdcgidUploadType+  = lens _pdcgidUploadType+      (\ s a -> s{_pdcgidUploadType = a})++-- | A name of the form+-- \`projects\/{project_id}\/databases\/{database_id}\/collectionGroups\/{collection_id}\/indexes\/{index_id}\`+pdcgidName :: Lens' ProjectsDatabasesCollectionGroupsIndexesDelete Text+pdcgidName+  = lens _pdcgidName (\ s a -> s{_pdcgidName = a})++-- | JSONP+pdcgidCallback :: Lens' ProjectsDatabasesCollectionGroupsIndexesDelete (Maybe Text)+pdcgidCallback+  = lens _pdcgidCallback+      (\ s a -> s{_pdcgidCallback = a})++instance GoogleRequest+         ProjectsDatabasesCollectionGroupsIndexesDelete where+        type Rs+               ProjectsDatabasesCollectionGroupsIndexesDelete+             = Empty+        type Scopes+               ProjectsDatabasesCollectionGroupsIndexesDelete+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient+          ProjectsDatabasesCollectionGroupsIndexesDelete'{..}+          = go _pdcgidName _pdcgidXgafv _pdcgidUploadProtocol+              _pdcgidAccessToken+              _pdcgidUploadType+              _pdcgidCallback+              (Just AltJSON)+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsDatabasesCollectionGroupsIndexesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/CollectionGroups/Indexes/Get.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.FireStore.Projects.Databases.CollectionGroups.Indexes.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a composite index.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.collectionGroups.indexes.get@.+module Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Indexes.Get+    (+    -- * REST Resource+      ProjectsDatabasesCollectionGroupsIndexesGetResource++    -- * Creating a Request+    , projectsDatabasesCollectionGroupsIndexesGet+    , ProjectsDatabasesCollectionGroupsIndexesGet++    -- * Request Lenses+    , pdcgigXgafv+    , pdcgigUploadProtocol+    , pdcgigAccessToken+    , pdcgigUploadType+    , pdcgigName+    , pdcgigCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.collectionGroups.indexes.get@ method which the+-- 'ProjectsDatabasesCollectionGroupsIndexesGet' request conforms to.+type ProjectsDatabasesCollectionGroupsIndexesGetResource+     =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     Get '[JSON] GoogleFirestoreAdminV1Index++-- | Gets a composite index.+--+-- /See:/ 'projectsDatabasesCollectionGroupsIndexesGet' smart constructor.+data ProjectsDatabasesCollectionGroupsIndexesGet = ProjectsDatabasesCollectionGroupsIndexesGet'+    { _pdcgigXgafv          :: !(Maybe Xgafv)+    , _pdcgigUploadProtocol :: !(Maybe Text)+    , _pdcgigAccessToken    :: !(Maybe Text)+    , _pdcgigUploadType     :: !(Maybe Text)+    , _pdcgigName           :: !Text+    , _pdcgigCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesCollectionGroupsIndexesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdcgigXgafv'+--+-- * 'pdcgigUploadProtocol'+--+-- * 'pdcgigAccessToken'+--+-- * 'pdcgigUploadType'+--+-- * 'pdcgigName'+--+-- * 'pdcgigCallback'+projectsDatabasesCollectionGroupsIndexesGet+    :: Text -- ^ 'pdcgigName'+    -> ProjectsDatabasesCollectionGroupsIndexesGet+projectsDatabasesCollectionGroupsIndexesGet pPdcgigName_ =+    ProjectsDatabasesCollectionGroupsIndexesGet'+    { _pdcgigXgafv = Nothing+    , _pdcgigUploadProtocol = Nothing+    , _pdcgigAccessToken = Nothing+    , _pdcgigUploadType = Nothing+    , _pdcgigName = pPdcgigName_+    , _pdcgigCallback = Nothing+    }++-- | V1 error format.+pdcgigXgafv :: Lens' ProjectsDatabasesCollectionGroupsIndexesGet (Maybe Xgafv)+pdcgigXgafv+  = lens _pdcgigXgafv (\ s a -> s{_pdcgigXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pdcgigUploadProtocol :: Lens' ProjectsDatabasesCollectionGroupsIndexesGet (Maybe Text)+pdcgigUploadProtocol+  = lens _pdcgigUploadProtocol+      (\ s a -> s{_pdcgigUploadProtocol = a})++-- | OAuth access token.+pdcgigAccessToken :: Lens' ProjectsDatabasesCollectionGroupsIndexesGet (Maybe Text)+pdcgigAccessToken+  = lens _pdcgigAccessToken+      (\ s a -> s{_pdcgigAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pdcgigUploadType :: Lens' ProjectsDatabasesCollectionGroupsIndexesGet (Maybe Text)+pdcgigUploadType+  = lens _pdcgigUploadType+      (\ s a -> s{_pdcgigUploadType = a})++-- | A name of the form+-- \`projects\/{project_id}\/databases\/{database_id}\/collectionGroups\/{collection_id}\/indexes\/{index_id}\`+pdcgigName :: Lens' ProjectsDatabasesCollectionGroupsIndexesGet Text+pdcgigName+  = lens _pdcgigName (\ s a -> s{_pdcgigName = a})++-- | JSONP+pdcgigCallback :: Lens' ProjectsDatabasesCollectionGroupsIndexesGet (Maybe Text)+pdcgigCallback+  = lens _pdcgigCallback+      (\ s a -> s{_pdcgigCallback = a})++instance GoogleRequest+         ProjectsDatabasesCollectionGroupsIndexesGet where+        type Rs ProjectsDatabasesCollectionGroupsIndexesGet =+             GoogleFirestoreAdminV1Index+        type Scopes+               ProjectsDatabasesCollectionGroupsIndexesGet+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient+          ProjectsDatabasesCollectionGroupsIndexesGet'{..}+          = go _pdcgigName _pdcgigXgafv _pdcgigUploadProtocol+              _pdcgigAccessToken+              _pdcgigUploadType+              _pdcgigCallback+              (Just AltJSON)+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsDatabasesCollectionGroupsIndexesGetResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/CollectionGroups/Indexes/List.hs view
@@ -0,0 +1,201 @@+{-# 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.FireStore.Projects.Databases.CollectionGroups.Indexes.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists composite indexes.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.collectionGroups.indexes.list@.+module Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Indexes.List+    (+    -- * REST Resource+      ProjectsDatabasesCollectionGroupsIndexesListResource++    -- * Creating a Request+    , projectsDatabasesCollectionGroupsIndexesList+    , ProjectsDatabasesCollectionGroupsIndexesList++    -- * Request Lenses+    , pdcgilParent+    , pdcgilXgafv+    , pdcgilUploadProtocol+    , pdcgilAccessToken+    , pdcgilUploadType+    , pdcgilFilter+    , pdcgilPageToken+    , pdcgilPageSize+    , pdcgilCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.collectionGroups.indexes.list@ method which the+-- 'ProjectsDatabasesCollectionGroupsIndexesList' request conforms to.+type ProjectsDatabasesCollectionGroupsIndexesListResource+     =+     "v1" :>+       Capture "parent" Text :>+         "indexes" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "pageSize" (Textual Int32) :>+                         QueryParam "callback" Text :>+                           QueryParam "alt" AltJSON :>+                             Get '[JSON]+                               GoogleFirestoreAdminV1ListIndexesResponse++-- | Lists composite indexes.+--+-- /See:/ 'projectsDatabasesCollectionGroupsIndexesList' smart constructor.+data ProjectsDatabasesCollectionGroupsIndexesList = ProjectsDatabasesCollectionGroupsIndexesList'+    { _pdcgilParent         :: !Text+    , _pdcgilXgafv          :: !(Maybe Xgafv)+    , _pdcgilUploadProtocol :: !(Maybe Text)+    , _pdcgilAccessToken    :: !(Maybe Text)+    , _pdcgilUploadType     :: !(Maybe Text)+    , _pdcgilFilter         :: !(Maybe Text)+    , _pdcgilPageToken      :: !(Maybe Text)+    , _pdcgilPageSize       :: !(Maybe (Textual Int32))+    , _pdcgilCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesCollectionGroupsIndexesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdcgilParent'+--+-- * 'pdcgilXgafv'+--+-- * 'pdcgilUploadProtocol'+--+-- * 'pdcgilAccessToken'+--+-- * 'pdcgilUploadType'+--+-- * 'pdcgilFilter'+--+-- * 'pdcgilPageToken'+--+-- * 'pdcgilPageSize'+--+-- * 'pdcgilCallback'+projectsDatabasesCollectionGroupsIndexesList+    :: Text -- ^ 'pdcgilParent'+    -> ProjectsDatabasesCollectionGroupsIndexesList+projectsDatabasesCollectionGroupsIndexesList pPdcgilParent_ =+    ProjectsDatabasesCollectionGroupsIndexesList'+    { _pdcgilParent = pPdcgilParent_+    , _pdcgilXgafv = Nothing+    , _pdcgilUploadProtocol = Nothing+    , _pdcgilAccessToken = Nothing+    , _pdcgilUploadType = Nothing+    , _pdcgilFilter = Nothing+    , _pdcgilPageToken = Nothing+    , _pdcgilPageSize = Nothing+    , _pdcgilCallback = Nothing+    }++-- | A parent name of the form+-- \`projects\/{project_id}\/databases\/{database_id}\/collectionGroups\/{collection_id}\`+pdcgilParent :: Lens' ProjectsDatabasesCollectionGroupsIndexesList Text+pdcgilParent+  = lens _pdcgilParent (\ s a -> s{_pdcgilParent = a})++-- | V1 error format.+pdcgilXgafv :: Lens' ProjectsDatabasesCollectionGroupsIndexesList (Maybe Xgafv)+pdcgilXgafv+  = lens _pdcgilXgafv (\ s a -> s{_pdcgilXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pdcgilUploadProtocol :: Lens' ProjectsDatabasesCollectionGroupsIndexesList (Maybe Text)+pdcgilUploadProtocol+  = lens _pdcgilUploadProtocol+      (\ s a -> s{_pdcgilUploadProtocol = a})++-- | OAuth access token.+pdcgilAccessToken :: Lens' ProjectsDatabasesCollectionGroupsIndexesList (Maybe Text)+pdcgilAccessToken+  = lens _pdcgilAccessToken+      (\ s a -> s{_pdcgilAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pdcgilUploadType :: Lens' ProjectsDatabasesCollectionGroupsIndexesList (Maybe Text)+pdcgilUploadType+  = lens _pdcgilUploadType+      (\ s a -> s{_pdcgilUploadType = a})++-- | The filter to apply to list results.+pdcgilFilter :: Lens' ProjectsDatabasesCollectionGroupsIndexesList (Maybe Text)+pdcgilFilter+  = lens _pdcgilFilter (\ s a -> s{_pdcgilFilter = a})++-- | A page token, returned from a previous call to+-- FirestoreAdmin.ListIndexes, that may be used to get the next page of+-- results.+pdcgilPageToken :: Lens' ProjectsDatabasesCollectionGroupsIndexesList (Maybe Text)+pdcgilPageToken+  = lens _pdcgilPageToken+      (\ s a -> s{_pdcgilPageToken = a})++-- | The number of results to return.+pdcgilPageSize :: Lens' ProjectsDatabasesCollectionGroupsIndexesList (Maybe Int32)+pdcgilPageSize+  = lens _pdcgilPageSize+      (\ s a -> s{_pdcgilPageSize = a})+      . mapping _Coerce++-- | JSONP+pdcgilCallback :: Lens' ProjectsDatabasesCollectionGroupsIndexesList (Maybe Text)+pdcgilCallback+  = lens _pdcgilCallback+      (\ s a -> s{_pdcgilCallback = a})++instance GoogleRequest+         ProjectsDatabasesCollectionGroupsIndexesList where+        type Rs ProjectsDatabasesCollectionGroupsIndexesList+             = GoogleFirestoreAdminV1ListIndexesResponse+        type Scopes+               ProjectsDatabasesCollectionGroupsIndexesList+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient+          ProjectsDatabasesCollectionGroupsIndexesList'{..}+          = go _pdcgilParent _pdcgilXgafv _pdcgilUploadProtocol+              _pdcgilAccessToken+              _pdcgilUploadType+              _pdcgilFilter+              _pdcgilPageToken+              _pdcgilPageSize+              _pdcgilCallback+              (Just AltJSON)+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsDatabasesCollectionGroupsIndexesListResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/Documents/BatchGet.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.FireStore.Projects.Databases.Documents.BatchGet+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets multiple documents. Documents returned by this method are not+-- guaranteed to be returned in the same order that they were requested.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.documents.batchGet@.+module Network.Google.Resource.FireStore.Projects.Databases.Documents.BatchGet+    (+    -- * REST Resource+      ProjectsDatabasesDocumentsBatchGetResource++    -- * Creating a Request+    , projectsDatabasesDocumentsBatchGet+    , ProjectsDatabasesDocumentsBatchGet++    -- * Request Lenses+    , pddbgXgafv+    , pddbgUploadProtocol+    , pddbgDatabase+    , pddbgAccessToken+    , pddbgUploadType+    , pddbgPayload+    , pddbgCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.documents.batchGet@ method which the+-- 'ProjectsDatabasesDocumentsBatchGet' request conforms to.+type ProjectsDatabasesDocumentsBatchGetResource =+     "v1" :>+       Capture "database" Text :>+         "documents:batchGet" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] BatchGetDocumentsRequest :>+                         Post '[JSON] BatchGetDocumentsResponse++-- | Gets multiple documents. Documents returned by this method are not+-- guaranteed to be returned in the same order that they were requested.+--+-- /See:/ 'projectsDatabasesDocumentsBatchGet' smart constructor.+data ProjectsDatabasesDocumentsBatchGet = ProjectsDatabasesDocumentsBatchGet'+    { _pddbgXgafv          :: !(Maybe Xgafv)+    , _pddbgUploadProtocol :: !(Maybe Text)+    , _pddbgDatabase       :: !Text+    , _pddbgAccessToken    :: !(Maybe Text)+    , _pddbgUploadType     :: !(Maybe Text)+    , _pddbgPayload        :: !BatchGetDocumentsRequest+    , _pddbgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesDocumentsBatchGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pddbgXgafv'+--+-- * 'pddbgUploadProtocol'+--+-- * 'pddbgDatabase'+--+-- * 'pddbgAccessToken'+--+-- * 'pddbgUploadType'+--+-- * 'pddbgPayload'+--+-- * 'pddbgCallback'+projectsDatabasesDocumentsBatchGet+    :: Text -- ^ 'pddbgDatabase'+    -> BatchGetDocumentsRequest -- ^ 'pddbgPayload'+    -> ProjectsDatabasesDocumentsBatchGet+projectsDatabasesDocumentsBatchGet pPddbgDatabase_ pPddbgPayload_ =+    ProjectsDatabasesDocumentsBatchGet'+    { _pddbgXgafv = Nothing+    , _pddbgUploadProtocol = Nothing+    , _pddbgDatabase = pPddbgDatabase_+    , _pddbgAccessToken = Nothing+    , _pddbgUploadType = Nothing+    , _pddbgPayload = pPddbgPayload_+    , _pddbgCallback = Nothing+    }++-- | V1 error format.+pddbgXgafv :: Lens' ProjectsDatabasesDocumentsBatchGet (Maybe Xgafv)+pddbgXgafv+  = lens _pddbgXgafv (\ s a -> s{_pddbgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pddbgUploadProtocol :: Lens' ProjectsDatabasesDocumentsBatchGet (Maybe Text)+pddbgUploadProtocol+  = lens _pddbgUploadProtocol+      (\ s a -> s{_pddbgUploadProtocol = a})++-- | The database name. In the format:+-- \`projects\/{project_id}\/databases\/{database_id}\`.+pddbgDatabase :: Lens' ProjectsDatabasesDocumentsBatchGet Text+pddbgDatabase+  = lens _pddbgDatabase+      (\ s a -> s{_pddbgDatabase = a})++-- | OAuth access token.+pddbgAccessToken :: Lens' ProjectsDatabasesDocumentsBatchGet (Maybe Text)+pddbgAccessToken+  = lens _pddbgAccessToken+      (\ s a -> s{_pddbgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pddbgUploadType :: Lens' ProjectsDatabasesDocumentsBatchGet (Maybe Text)+pddbgUploadType+  = lens _pddbgUploadType+      (\ s a -> s{_pddbgUploadType = a})++-- | Multipart request metadata.+pddbgPayload :: Lens' ProjectsDatabasesDocumentsBatchGet BatchGetDocumentsRequest+pddbgPayload+  = lens _pddbgPayload (\ s a -> s{_pddbgPayload = a})++-- | JSONP+pddbgCallback :: Lens' ProjectsDatabasesDocumentsBatchGet (Maybe Text)+pddbgCallback+  = lens _pddbgCallback+      (\ s a -> s{_pddbgCallback = a})++instance GoogleRequest+         ProjectsDatabasesDocumentsBatchGet where+        type Rs ProjectsDatabasesDocumentsBatchGet =+             BatchGetDocumentsResponse+        type Scopes ProjectsDatabasesDocumentsBatchGet =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient ProjectsDatabasesDocumentsBatchGet'{..}+          = go _pddbgDatabase _pddbgXgafv _pddbgUploadProtocol+              _pddbgAccessToken+              _pddbgUploadType+              _pddbgCallback+              (Just AltJSON)+              _pddbgPayload+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsDatabasesDocumentsBatchGetResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/Documents/BeginTransaction.hs view
@@ -0,0 +1,173 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.FireStore.Projects.Databases.Documents.BeginTransaction+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Starts a new transaction.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.documents.beginTransaction@.+module Network.Google.Resource.FireStore.Projects.Databases.Documents.BeginTransaction+    (+    -- * REST Resource+      ProjectsDatabasesDocumentsBeginTransactionResource++    -- * Creating a Request+    , projectsDatabasesDocumentsBeginTransaction+    , ProjectsDatabasesDocumentsBeginTransaction++    -- * Request Lenses+    , pddbtXgafv+    , pddbtUploadProtocol+    , pddbtDatabase+    , pddbtAccessToken+    , pddbtUploadType+    , pddbtPayload+    , pddbtCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.documents.beginTransaction@ method which the+-- 'ProjectsDatabasesDocumentsBeginTransaction' request conforms to.+type ProjectsDatabasesDocumentsBeginTransactionResource+     =+     "v1" :>+       Capture "database" Text :>+         "documents:beginTransaction" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] BeginTransactionRequest :>+                         Post '[JSON] BeginTransactionResponse++-- | Starts a new transaction.+--+-- /See:/ 'projectsDatabasesDocumentsBeginTransaction' smart constructor.+data ProjectsDatabasesDocumentsBeginTransaction = ProjectsDatabasesDocumentsBeginTransaction'+    { _pddbtXgafv          :: !(Maybe Xgafv)+    , _pddbtUploadProtocol :: !(Maybe Text)+    , _pddbtDatabase       :: !Text+    , _pddbtAccessToken    :: !(Maybe Text)+    , _pddbtUploadType     :: !(Maybe Text)+    , _pddbtPayload        :: !BeginTransactionRequest+    , _pddbtCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesDocumentsBeginTransaction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pddbtXgafv'+--+-- * 'pddbtUploadProtocol'+--+-- * 'pddbtDatabase'+--+-- * 'pddbtAccessToken'+--+-- * 'pddbtUploadType'+--+-- * 'pddbtPayload'+--+-- * 'pddbtCallback'+projectsDatabasesDocumentsBeginTransaction+    :: Text -- ^ 'pddbtDatabase'+    -> BeginTransactionRequest -- ^ 'pddbtPayload'+    -> ProjectsDatabasesDocumentsBeginTransaction+projectsDatabasesDocumentsBeginTransaction pPddbtDatabase_ pPddbtPayload_ =+    ProjectsDatabasesDocumentsBeginTransaction'+    { _pddbtXgafv = Nothing+    , _pddbtUploadProtocol = Nothing+    , _pddbtDatabase = pPddbtDatabase_+    , _pddbtAccessToken = Nothing+    , _pddbtUploadType = Nothing+    , _pddbtPayload = pPddbtPayload_+    , _pddbtCallback = Nothing+    }++-- | V1 error format.+pddbtXgafv :: Lens' ProjectsDatabasesDocumentsBeginTransaction (Maybe Xgafv)+pddbtXgafv+  = lens _pddbtXgafv (\ s a -> s{_pddbtXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pddbtUploadProtocol :: Lens' ProjectsDatabasesDocumentsBeginTransaction (Maybe Text)+pddbtUploadProtocol+  = lens _pddbtUploadProtocol+      (\ s a -> s{_pddbtUploadProtocol = a})++-- | The database name. In the format:+-- \`projects\/{project_id}\/databases\/{database_id}\`.+pddbtDatabase :: Lens' ProjectsDatabasesDocumentsBeginTransaction Text+pddbtDatabase+  = lens _pddbtDatabase+      (\ s a -> s{_pddbtDatabase = a})++-- | OAuth access token.+pddbtAccessToken :: Lens' ProjectsDatabasesDocumentsBeginTransaction (Maybe Text)+pddbtAccessToken+  = lens _pddbtAccessToken+      (\ s a -> s{_pddbtAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pddbtUploadType :: Lens' ProjectsDatabasesDocumentsBeginTransaction (Maybe Text)+pddbtUploadType+  = lens _pddbtUploadType+      (\ s a -> s{_pddbtUploadType = a})++-- | Multipart request metadata.+pddbtPayload :: Lens' ProjectsDatabasesDocumentsBeginTransaction BeginTransactionRequest+pddbtPayload+  = lens _pddbtPayload (\ s a -> s{_pddbtPayload = a})++-- | JSONP+pddbtCallback :: Lens' ProjectsDatabasesDocumentsBeginTransaction (Maybe Text)+pddbtCallback+  = lens _pddbtCallback+      (\ s a -> s{_pddbtCallback = a})++instance GoogleRequest+         ProjectsDatabasesDocumentsBeginTransaction where+        type Rs ProjectsDatabasesDocumentsBeginTransaction =+             BeginTransactionResponse+        type Scopes+               ProjectsDatabasesDocumentsBeginTransaction+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient+          ProjectsDatabasesDocumentsBeginTransaction'{..}+          = go _pddbtDatabase _pddbtXgafv _pddbtUploadProtocol+              _pddbtAccessToken+              _pddbtUploadType+              _pddbtCallback+              (Just AltJSON)+              _pddbtPayload+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsDatabasesDocumentsBeginTransactionResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/Documents/Commit.hs view
@@ -0,0 +1,166 @@+{-# 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.FireStore.Projects.Databases.Documents.Commit+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Commits a transaction, while optionally updating documents.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.documents.commit@.+module Network.Google.Resource.FireStore.Projects.Databases.Documents.Commit+    (+    -- * REST Resource+      ProjectsDatabasesDocumentsCommitResource++    -- * Creating a Request+    , projectsDatabasesDocumentsCommit+    , ProjectsDatabasesDocumentsCommit++    -- * Request Lenses+    , pddcXgafv+    , pddcUploadProtocol+    , pddcDatabase+    , pddcAccessToken+    , pddcUploadType+    , pddcPayload+    , pddcCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.documents.commit@ method which the+-- 'ProjectsDatabasesDocumentsCommit' request conforms to.+type ProjectsDatabasesDocumentsCommitResource =+     "v1" :>+       Capture "database" Text :>+         "documents:commit" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] CommitRequest :>+                         Post '[JSON] CommitResponse++-- | Commits a transaction, while optionally updating documents.+--+-- /See:/ 'projectsDatabasesDocumentsCommit' smart constructor.+data ProjectsDatabasesDocumentsCommit = ProjectsDatabasesDocumentsCommit'+    { _pddcXgafv          :: !(Maybe Xgafv)+    , _pddcUploadProtocol :: !(Maybe Text)+    , _pddcDatabase       :: !Text+    , _pddcAccessToken    :: !(Maybe Text)+    , _pddcUploadType     :: !(Maybe Text)+    , _pddcPayload        :: !CommitRequest+    , _pddcCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesDocumentsCommit' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pddcXgafv'+--+-- * 'pddcUploadProtocol'+--+-- * 'pddcDatabase'+--+-- * 'pddcAccessToken'+--+-- * 'pddcUploadType'+--+-- * 'pddcPayload'+--+-- * 'pddcCallback'+projectsDatabasesDocumentsCommit+    :: Text -- ^ 'pddcDatabase'+    -> CommitRequest -- ^ 'pddcPayload'+    -> ProjectsDatabasesDocumentsCommit+projectsDatabasesDocumentsCommit pPddcDatabase_ pPddcPayload_ =+    ProjectsDatabasesDocumentsCommit'+    { _pddcXgafv = Nothing+    , _pddcUploadProtocol = Nothing+    , _pddcDatabase = pPddcDatabase_+    , _pddcAccessToken = Nothing+    , _pddcUploadType = Nothing+    , _pddcPayload = pPddcPayload_+    , _pddcCallback = Nothing+    }++-- | V1 error format.+pddcXgafv :: Lens' ProjectsDatabasesDocumentsCommit (Maybe Xgafv)+pddcXgafv+  = lens _pddcXgafv (\ s a -> s{_pddcXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pddcUploadProtocol :: Lens' ProjectsDatabasesDocumentsCommit (Maybe Text)+pddcUploadProtocol+  = lens _pddcUploadProtocol+      (\ s a -> s{_pddcUploadProtocol = a})++-- | The database name. In the format:+-- \`projects\/{project_id}\/databases\/{database_id}\`.+pddcDatabase :: Lens' ProjectsDatabasesDocumentsCommit Text+pddcDatabase+  = lens _pddcDatabase (\ s a -> s{_pddcDatabase = a})++-- | OAuth access token.+pddcAccessToken :: Lens' ProjectsDatabasesDocumentsCommit (Maybe Text)+pddcAccessToken+  = lens _pddcAccessToken+      (\ s a -> s{_pddcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pddcUploadType :: Lens' ProjectsDatabasesDocumentsCommit (Maybe Text)+pddcUploadType+  = lens _pddcUploadType+      (\ s a -> s{_pddcUploadType = a})++-- | Multipart request metadata.+pddcPayload :: Lens' ProjectsDatabasesDocumentsCommit CommitRequest+pddcPayload+  = lens _pddcPayload (\ s a -> s{_pddcPayload = a})++-- | JSONP+pddcCallback :: Lens' ProjectsDatabasesDocumentsCommit (Maybe Text)+pddcCallback+  = lens _pddcCallback (\ s a -> s{_pddcCallback = a})++instance GoogleRequest+         ProjectsDatabasesDocumentsCommit where+        type Rs ProjectsDatabasesDocumentsCommit =+             CommitResponse+        type Scopes ProjectsDatabasesDocumentsCommit =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient ProjectsDatabasesDocumentsCommit'{..}+          = go _pddcDatabase _pddcXgafv _pddcUploadProtocol+              _pddcAccessToken+              _pddcUploadType+              _pddcCallback+              (Just AltJSON)+              _pddcPayload+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsDatabasesDocumentsCommitResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/Documents/CreateDocument.hs view
@@ -0,0 +1,215 @@+{-# 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.FireStore.Projects.Databases.Documents.CreateDocument+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new document.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.documents.createDocument@.+module Network.Google.Resource.FireStore.Projects.Databases.Documents.CreateDocument+    (+    -- * REST Resource+      ProjectsDatabasesDocumentsCreateDocumentResource++    -- * Creating a Request+    , projectsDatabasesDocumentsCreateDocument+    , ProjectsDatabasesDocumentsCreateDocument++    -- * Request Lenses+    , pddcdParent+    , pddcdXgafv+    , pddcdDocumentId+    , pddcdUploadProtocol+    , pddcdAccessToken+    , pddcdCollectionId+    , pddcdUploadType+    , pddcdPayload+    , pddcdMaskFieldPaths+    , pddcdCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.documents.createDocument@ method which the+-- 'ProjectsDatabasesDocumentsCreateDocument' request conforms to.+type ProjectsDatabasesDocumentsCreateDocumentResource+     =+     "v1" :>+       Capture "parent" Text :>+         Capture "collectionId" Text :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "documentId" Text :>+               QueryParam "upload_protocol" Text :>+                 QueryParam "access_token" Text :>+                   QueryParam "uploadType" Text :>+                     QueryParams "mask.fieldPaths" Text :>+                       QueryParam "callback" Text :>+                         QueryParam "alt" AltJSON :>+                           ReqBody '[JSON] Document :> Post '[JSON] Document++-- | Creates a new document.+--+-- /See:/ 'projectsDatabasesDocumentsCreateDocument' smart constructor.+data ProjectsDatabasesDocumentsCreateDocument = ProjectsDatabasesDocumentsCreateDocument'+    { _pddcdParent         :: !Text+    , _pddcdXgafv          :: !(Maybe Xgafv)+    , _pddcdDocumentId     :: !(Maybe Text)+    , _pddcdUploadProtocol :: !(Maybe Text)+    , _pddcdAccessToken    :: !(Maybe Text)+    , _pddcdCollectionId   :: !Text+    , _pddcdUploadType     :: !(Maybe Text)+    , _pddcdPayload        :: !Document+    , _pddcdMaskFieldPaths :: !(Maybe [Text])+    , _pddcdCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesDocumentsCreateDocument' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pddcdParent'+--+-- * 'pddcdXgafv'+--+-- * 'pddcdDocumentId'+--+-- * 'pddcdUploadProtocol'+--+-- * 'pddcdAccessToken'+--+-- * 'pddcdCollectionId'+--+-- * 'pddcdUploadType'+--+-- * 'pddcdPayload'+--+-- * 'pddcdMaskFieldPaths'+--+-- * 'pddcdCallback'+projectsDatabasesDocumentsCreateDocument+    :: Text -- ^ 'pddcdParent'+    -> Text -- ^ 'pddcdCollectionId'+    -> Document -- ^ 'pddcdPayload'+    -> ProjectsDatabasesDocumentsCreateDocument+projectsDatabasesDocumentsCreateDocument pPddcdParent_ pPddcdCollectionId_ pPddcdPayload_ =+    ProjectsDatabasesDocumentsCreateDocument'+    { _pddcdParent = pPddcdParent_+    , _pddcdXgafv = Nothing+    , _pddcdDocumentId = Nothing+    , _pddcdUploadProtocol = Nothing+    , _pddcdAccessToken = Nothing+    , _pddcdCollectionId = pPddcdCollectionId_+    , _pddcdUploadType = Nothing+    , _pddcdPayload = pPddcdPayload_+    , _pddcdMaskFieldPaths = Nothing+    , _pddcdCallback = Nothing+    }++-- | The parent resource. For example:+-- \`projects\/{project_id}\/databases\/{database_id}\/documents\` or+-- \`projects\/{project_id}\/databases\/{database_id}\/documents\/chatrooms\/{chatroom_id}\`+pddcdParent :: Lens' ProjectsDatabasesDocumentsCreateDocument Text+pddcdParent+  = lens _pddcdParent (\ s a -> s{_pddcdParent = a})++-- | V1 error format.+pddcdXgafv :: Lens' ProjectsDatabasesDocumentsCreateDocument (Maybe Xgafv)+pddcdXgafv+  = lens _pddcdXgafv (\ s a -> s{_pddcdXgafv = a})++-- | The client-assigned document ID to use for this document. Optional. If+-- not specified, an ID will be assigned by the service.+pddcdDocumentId :: Lens' ProjectsDatabasesDocumentsCreateDocument (Maybe Text)+pddcdDocumentId+  = lens _pddcdDocumentId+      (\ s a -> s{_pddcdDocumentId = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pddcdUploadProtocol :: Lens' ProjectsDatabasesDocumentsCreateDocument (Maybe Text)+pddcdUploadProtocol+  = lens _pddcdUploadProtocol+      (\ s a -> s{_pddcdUploadProtocol = a})++-- | OAuth access token.+pddcdAccessToken :: Lens' ProjectsDatabasesDocumentsCreateDocument (Maybe Text)+pddcdAccessToken+  = lens _pddcdAccessToken+      (\ s a -> s{_pddcdAccessToken = a})++-- | The collection ID, relative to \`parent\`, to list. For example:+-- \`chatrooms\`.+pddcdCollectionId :: Lens' ProjectsDatabasesDocumentsCreateDocument Text+pddcdCollectionId+  = lens _pddcdCollectionId+      (\ s a -> s{_pddcdCollectionId = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pddcdUploadType :: Lens' ProjectsDatabasesDocumentsCreateDocument (Maybe Text)+pddcdUploadType+  = lens _pddcdUploadType+      (\ s a -> s{_pddcdUploadType = a})++-- | Multipart request metadata.+pddcdPayload :: Lens' ProjectsDatabasesDocumentsCreateDocument Document+pddcdPayload+  = lens _pddcdPayload (\ s a -> s{_pddcdPayload = a})++-- | The list of field paths in the mask. See Document.fields for a field+-- path syntax reference.+pddcdMaskFieldPaths :: Lens' ProjectsDatabasesDocumentsCreateDocument [Text]+pddcdMaskFieldPaths+  = lens _pddcdMaskFieldPaths+      (\ s a -> s{_pddcdMaskFieldPaths = a})+      . _Default+      . _Coerce++-- | JSONP+pddcdCallback :: Lens' ProjectsDatabasesDocumentsCreateDocument (Maybe Text)+pddcdCallback+  = lens _pddcdCallback+      (\ s a -> s{_pddcdCallback = a})++instance GoogleRequest+         ProjectsDatabasesDocumentsCreateDocument where+        type Rs ProjectsDatabasesDocumentsCreateDocument =+             Document+        type Scopes ProjectsDatabasesDocumentsCreateDocument+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient+          ProjectsDatabasesDocumentsCreateDocument'{..}+          = go _pddcdParent _pddcdCollectionId _pddcdXgafv+              _pddcdDocumentId+              _pddcdUploadProtocol+              _pddcdAccessToken+              _pddcdUploadType+              (_pddcdMaskFieldPaths ^. _Default)+              _pddcdCallback+              (Just AltJSON)+              _pddcdPayload+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsDatabasesDocumentsCreateDocumentResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/Documents/Delete.hs view
@@ -0,0 +1,178 @@+{-# 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.FireStore.Projects.Databases.Documents.Delete+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a document.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.documents.delete@.+module Network.Google.Resource.FireStore.Projects.Databases.Documents.Delete+    (+    -- * REST Resource+      ProjectsDatabasesDocumentsDeleteResource++    -- * Creating a Request+    , projectsDatabasesDocumentsDelete+    , ProjectsDatabasesDocumentsDelete++    -- * Request Lenses+    , pdddXgafv+    , pdddUploadProtocol+    , pdddCurrentDocumentExists+    , pdddAccessToken+    , pdddUploadType+    , pdddCurrentDocumentUpdateTime+    , pdddName+    , pdddCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.documents.delete@ method which the+-- 'ProjectsDatabasesDocumentsDelete' request conforms to.+type ProjectsDatabasesDocumentsDeleteResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "currentDocument.exists" Bool :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "currentDocument.updateTime" DateTime' :>+                     QueryParam "callback" Text :>+                       QueryParam "alt" AltJSON :> Delete '[JSON] Empty++-- | Deletes a document.+--+-- /See:/ 'projectsDatabasesDocumentsDelete' smart constructor.+data ProjectsDatabasesDocumentsDelete = ProjectsDatabasesDocumentsDelete'+    { _pdddXgafv                     :: !(Maybe Xgafv)+    , _pdddUploadProtocol            :: !(Maybe Text)+    , _pdddCurrentDocumentExists     :: !(Maybe Bool)+    , _pdddAccessToken               :: !(Maybe Text)+    , _pdddUploadType                :: !(Maybe Text)+    , _pdddCurrentDocumentUpdateTime :: !(Maybe DateTime')+    , _pdddName                      :: !Text+    , _pdddCallback                  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesDocumentsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdddXgafv'+--+-- * 'pdddUploadProtocol'+--+-- * 'pdddCurrentDocumentExists'+--+-- * 'pdddAccessToken'+--+-- * 'pdddUploadType'+--+-- * 'pdddCurrentDocumentUpdateTime'+--+-- * 'pdddName'+--+-- * 'pdddCallback'+projectsDatabasesDocumentsDelete+    :: Text -- ^ 'pdddName'+    -> ProjectsDatabasesDocumentsDelete+projectsDatabasesDocumentsDelete pPdddName_ =+    ProjectsDatabasesDocumentsDelete'+    { _pdddXgafv = Nothing+    , _pdddUploadProtocol = Nothing+    , _pdddCurrentDocumentExists = Nothing+    , _pdddAccessToken = Nothing+    , _pdddUploadType = Nothing+    , _pdddCurrentDocumentUpdateTime = Nothing+    , _pdddName = pPdddName_+    , _pdddCallback = Nothing+    }++-- | V1 error format.+pdddXgafv :: Lens' ProjectsDatabasesDocumentsDelete (Maybe Xgafv)+pdddXgafv+  = lens _pdddXgafv (\ s a -> s{_pdddXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pdddUploadProtocol :: Lens' ProjectsDatabasesDocumentsDelete (Maybe Text)+pdddUploadProtocol+  = lens _pdddUploadProtocol+      (\ s a -> s{_pdddUploadProtocol = a})++-- | When set to \`true\`, the target document must exist. When set to+-- \`false\`, the target document must not exist.+pdddCurrentDocumentExists :: Lens' ProjectsDatabasesDocumentsDelete (Maybe Bool)+pdddCurrentDocumentExists+  = lens _pdddCurrentDocumentExists+      (\ s a -> s{_pdddCurrentDocumentExists = a})++-- | OAuth access token.+pdddAccessToken :: Lens' ProjectsDatabasesDocumentsDelete (Maybe Text)+pdddAccessToken+  = lens _pdddAccessToken+      (\ s a -> s{_pdddAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pdddUploadType :: Lens' ProjectsDatabasesDocumentsDelete (Maybe Text)+pdddUploadType+  = lens _pdddUploadType+      (\ s a -> s{_pdddUploadType = a})++-- | When set, the target document must exist and have been last updated at+-- that time.+pdddCurrentDocumentUpdateTime :: Lens' ProjectsDatabasesDocumentsDelete (Maybe UTCTime)+pdddCurrentDocumentUpdateTime+  = lens _pdddCurrentDocumentUpdateTime+      (\ s a -> s{_pdddCurrentDocumentUpdateTime = a})+      . mapping _DateTime++-- | The resource name of the Document to delete. In the format:+-- \`projects\/{project_id}\/databases\/{database_id}\/documents\/{document_path}\`.+pdddName :: Lens' ProjectsDatabasesDocumentsDelete Text+pdddName = lens _pdddName (\ s a -> s{_pdddName = a})++-- | JSONP+pdddCallback :: Lens' ProjectsDatabasesDocumentsDelete (Maybe Text)+pdddCallback+  = lens _pdddCallback (\ s a -> s{_pdddCallback = a})++instance GoogleRequest+         ProjectsDatabasesDocumentsDelete where+        type Rs ProjectsDatabasesDocumentsDelete = Empty+        type Scopes ProjectsDatabasesDocumentsDelete =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient ProjectsDatabasesDocumentsDelete'{..}+          = go _pdddName _pdddXgafv _pdddUploadProtocol+              _pdddCurrentDocumentExists+              _pdddAccessToken+              _pdddUploadType+              _pdddCurrentDocumentUpdateTime+              _pdddCallback+              (Just AltJSON)+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsDatabasesDocumentsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/Documents/Get.hs view
@@ -0,0 +1,193 @@+{-# 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.FireStore.Projects.Databases.Documents.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a single document.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.documents.get@.+module Network.Google.Resource.FireStore.Projects.Databases.Documents.Get+    (+    -- * REST Resource+      ProjectsDatabasesDocumentsGetResource++    -- * Creating a Request+    , projectsDatabasesDocumentsGet+    , ProjectsDatabasesDocumentsGet++    -- * Request Lenses+    , pddgXgafv+    , pddgReadTime+    , pddgUploadProtocol+    , pddgAccessToken+    , pddgUploadType+    , pddgTransaction+    , pddgName+    , pddgMaskFieldPaths+    , pddgCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.documents.get@ method which the+-- 'ProjectsDatabasesDocumentsGet' request conforms to.+type ProjectsDatabasesDocumentsGetResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "readTime" DateTime' :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "transaction" Bytes :>+                     QueryParams "mask.fieldPaths" Text :>+                       QueryParam "callback" Text :>+                         QueryParam "alt" AltJSON :> Get '[JSON] Document++-- | Gets a single document.+--+-- /See:/ 'projectsDatabasesDocumentsGet' smart constructor.+data ProjectsDatabasesDocumentsGet = ProjectsDatabasesDocumentsGet'+    { _pddgXgafv          :: !(Maybe Xgafv)+    , _pddgReadTime       :: !(Maybe DateTime')+    , _pddgUploadProtocol :: !(Maybe Text)+    , _pddgAccessToken    :: !(Maybe Text)+    , _pddgUploadType     :: !(Maybe Text)+    , _pddgTransaction    :: !(Maybe Bytes)+    , _pddgName           :: !Text+    , _pddgMaskFieldPaths :: !(Maybe [Text])+    , _pddgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesDocumentsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pddgXgafv'+--+-- * 'pddgReadTime'+--+-- * 'pddgUploadProtocol'+--+-- * 'pddgAccessToken'+--+-- * 'pddgUploadType'+--+-- * 'pddgTransaction'+--+-- * 'pddgName'+--+-- * 'pddgMaskFieldPaths'+--+-- * 'pddgCallback'+projectsDatabasesDocumentsGet+    :: Text -- ^ 'pddgName'+    -> ProjectsDatabasesDocumentsGet+projectsDatabasesDocumentsGet pPddgName_ =+    ProjectsDatabasesDocumentsGet'+    { _pddgXgafv = Nothing+    , _pddgReadTime = Nothing+    , _pddgUploadProtocol = Nothing+    , _pddgAccessToken = Nothing+    , _pddgUploadType = Nothing+    , _pddgTransaction = Nothing+    , _pddgName = pPddgName_+    , _pddgMaskFieldPaths = Nothing+    , _pddgCallback = Nothing+    }++-- | V1 error format.+pddgXgafv :: Lens' ProjectsDatabasesDocumentsGet (Maybe Xgafv)+pddgXgafv+  = lens _pddgXgafv (\ s a -> s{_pddgXgafv = a})++-- | Reads the version of the document at the given time. This may not be+-- older than 60 seconds.+pddgReadTime :: Lens' ProjectsDatabasesDocumentsGet (Maybe UTCTime)+pddgReadTime+  = lens _pddgReadTime (\ s a -> s{_pddgReadTime = a})+      . mapping _DateTime++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pddgUploadProtocol :: Lens' ProjectsDatabasesDocumentsGet (Maybe Text)+pddgUploadProtocol+  = lens _pddgUploadProtocol+      (\ s a -> s{_pddgUploadProtocol = a})++-- | OAuth access token.+pddgAccessToken :: Lens' ProjectsDatabasesDocumentsGet (Maybe Text)+pddgAccessToken+  = lens _pddgAccessToken+      (\ s a -> s{_pddgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pddgUploadType :: Lens' ProjectsDatabasesDocumentsGet (Maybe Text)+pddgUploadType+  = lens _pddgUploadType+      (\ s a -> s{_pddgUploadType = a})++-- | Reads the document in a transaction.+pddgTransaction :: Lens' ProjectsDatabasesDocumentsGet (Maybe ByteString)+pddgTransaction+  = lens _pddgTransaction+      (\ s a -> s{_pddgTransaction = a})+      . mapping _Bytes++-- | The resource name of the Document to get. In the format:+-- \`projects\/{project_id}\/databases\/{database_id}\/documents\/{document_path}\`.+pddgName :: Lens' ProjectsDatabasesDocumentsGet Text+pddgName = lens _pddgName (\ s a -> s{_pddgName = a})++-- | The list of field paths in the mask. See Document.fields for a field+-- path syntax reference.+pddgMaskFieldPaths :: Lens' ProjectsDatabasesDocumentsGet [Text]+pddgMaskFieldPaths+  = lens _pddgMaskFieldPaths+      (\ s a -> s{_pddgMaskFieldPaths = a})+      . _Default+      . _Coerce++-- | JSONP+pddgCallback :: Lens' ProjectsDatabasesDocumentsGet (Maybe Text)+pddgCallback+  = lens _pddgCallback (\ s a -> s{_pddgCallback = a})++instance GoogleRequest ProjectsDatabasesDocumentsGet+         where+        type Rs ProjectsDatabasesDocumentsGet = Document+        type Scopes ProjectsDatabasesDocumentsGet =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient ProjectsDatabasesDocumentsGet'{..}+          = go _pddgName _pddgXgafv _pddgReadTime+              _pddgUploadProtocol+              _pddgAccessToken+              _pddgUploadType+              _pddgTransaction+              (_pddgMaskFieldPaths ^. _Default)+              _pddgCallback+              (Just AltJSON)+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsDatabasesDocumentsGetResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/Documents/List.hs view
@@ -0,0 +1,262 @@+{-# 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.FireStore.Projects.Databases.Documents.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists documents.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.documents.list@.+module Network.Google.Resource.FireStore.Projects.Databases.Documents.List+    (+    -- * REST Resource+      ProjectsDatabasesDocumentsListResource++    -- * Creating a Request+    , projectsDatabasesDocumentsList+    , ProjectsDatabasesDocumentsList++    -- * Request Lenses+    , pParent+    , pXgafv+    , pReadTime+    , pUploadProtocol+    , pOrderBy+    , pAccessToken+    , pCollectionId+    , pUploadType+    , pTransaction+    , pShowMissing+    , pPageToken+    , pPageSize+    , pMaskFieldPaths+    , pCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.documents.list@ method which the+-- 'ProjectsDatabasesDocumentsList' request conforms to.+type ProjectsDatabasesDocumentsListResource =+     "v1" :>+       Capture "parent" Text :>+         Capture "collectionId" Text :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "readTime" DateTime' :>+               QueryParam "upload_protocol" Text :>+                 QueryParam "orderBy" Text :>+                   QueryParam "access_token" Text :>+                     QueryParam "uploadType" Text :>+                       QueryParam "transaction" Bytes :>+                         QueryParam "showMissing" Bool :>+                           QueryParam "pageToken" Text :>+                             QueryParam "pageSize" (Textual Int32) :>+                               QueryParams "mask.fieldPaths" Text :>+                                 QueryParam "callback" Text :>+                                   QueryParam "alt" AltJSON :>+                                     Get '[JSON] ListDocumentsResponse++-- | Lists documents.+--+-- /See:/ 'projectsDatabasesDocumentsList' smart constructor.+data ProjectsDatabasesDocumentsList = ProjectsDatabasesDocumentsList'+    { _pParent         :: !Text+    , _pXgafv          :: !(Maybe Xgafv)+    , _pReadTime       :: !(Maybe DateTime')+    , _pUploadProtocol :: !(Maybe Text)+    , _pOrderBy        :: !(Maybe Text)+    , _pAccessToken    :: !(Maybe Text)+    , _pCollectionId   :: !Text+    , _pUploadType     :: !(Maybe Text)+    , _pTransaction    :: !(Maybe Bytes)+    , _pShowMissing    :: !(Maybe Bool)+    , _pPageToken      :: !(Maybe Text)+    , _pPageSize       :: !(Maybe (Textual Int32))+    , _pMaskFieldPaths :: !(Maybe [Text])+    , _pCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesDocumentsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pParent'+--+-- * 'pXgafv'+--+-- * 'pReadTime'+--+-- * 'pUploadProtocol'+--+-- * 'pOrderBy'+--+-- * 'pAccessToken'+--+-- * 'pCollectionId'+--+-- * 'pUploadType'+--+-- * 'pTransaction'+--+-- * 'pShowMissing'+--+-- * 'pPageToken'+--+-- * 'pPageSize'+--+-- * 'pMaskFieldPaths'+--+-- * 'pCallback'+projectsDatabasesDocumentsList+    :: Text -- ^ 'pParent'+    -> Text -- ^ 'pCollectionId'+    -> ProjectsDatabasesDocumentsList+projectsDatabasesDocumentsList pPParent_ pPCollectionId_ =+    ProjectsDatabasesDocumentsList'+    { _pParent = pPParent_+    , _pXgafv = Nothing+    , _pReadTime = Nothing+    , _pUploadProtocol = Nothing+    , _pOrderBy = Nothing+    , _pAccessToken = Nothing+    , _pCollectionId = pPCollectionId_+    , _pUploadType = Nothing+    , _pTransaction = Nothing+    , _pShowMissing = Nothing+    , _pPageToken = Nothing+    , _pPageSize = Nothing+    , _pMaskFieldPaths = Nothing+    , _pCallback = Nothing+    }++-- | The parent resource name. In the format:+-- \`projects\/{project_id}\/databases\/{database_id}\/documents\` or+-- \`projects\/{project_id}\/databases\/{database_id}\/documents\/{document_path}\`.+-- For example: \`projects\/my-project\/databases\/my-database\/documents\`+-- or+-- \`projects\/my-project\/databases\/my-database\/documents\/chatrooms\/my-chatroom\`+pParent :: Lens' ProjectsDatabasesDocumentsList Text+pParent = lens _pParent (\ s a -> s{_pParent = a})++-- | V1 error format.+pXgafv :: Lens' ProjectsDatabasesDocumentsList (Maybe Xgafv)+pXgafv = lens _pXgafv (\ s a -> s{_pXgafv = a})++-- | Reads documents as they were at the given time. This may not be older+-- than 60 seconds.+pReadTime :: Lens' ProjectsDatabasesDocumentsList (Maybe UTCTime)+pReadTime+  = lens _pReadTime (\ s a -> s{_pReadTime = a}) .+      mapping _DateTime++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pUploadProtocol :: Lens' ProjectsDatabasesDocumentsList (Maybe Text)+pUploadProtocol+  = lens _pUploadProtocol+      (\ s a -> s{_pUploadProtocol = a})++-- | The order to sort results by. For example: \`priority desc, name\`.+pOrderBy :: Lens' ProjectsDatabasesDocumentsList (Maybe Text)+pOrderBy = lens _pOrderBy (\ s a -> s{_pOrderBy = a})++-- | OAuth access token.+pAccessToken :: Lens' ProjectsDatabasesDocumentsList (Maybe Text)+pAccessToken+  = lens _pAccessToken (\ s a -> s{_pAccessToken = a})++-- | The collection ID, relative to \`parent\`, to list. For example:+-- \`chatrooms\` or \`messages\`.+pCollectionId :: Lens' ProjectsDatabasesDocumentsList Text+pCollectionId+  = lens _pCollectionId+      (\ s a -> s{_pCollectionId = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pUploadType :: Lens' ProjectsDatabasesDocumentsList (Maybe Text)+pUploadType+  = lens _pUploadType (\ s a -> s{_pUploadType = a})++-- | Reads documents in a transaction.+pTransaction :: Lens' ProjectsDatabasesDocumentsList (Maybe ByteString)+pTransaction+  = lens _pTransaction (\ s a -> s{_pTransaction = a})+      . mapping _Bytes++-- | If the list should show missing documents. A missing document is a+-- document that does not exist but has sub-documents. These documents will+-- be returned with a key but will not have fields, Document.create_time,+-- or Document.update_time set. Requests with \`show_missing\` may not+-- specify \`where\` or \`order_by\`.+pShowMissing :: Lens' ProjectsDatabasesDocumentsList (Maybe Bool)+pShowMissing+  = lens _pShowMissing (\ s a -> s{_pShowMissing = a})++-- | The \`next_page_token\` value returned from a previous List request, if+-- any.+pPageToken :: Lens' ProjectsDatabasesDocumentsList (Maybe Text)+pPageToken+  = lens _pPageToken (\ s a -> s{_pPageToken = a})++-- | The maximum number of documents to return.+pPageSize :: Lens' ProjectsDatabasesDocumentsList (Maybe Int32)+pPageSize+  = lens _pPageSize (\ s a -> s{_pPageSize = a}) .+      mapping _Coerce++-- | The list of field paths in the mask. See Document.fields for a field+-- path syntax reference.+pMaskFieldPaths :: Lens' ProjectsDatabasesDocumentsList [Text]+pMaskFieldPaths+  = lens _pMaskFieldPaths+      (\ s a -> s{_pMaskFieldPaths = a})+      . _Default+      . _Coerce++-- | JSONP+pCallback :: Lens' ProjectsDatabasesDocumentsList (Maybe Text)+pCallback+  = lens _pCallback (\ s a -> s{_pCallback = a})++instance GoogleRequest ProjectsDatabasesDocumentsList+         where+        type Rs ProjectsDatabasesDocumentsList =+             ListDocumentsResponse+        type Scopes ProjectsDatabasesDocumentsList =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient ProjectsDatabasesDocumentsList'{..}+          = go _pParent _pCollectionId _pXgafv _pReadTime+              _pUploadProtocol+              _pOrderBy+              _pAccessToken+              _pUploadType+              _pTransaction+              _pShowMissing+              _pPageToken+              _pPageSize+              (_pMaskFieldPaths ^. _Default)+              _pCallback+              (Just AltJSON)+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsDatabasesDocumentsListResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/Documents/ListCollectionIds.hs view
@@ -0,0 +1,174 @@+{-# 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.FireStore.Projects.Databases.Documents.ListCollectionIds+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all the collection IDs underneath a document.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.documents.listCollectionIds@.+module Network.Google.Resource.FireStore.Projects.Databases.Documents.ListCollectionIds+    (+    -- * REST Resource+      ProjectsDatabasesDocumentsListCollectionIdsResource++    -- * Creating a Request+    , projectsDatabasesDocumentsListCollectionIds+    , ProjectsDatabasesDocumentsListCollectionIds++    -- * Request Lenses+    , pddlciParent+    , pddlciXgafv+    , pddlciUploadProtocol+    , pddlciAccessToken+    , pddlciUploadType+    , pddlciPayload+    , pddlciCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.documents.listCollectionIds@ method which the+-- 'ProjectsDatabasesDocumentsListCollectionIds' request conforms to.+type ProjectsDatabasesDocumentsListCollectionIdsResource+     =+     "v1" :>+       CaptureMode "parent" "listCollectionIds" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] ListCollectionIdsRequest :>+                       Post '[JSON] ListCollectionIdsResponse++-- | Lists all the collection IDs underneath a document.+--+-- /See:/ 'projectsDatabasesDocumentsListCollectionIds' smart constructor.+data ProjectsDatabasesDocumentsListCollectionIds = ProjectsDatabasesDocumentsListCollectionIds'+    { _pddlciParent         :: !Text+    , _pddlciXgafv          :: !(Maybe Xgafv)+    , _pddlciUploadProtocol :: !(Maybe Text)+    , _pddlciAccessToken    :: !(Maybe Text)+    , _pddlciUploadType     :: !(Maybe Text)+    , _pddlciPayload        :: !ListCollectionIdsRequest+    , _pddlciCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesDocumentsListCollectionIds' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pddlciParent'+--+-- * 'pddlciXgafv'+--+-- * 'pddlciUploadProtocol'+--+-- * 'pddlciAccessToken'+--+-- * 'pddlciUploadType'+--+-- * 'pddlciPayload'+--+-- * 'pddlciCallback'+projectsDatabasesDocumentsListCollectionIds+    :: Text -- ^ 'pddlciParent'+    -> ListCollectionIdsRequest -- ^ 'pddlciPayload'+    -> ProjectsDatabasesDocumentsListCollectionIds+projectsDatabasesDocumentsListCollectionIds pPddlciParent_ pPddlciPayload_ =+    ProjectsDatabasesDocumentsListCollectionIds'+    { _pddlciParent = pPddlciParent_+    , _pddlciXgafv = Nothing+    , _pddlciUploadProtocol = Nothing+    , _pddlciAccessToken = Nothing+    , _pddlciUploadType = Nothing+    , _pddlciPayload = pPddlciPayload_+    , _pddlciCallback = Nothing+    }++-- | The parent document. In the format:+-- \`projects\/{project_id}\/databases\/{database_id}\/documents\/{document_path}\`.+-- For example:+-- \`projects\/my-project\/databases\/my-database\/documents\/chatrooms\/my-chatroom\`+pddlciParent :: Lens' ProjectsDatabasesDocumentsListCollectionIds Text+pddlciParent+  = lens _pddlciParent (\ s a -> s{_pddlciParent = a})++-- | V1 error format.+pddlciXgafv :: Lens' ProjectsDatabasesDocumentsListCollectionIds (Maybe Xgafv)+pddlciXgafv+  = lens _pddlciXgafv (\ s a -> s{_pddlciXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pddlciUploadProtocol :: Lens' ProjectsDatabasesDocumentsListCollectionIds (Maybe Text)+pddlciUploadProtocol+  = lens _pddlciUploadProtocol+      (\ s a -> s{_pddlciUploadProtocol = a})++-- | OAuth access token.+pddlciAccessToken :: Lens' ProjectsDatabasesDocumentsListCollectionIds (Maybe Text)+pddlciAccessToken+  = lens _pddlciAccessToken+      (\ s a -> s{_pddlciAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pddlciUploadType :: Lens' ProjectsDatabasesDocumentsListCollectionIds (Maybe Text)+pddlciUploadType+  = lens _pddlciUploadType+      (\ s a -> s{_pddlciUploadType = a})++-- | Multipart request metadata.+pddlciPayload :: Lens' ProjectsDatabasesDocumentsListCollectionIds ListCollectionIdsRequest+pddlciPayload+  = lens _pddlciPayload+      (\ s a -> s{_pddlciPayload = a})++-- | JSONP+pddlciCallback :: Lens' ProjectsDatabasesDocumentsListCollectionIds (Maybe Text)+pddlciCallback+  = lens _pddlciCallback+      (\ s a -> s{_pddlciCallback = a})++instance GoogleRequest+         ProjectsDatabasesDocumentsListCollectionIds where+        type Rs ProjectsDatabasesDocumentsListCollectionIds =+             ListCollectionIdsResponse+        type Scopes+               ProjectsDatabasesDocumentsListCollectionIds+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient+          ProjectsDatabasesDocumentsListCollectionIds'{..}+          = go _pddlciParent _pddlciXgafv _pddlciUploadProtocol+              _pddlciAccessToken+              _pddlciUploadType+              _pddlciCallback+              (Just AltJSON)+              _pddlciPayload+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsDatabasesDocumentsListCollectionIdsResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/Documents/Listen.hs view
@@ -0,0 +1,166 @@+{-# 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.FireStore.Projects.Databases.Documents.Listen+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Listens to changes.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.documents.listen@.+module Network.Google.Resource.FireStore.Projects.Databases.Documents.Listen+    (+    -- * REST Resource+      ProjectsDatabasesDocumentsListenResource++    -- * Creating a Request+    , projectsDatabasesDocumentsListen+    , ProjectsDatabasesDocumentsListen++    -- * Request Lenses+    , pddlXgafv+    , pddlUploadProtocol+    , pddlDatabase+    , pddlAccessToken+    , pddlUploadType+    , pddlPayload+    , pddlCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.documents.listen@ method which the+-- 'ProjectsDatabasesDocumentsListen' request conforms to.+type ProjectsDatabasesDocumentsListenResource =+     "v1" :>+       Capture "database" Text :>+         "documents:listen" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] ListenRequest :>+                         Post '[JSON] ListenResponse++-- | Listens to changes.+--+-- /See:/ 'projectsDatabasesDocumentsListen' smart constructor.+data ProjectsDatabasesDocumentsListen = ProjectsDatabasesDocumentsListen'+    { _pddlXgafv          :: !(Maybe Xgafv)+    , _pddlUploadProtocol :: !(Maybe Text)+    , _pddlDatabase       :: !Text+    , _pddlAccessToken    :: !(Maybe Text)+    , _pddlUploadType     :: !(Maybe Text)+    , _pddlPayload        :: !ListenRequest+    , _pddlCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesDocumentsListen' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pddlXgafv'+--+-- * 'pddlUploadProtocol'+--+-- * 'pddlDatabase'+--+-- * 'pddlAccessToken'+--+-- * 'pddlUploadType'+--+-- * 'pddlPayload'+--+-- * 'pddlCallback'+projectsDatabasesDocumentsListen+    :: Text -- ^ 'pddlDatabase'+    -> ListenRequest -- ^ 'pddlPayload'+    -> ProjectsDatabasesDocumentsListen+projectsDatabasesDocumentsListen pPddlDatabase_ pPddlPayload_ =+    ProjectsDatabasesDocumentsListen'+    { _pddlXgafv = Nothing+    , _pddlUploadProtocol = Nothing+    , _pddlDatabase = pPddlDatabase_+    , _pddlAccessToken = Nothing+    , _pddlUploadType = Nothing+    , _pddlPayload = pPddlPayload_+    , _pddlCallback = Nothing+    }++-- | V1 error format.+pddlXgafv :: Lens' ProjectsDatabasesDocumentsListen (Maybe Xgafv)+pddlXgafv+  = lens _pddlXgafv (\ s a -> s{_pddlXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pddlUploadProtocol :: Lens' ProjectsDatabasesDocumentsListen (Maybe Text)+pddlUploadProtocol+  = lens _pddlUploadProtocol+      (\ s a -> s{_pddlUploadProtocol = a})++-- | The database name. In the format:+-- \`projects\/{project_id}\/databases\/{database_id}\`.+pddlDatabase :: Lens' ProjectsDatabasesDocumentsListen Text+pddlDatabase+  = lens _pddlDatabase (\ s a -> s{_pddlDatabase = a})++-- | OAuth access token.+pddlAccessToken :: Lens' ProjectsDatabasesDocumentsListen (Maybe Text)+pddlAccessToken+  = lens _pddlAccessToken+      (\ s a -> s{_pddlAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pddlUploadType :: Lens' ProjectsDatabasesDocumentsListen (Maybe Text)+pddlUploadType+  = lens _pddlUploadType+      (\ s a -> s{_pddlUploadType = a})++-- | Multipart request metadata.+pddlPayload :: Lens' ProjectsDatabasesDocumentsListen ListenRequest+pddlPayload+  = lens _pddlPayload (\ s a -> s{_pddlPayload = a})++-- | JSONP+pddlCallback :: Lens' ProjectsDatabasesDocumentsListen (Maybe Text)+pddlCallback+  = lens _pddlCallback (\ s a -> s{_pddlCallback = a})++instance GoogleRequest+         ProjectsDatabasesDocumentsListen where+        type Rs ProjectsDatabasesDocumentsListen =+             ListenResponse+        type Scopes ProjectsDatabasesDocumentsListen =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient ProjectsDatabasesDocumentsListen'{..}+          = go _pddlDatabase _pddlXgafv _pddlUploadProtocol+              _pddlAccessToken+              _pddlUploadType+              _pddlCallback+              (Just AltJSON)+              _pddlPayload+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsDatabasesDocumentsListenResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/Documents/Patch.hs view
@@ -0,0 +1,224 @@+{-# 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.FireStore.Projects.Databases.Documents.Patch+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates or inserts a document.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.documents.patch@.+module Network.Google.Resource.FireStore.Projects.Databases.Documents.Patch+    (+    -- * REST Resource+      ProjectsDatabasesDocumentsPatchResource++    -- * Creating a Request+    , projectsDatabasesDocumentsPatch+    , ProjectsDatabasesDocumentsPatch++    -- * Request Lenses+    , pddpXgafv+    , pddpUpdateMaskFieldPaths+    , pddpUploadProtocol+    , pddpCurrentDocumentExists+    , pddpAccessToken+    , pddpUploadType+    , pddpPayload+    , pddpCurrentDocumentUpdateTime+    , pddpName+    , pddpMaskFieldPaths+    , pddpCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.documents.patch@ method which the+-- 'ProjectsDatabasesDocumentsPatch' request conforms to.+type ProjectsDatabasesDocumentsPatchResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParams "updateMask.fieldPaths" Text :>+             QueryParam "upload_protocol" Text :>+               QueryParam "currentDocument.exists" Bool :>+                 QueryParam "access_token" Text :>+                   QueryParam "uploadType" Text :>+                     QueryParam "currentDocument.updateTime" DateTime' :>+                       QueryParams "mask.fieldPaths" Text :>+                         QueryParam "callback" Text :>+                           QueryParam "alt" AltJSON :>+                             ReqBody '[JSON] Document :> Patch '[JSON] Document++-- | Updates or inserts a document.+--+-- /See:/ 'projectsDatabasesDocumentsPatch' smart constructor.+data ProjectsDatabasesDocumentsPatch = ProjectsDatabasesDocumentsPatch'+    { _pddpXgafv                     :: !(Maybe Xgafv)+    , _pddpUpdateMaskFieldPaths      :: !(Maybe [Text])+    , _pddpUploadProtocol            :: !(Maybe Text)+    , _pddpCurrentDocumentExists     :: !(Maybe Bool)+    , _pddpAccessToken               :: !(Maybe Text)+    , _pddpUploadType                :: !(Maybe Text)+    , _pddpPayload                   :: !Document+    , _pddpCurrentDocumentUpdateTime :: !(Maybe DateTime')+    , _pddpName                      :: !Text+    , _pddpMaskFieldPaths            :: !(Maybe [Text])+    , _pddpCallback                  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesDocumentsPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pddpXgafv'+--+-- * 'pddpUpdateMaskFieldPaths'+--+-- * 'pddpUploadProtocol'+--+-- * 'pddpCurrentDocumentExists'+--+-- * 'pddpAccessToken'+--+-- * 'pddpUploadType'+--+-- * 'pddpPayload'+--+-- * 'pddpCurrentDocumentUpdateTime'+--+-- * 'pddpName'+--+-- * 'pddpMaskFieldPaths'+--+-- * 'pddpCallback'+projectsDatabasesDocumentsPatch+    :: Document -- ^ 'pddpPayload'+    -> Text -- ^ 'pddpName'+    -> ProjectsDatabasesDocumentsPatch+projectsDatabasesDocumentsPatch pPddpPayload_ pPddpName_ =+    ProjectsDatabasesDocumentsPatch'+    { _pddpXgafv = Nothing+    , _pddpUpdateMaskFieldPaths = Nothing+    , _pddpUploadProtocol = Nothing+    , _pddpCurrentDocumentExists = Nothing+    , _pddpAccessToken = Nothing+    , _pddpUploadType = Nothing+    , _pddpPayload = pPddpPayload_+    , _pddpCurrentDocumentUpdateTime = Nothing+    , _pddpName = pPddpName_+    , _pddpMaskFieldPaths = Nothing+    , _pddpCallback = Nothing+    }++-- | V1 error format.+pddpXgafv :: Lens' ProjectsDatabasesDocumentsPatch (Maybe Xgafv)+pddpXgafv+  = lens _pddpXgafv (\ s a -> s{_pddpXgafv = a})++-- | The list of field paths in the mask. See Document.fields for a field+-- path syntax reference.+pddpUpdateMaskFieldPaths :: Lens' ProjectsDatabasesDocumentsPatch [Text]+pddpUpdateMaskFieldPaths+  = lens _pddpUpdateMaskFieldPaths+      (\ s a -> s{_pddpUpdateMaskFieldPaths = a})+      . _Default+      . _Coerce++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pddpUploadProtocol :: Lens' ProjectsDatabasesDocumentsPatch (Maybe Text)+pddpUploadProtocol+  = lens _pddpUploadProtocol+      (\ s a -> s{_pddpUploadProtocol = a})++-- | When set to \`true\`, the target document must exist. When set to+-- \`false\`, the target document must not exist.+pddpCurrentDocumentExists :: Lens' ProjectsDatabasesDocumentsPatch (Maybe Bool)+pddpCurrentDocumentExists+  = lens _pddpCurrentDocumentExists+      (\ s a -> s{_pddpCurrentDocumentExists = a})++-- | OAuth access token.+pddpAccessToken :: Lens' ProjectsDatabasesDocumentsPatch (Maybe Text)+pddpAccessToken+  = lens _pddpAccessToken+      (\ s a -> s{_pddpAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pddpUploadType :: Lens' ProjectsDatabasesDocumentsPatch (Maybe Text)+pddpUploadType+  = lens _pddpUploadType+      (\ s a -> s{_pddpUploadType = a})++-- | Multipart request metadata.+pddpPayload :: Lens' ProjectsDatabasesDocumentsPatch Document+pddpPayload+  = lens _pddpPayload (\ s a -> s{_pddpPayload = a})++-- | When set, the target document must exist and have been last updated at+-- that time.+pddpCurrentDocumentUpdateTime :: Lens' ProjectsDatabasesDocumentsPatch (Maybe UTCTime)+pddpCurrentDocumentUpdateTime+  = lens _pddpCurrentDocumentUpdateTime+      (\ s a -> s{_pddpCurrentDocumentUpdateTime = a})+      . mapping _DateTime++-- | The resource name of the document, for example+-- \`projects\/{project_id}\/databases\/{database_id}\/documents\/{document_path}\`.+pddpName :: Lens' ProjectsDatabasesDocumentsPatch Text+pddpName = lens _pddpName (\ s a -> s{_pddpName = a})++-- | The list of field paths in the mask. See Document.fields for a field+-- path syntax reference.+pddpMaskFieldPaths :: Lens' ProjectsDatabasesDocumentsPatch [Text]+pddpMaskFieldPaths+  = lens _pddpMaskFieldPaths+      (\ s a -> s{_pddpMaskFieldPaths = a})+      . _Default+      . _Coerce++-- | JSONP+pddpCallback :: Lens' ProjectsDatabasesDocumentsPatch (Maybe Text)+pddpCallback+  = lens _pddpCallback (\ s a -> s{_pddpCallback = a})++instance GoogleRequest+         ProjectsDatabasesDocumentsPatch where+        type Rs ProjectsDatabasesDocumentsPatch = Document+        type Scopes ProjectsDatabasesDocumentsPatch =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient ProjectsDatabasesDocumentsPatch'{..}+          = go _pddpName _pddpXgafv+              (_pddpUpdateMaskFieldPaths ^. _Default)+              _pddpUploadProtocol+              _pddpCurrentDocumentExists+              _pddpAccessToken+              _pddpUploadType+              _pddpCurrentDocumentUpdateTime+              (_pddpMaskFieldPaths ^. _Default)+              _pddpCallback+              (Just AltJSON)+              _pddpPayload+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsDatabasesDocumentsPatchResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/Documents/Rollback.hs view
@@ -0,0 +1,164 @@+{-# 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.FireStore.Projects.Databases.Documents.Rollback+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Rolls back a transaction.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.documents.rollback@.+module Network.Google.Resource.FireStore.Projects.Databases.Documents.Rollback+    (+    -- * REST Resource+      ProjectsDatabasesDocumentsRollbackResource++    -- * Creating a Request+    , projectsDatabasesDocumentsRollback+    , ProjectsDatabasesDocumentsRollback++    -- * Request Lenses+    , pddrXgafv+    , pddrUploadProtocol+    , pddrDatabase+    , pddrAccessToken+    , pddrUploadType+    , pddrPayload+    , pddrCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.documents.rollback@ method which the+-- 'ProjectsDatabasesDocumentsRollback' request conforms to.+type ProjectsDatabasesDocumentsRollbackResource =+     "v1" :>+       Capture "database" Text :>+         "documents:rollback" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] RollbackRequest :> Post '[JSON] Empty++-- | Rolls back a transaction.+--+-- /See:/ 'projectsDatabasesDocumentsRollback' smart constructor.+data ProjectsDatabasesDocumentsRollback = ProjectsDatabasesDocumentsRollback'+    { _pddrXgafv          :: !(Maybe Xgafv)+    , _pddrUploadProtocol :: !(Maybe Text)+    , _pddrDatabase       :: !Text+    , _pddrAccessToken    :: !(Maybe Text)+    , _pddrUploadType     :: !(Maybe Text)+    , _pddrPayload        :: !RollbackRequest+    , _pddrCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesDocumentsRollback' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pddrXgafv'+--+-- * 'pddrUploadProtocol'+--+-- * 'pddrDatabase'+--+-- * 'pddrAccessToken'+--+-- * 'pddrUploadType'+--+-- * 'pddrPayload'+--+-- * 'pddrCallback'+projectsDatabasesDocumentsRollback+    :: Text -- ^ 'pddrDatabase'+    -> RollbackRequest -- ^ 'pddrPayload'+    -> ProjectsDatabasesDocumentsRollback+projectsDatabasesDocumentsRollback pPddrDatabase_ pPddrPayload_ =+    ProjectsDatabasesDocumentsRollback'+    { _pddrXgafv = Nothing+    , _pddrUploadProtocol = Nothing+    , _pddrDatabase = pPddrDatabase_+    , _pddrAccessToken = Nothing+    , _pddrUploadType = Nothing+    , _pddrPayload = pPddrPayload_+    , _pddrCallback = Nothing+    }++-- | V1 error format.+pddrXgafv :: Lens' ProjectsDatabasesDocumentsRollback (Maybe Xgafv)+pddrXgafv+  = lens _pddrXgafv (\ s a -> s{_pddrXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pddrUploadProtocol :: Lens' ProjectsDatabasesDocumentsRollback (Maybe Text)+pddrUploadProtocol+  = lens _pddrUploadProtocol+      (\ s a -> s{_pddrUploadProtocol = a})++-- | The database name. In the format:+-- \`projects\/{project_id}\/databases\/{database_id}\`.+pddrDatabase :: Lens' ProjectsDatabasesDocumentsRollback Text+pddrDatabase+  = lens _pddrDatabase (\ s a -> s{_pddrDatabase = a})++-- | OAuth access token.+pddrAccessToken :: Lens' ProjectsDatabasesDocumentsRollback (Maybe Text)+pddrAccessToken+  = lens _pddrAccessToken+      (\ s a -> s{_pddrAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pddrUploadType :: Lens' ProjectsDatabasesDocumentsRollback (Maybe Text)+pddrUploadType+  = lens _pddrUploadType+      (\ s a -> s{_pddrUploadType = a})++-- | Multipart request metadata.+pddrPayload :: Lens' ProjectsDatabasesDocumentsRollback RollbackRequest+pddrPayload+  = lens _pddrPayload (\ s a -> s{_pddrPayload = a})++-- | JSONP+pddrCallback :: Lens' ProjectsDatabasesDocumentsRollback (Maybe Text)+pddrCallback+  = lens _pddrCallback (\ s a -> s{_pddrCallback = a})++instance GoogleRequest+         ProjectsDatabasesDocumentsRollback where+        type Rs ProjectsDatabasesDocumentsRollback = Empty+        type Scopes ProjectsDatabasesDocumentsRollback =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient ProjectsDatabasesDocumentsRollback'{..}+          = go _pddrDatabase _pddrXgafv _pddrUploadProtocol+              _pddrAccessToken+              _pddrUploadType+              _pddrCallback+              (Just AltJSON)+              _pddrPayload+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsDatabasesDocumentsRollbackResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/Documents/RunQuery.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.FireStore.Projects.Databases.Documents.RunQuery+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Runs a query.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.documents.runQuery@.+module Network.Google.Resource.FireStore.Projects.Databases.Documents.RunQuery+    (+    -- * REST Resource+      ProjectsDatabasesDocumentsRunQueryResource++    -- * Creating a Request+    , projectsDatabasesDocumentsRunQuery+    , ProjectsDatabasesDocumentsRunQuery++    -- * Request Lenses+    , pddrqParent+    , pddrqXgafv+    , pddrqUploadProtocol+    , pddrqAccessToken+    , pddrqUploadType+    , pddrqPayload+    , pddrqCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.documents.runQuery@ method which the+-- 'ProjectsDatabasesDocumentsRunQuery' request conforms to.+type ProjectsDatabasesDocumentsRunQueryResource =+     "v1" :>+       CaptureMode "parent" "runQuery" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] RunQueryRequest :>+                       Post '[JSON] RunQueryResponse++-- | Runs a query.+--+-- /See:/ 'projectsDatabasesDocumentsRunQuery' smart constructor.+data ProjectsDatabasesDocumentsRunQuery = ProjectsDatabasesDocumentsRunQuery'+    { _pddrqParent         :: !Text+    , _pddrqXgafv          :: !(Maybe Xgafv)+    , _pddrqUploadProtocol :: !(Maybe Text)+    , _pddrqAccessToken    :: !(Maybe Text)+    , _pddrqUploadType     :: !(Maybe Text)+    , _pddrqPayload        :: !RunQueryRequest+    , _pddrqCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesDocumentsRunQuery' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pddrqParent'+--+-- * 'pddrqXgafv'+--+-- * 'pddrqUploadProtocol'+--+-- * 'pddrqAccessToken'+--+-- * 'pddrqUploadType'+--+-- * 'pddrqPayload'+--+-- * 'pddrqCallback'+projectsDatabasesDocumentsRunQuery+    :: Text -- ^ 'pddrqParent'+    -> RunQueryRequest -- ^ 'pddrqPayload'+    -> ProjectsDatabasesDocumentsRunQuery+projectsDatabasesDocumentsRunQuery pPddrqParent_ pPddrqPayload_ =+    ProjectsDatabasesDocumentsRunQuery'+    { _pddrqParent = pPddrqParent_+    , _pddrqXgafv = Nothing+    , _pddrqUploadProtocol = Nothing+    , _pddrqAccessToken = Nothing+    , _pddrqUploadType = Nothing+    , _pddrqPayload = pPddrqPayload_+    , _pddrqCallback = Nothing+    }++-- | The parent resource name. In the format:+-- \`projects\/{project_id}\/databases\/{database_id}\/documents\` or+-- \`projects\/{project_id}\/databases\/{database_id}\/documents\/{document_path}\`.+-- For example: \`projects\/my-project\/databases\/my-database\/documents\`+-- or+-- \`projects\/my-project\/databases\/my-database\/documents\/chatrooms\/my-chatroom\`+pddrqParent :: Lens' ProjectsDatabasesDocumentsRunQuery Text+pddrqParent+  = lens _pddrqParent (\ s a -> s{_pddrqParent = a})++-- | V1 error format.+pddrqXgafv :: Lens' ProjectsDatabasesDocumentsRunQuery (Maybe Xgafv)+pddrqXgafv+  = lens _pddrqXgafv (\ s a -> s{_pddrqXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pddrqUploadProtocol :: Lens' ProjectsDatabasesDocumentsRunQuery (Maybe Text)+pddrqUploadProtocol+  = lens _pddrqUploadProtocol+      (\ s a -> s{_pddrqUploadProtocol = a})++-- | OAuth access token.+pddrqAccessToken :: Lens' ProjectsDatabasesDocumentsRunQuery (Maybe Text)+pddrqAccessToken+  = lens _pddrqAccessToken+      (\ s a -> s{_pddrqAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pddrqUploadType :: Lens' ProjectsDatabasesDocumentsRunQuery (Maybe Text)+pddrqUploadType+  = lens _pddrqUploadType+      (\ s a -> s{_pddrqUploadType = a})++-- | Multipart request metadata.+pddrqPayload :: Lens' ProjectsDatabasesDocumentsRunQuery RunQueryRequest+pddrqPayload+  = lens _pddrqPayload (\ s a -> s{_pddrqPayload = a})++-- | JSONP+pddrqCallback :: Lens' ProjectsDatabasesDocumentsRunQuery (Maybe Text)+pddrqCallback+  = lens _pddrqCallback+      (\ s a -> s{_pddrqCallback = a})++instance GoogleRequest+         ProjectsDatabasesDocumentsRunQuery where+        type Rs ProjectsDatabasesDocumentsRunQuery =+             RunQueryResponse+        type Scopes ProjectsDatabasesDocumentsRunQuery =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient ProjectsDatabasesDocumentsRunQuery'{..}+          = go _pddrqParent _pddrqXgafv _pddrqUploadProtocol+              _pddrqAccessToken+              _pddrqUploadType+              _pddrqCallback+              (Just AltJSON)+              _pddrqPayload+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsDatabasesDocumentsRunQueryResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/Documents/Write.hs view
@@ -0,0 +1,167 @@+{-# 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.FireStore.Projects.Databases.Documents.Write+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Streams batches of document updates and deletes, in order.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.documents.write@.+module Network.Google.Resource.FireStore.Projects.Databases.Documents.Write+    (+    -- * REST Resource+      ProjectsDatabasesDocumentsWriteResource++    -- * Creating a Request+    , projectsDatabasesDocumentsWrite+    , ProjectsDatabasesDocumentsWrite++    -- * Request Lenses+    , pddwXgafv+    , pddwUploadProtocol+    , pddwDatabase+    , pddwAccessToken+    , pddwUploadType+    , pddwPayload+    , pddwCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.documents.write@ method which the+-- 'ProjectsDatabasesDocumentsWrite' request conforms to.+type ProjectsDatabasesDocumentsWriteResource =+     "v1" :>+       Capture "database" Text :>+         "documents:write" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] WriteRequest :>+                         Post '[JSON] WriteResponse++-- | Streams batches of document updates and deletes, in order.+--+-- /See:/ 'projectsDatabasesDocumentsWrite' smart constructor.+data ProjectsDatabasesDocumentsWrite = ProjectsDatabasesDocumentsWrite'+    { _pddwXgafv          :: !(Maybe Xgafv)+    , _pddwUploadProtocol :: !(Maybe Text)+    , _pddwDatabase       :: !Text+    , _pddwAccessToken    :: !(Maybe Text)+    , _pddwUploadType     :: !(Maybe Text)+    , _pddwPayload        :: !WriteRequest+    , _pddwCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesDocumentsWrite' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pddwXgafv'+--+-- * 'pddwUploadProtocol'+--+-- * 'pddwDatabase'+--+-- * 'pddwAccessToken'+--+-- * 'pddwUploadType'+--+-- * 'pddwPayload'+--+-- * 'pddwCallback'+projectsDatabasesDocumentsWrite+    :: Text -- ^ 'pddwDatabase'+    -> WriteRequest -- ^ 'pddwPayload'+    -> ProjectsDatabasesDocumentsWrite+projectsDatabasesDocumentsWrite pPddwDatabase_ pPddwPayload_ =+    ProjectsDatabasesDocumentsWrite'+    { _pddwXgafv = Nothing+    , _pddwUploadProtocol = Nothing+    , _pddwDatabase = pPddwDatabase_+    , _pddwAccessToken = Nothing+    , _pddwUploadType = Nothing+    , _pddwPayload = pPddwPayload_+    , _pddwCallback = Nothing+    }++-- | V1 error format.+pddwXgafv :: Lens' ProjectsDatabasesDocumentsWrite (Maybe Xgafv)+pddwXgafv+  = lens _pddwXgafv (\ s a -> s{_pddwXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pddwUploadProtocol :: Lens' ProjectsDatabasesDocumentsWrite (Maybe Text)+pddwUploadProtocol+  = lens _pddwUploadProtocol+      (\ s a -> s{_pddwUploadProtocol = a})++-- | The database name. In the format:+-- \`projects\/{project_id}\/databases\/{database_id}\`. This is only+-- required in the first message.+pddwDatabase :: Lens' ProjectsDatabasesDocumentsWrite Text+pddwDatabase+  = lens _pddwDatabase (\ s a -> s{_pddwDatabase = a})++-- | OAuth access token.+pddwAccessToken :: Lens' ProjectsDatabasesDocumentsWrite (Maybe Text)+pddwAccessToken+  = lens _pddwAccessToken+      (\ s a -> s{_pddwAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pddwUploadType :: Lens' ProjectsDatabasesDocumentsWrite (Maybe Text)+pddwUploadType+  = lens _pddwUploadType+      (\ s a -> s{_pddwUploadType = a})++-- | Multipart request metadata.+pddwPayload :: Lens' ProjectsDatabasesDocumentsWrite WriteRequest+pddwPayload+  = lens _pddwPayload (\ s a -> s{_pddwPayload = a})++-- | JSONP+pddwCallback :: Lens' ProjectsDatabasesDocumentsWrite (Maybe Text)+pddwCallback+  = lens _pddwCallback (\ s a -> s{_pddwCallback = a})++instance GoogleRequest+         ProjectsDatabasesDocumentsWrite where+        type Rs ProjectsDatabasesDocumentsWrite =+             WriteResponse+        type Scopes ProjectsDatabasesDocumentsWrite =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient ProjectsDatabasesDocumentsWrite'{..}+          = go _pddwDatabase _pddwXgafv _pddwUploadProtocol+              _pddwAccessToken+              _pddwUploadType+              _pddwCallback+              (Just AltJSON)+              _pddwPayload+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsDatabasesDocumentsWriteResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/ExportDocuments.hs view
@@ -0,0 +1,179 @@+{-# 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.FireStore.Projects.Databases.ExportDocuments+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Exports a copy of all or a subset of documents from Google Cloud+-- Firestore to another storage system, such as Google Cloud Storage.+-- Recent updates to documents may not be reflected in the export. The+-- export occurs in the background and its progress can be monitored and+-- managed via the Operation resource that is created. The output of an+-- export may only be used once the associated operation is done. If an+-- export operation is cancelled before completion it may leave partial+-- data behind in Google Cloud Storage.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.exportDocuments@.+module Network.Google.Resource.FireStore.Projects.Databases.ExportDocuments+    (+    -- * REST Resource+      ProjectsDatabasesExportDocumentsResource++    -- * Creating a Request+    , projectsDatabasesExportDocuments+    , ProjectsDatabasesExportDocuments++    -- * Request Lenses+    , pdedXgafv+    , pdedUploadProtocol+    , pdedAccessToken+    , pdedUploadType+    , pdedPayload+    , pdedName+    , pdedCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.exportDocuments@ method which the+-- 'ProjectsDatabasesExportDocuments' request conforms to.+type ProjectsDatabasesExportDocumentsResource =+     "v1" :>+       CaptureMode "name" "exportDocuments" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON]+                       GoogleFirestoreAdminV1ExportDocumentsRequest+                       :> Post '[JSON] GoogleLongrunningOperation++-- | Exports a copy of all or a subset of documents from Google Cloud+-- Firestore to another storage system, such as Google Cloud Storage.+-- Recent updates to documents may not be reflected in the export. The+-- export occurs in the background and its progress can be monitored and+-- managed via the Operation resource that is created. The output of an+-- export may only be used once the associated operation is done. If an+-- export operation is cancelled before completion it may leave partial+-- data behind in Google Cloud Storage.+--+-- /See:/ 'projectsDatabasesExportDocuments' smart constructor.+data ProjectsDatabasesExportDocuments = ProjectsDatabasesExportDocuments'+    { _pdedXgafv          :: !(Maybe Xgafv)+    , _pdedUploadProtocol :: !(Maybe Text)+    , _pdedAccessToken    :: !(Maybe Text)+    , _pdedUploadType     :: !(Maybe Text)+    , _pdedPayload        :: !GoogleFirestoreAdminV1ExportDocumentsRequest+    , _pdedName           :: !Text+    , _pdedCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesExportDocuments' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdedXgafv'+--+-- * 'pdedUploadProtocol'+--+-- * 'pdedAccessToken'+--+-- * 'pdedUploadType'+--+-- * 'pdedPayload'+--+-- * 'pdedName'+--+-- * 'pdedCallback'+projectsDatabasesExportDocuments+    :: GoogleFirestoreAdminV1ExportDocumentsRequest -- ^ 'pdedPayload'+    -> Text -- ^ 'pdedName'+    -> ProjectsDatabasesExportDocuments+projectsDatabasesExportDocuments pPdedPayload_ pPdedName_ =+    ProjectsDatabasesExportDocuments'+    { _pdedXgafv = Nothing+    , _pdedUploadProtocol = Nothing+    , _pdedAccessToken = Nothing+    , _pdedUploadType = Nothing+    , _pdedPayload = pPdedPayload_+    , _pdedName = pPdedName_+    , _pdedCallback = Nothing+    }++-- | V1 error format.+pdedXgafv :: Lens' ProjectsDatabasesExportDocuments (Maybe Xgafv)+pdedXgafv+  = lens _pdedXgafv (\ s a -> s{_pdedXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pdedUploadProtocol :: Lens' ProjectsDatabasesExportDocuments (Maybe Text)+pdedUploadProtocol+  = lens _pdedUploadProtocol+      (\ s a -> s{_pdedUploadProtocol = a})++-- | OAuth access token.+pdedAccessToken :: Lens' ProjectsDatabasesExportDocuments (Maybe Text)+pdedAccessToken+  = lens _pdedAccessToken+      (\ s a -> s{_pdedAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pdedUploadType :: Lens' ProjectsDatabasesExportDocuments (Maybe Text)+pdedUploadType+  = lens _pdedUploadType+      (\ s a -> s{_pdedUploadType = a})++-- | Multipart request metadata.+pdedPayload :: Lens' ProjectsDatabasesExportDocuments GoogleFirestoreAdminV1ExportDocumentsRequest+pdedPayload+  = lens _pdedPayload (\ s a -> s{_pdedPayload = a})++-- | Database to export. Should be of the form:+-- \`projects\/{project_id}\/databases\/{database_id}\`.+pdedName :: Lens' ProjectsDatabasesExportDocuments Text+pdedName = lens _pdedName (\ s a -> s{_pdedName = a})++-- | JSONP+pdedCallback :: Lens' ProjectsDatabasesExportDocuments (Maybe Text)+pdedCallback+  = lens _pdedCallback (\ s a -> s{_pdedCallback = a})++instance GoogleRequest+         ProjectsDatabasesExportDocuments where+        type Rs ProjectsDatabasesExportDocuments =+             GoogleLongrunningOperation+        type Scopes ProjectsDatabasesExportDocuments =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient ProjectsDatabasesExportDocuments'{..}+          = go _pdedName _pdedXgafv _pdedUploadProtocol+              _pdedAccessToken+              _pdedUploadType+              _pdedCallback+              (Just AltJSON)+              _pdedPayload+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsDatabasesExportDocumentsResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/ImportDocuments.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.FireStore.Projects.Databases.ImportDocuments+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Imports documents into Google Cloud Firestore. Existing documents with+-- the same name are overwritten. The import occurs in the background and+-- its progress can be monitored and managed via the Operation resource+-- that is created. If an ImportDocuments operation is cancelled, it is+-- possible that a subset of the data has already been imported to Cloud+-- Firestore.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.importDocuments@.+module Network.Google.Resource.FireStore.Projects.Databases.ImportDocuments+    (+    -- * REST Resource+      ProjectsDatabasesImportDocumentsResource++    -- * Creating a Request+    , projectsDatabasesImportDocuments+    , ProjectsDatabasesImportDocuments++    -- * Request Lenses+    , pdidXgafv+    , pdidUploadProtocol+    , pdidAccessToken+    , pdidUploadType+    , pdidPayload+    , pdidName+    , pdidCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.importDocuments@ method which the+-- 'ProjectsDatabasesImportDocuments' request conforms to.+type ProjectsDatabasesImportDocumentsResource =+     "v1" :>+       CaptureMode "name" "importDocuments" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON]+                       GoogleFirestoreAdminV1ImportDocumentsRequest+                       :> Post '[JSON] GoogleLongrunningOperation++-- | Imports documents into Google Cloud Firestore. Existing documents with+-- the same name are overwritten. The import occurs in the background and+-- its progress can be monitored and managed via the Operation resource+-- that is created. If an ImportDocuments operation is cancelled, it is+-- possible that a subset of the data has already been imported to Cloud+-- Firestore.+--+-- /See:/ 'projectsDatabasesImportDocuments' smart constructor.+data ProjectsDatabasesImportDocuments = ProjectsDatabasesImportDocuments'+    { _pdidXgafv          :: !(Maybe Xgafv)+    , _pdidUploadProtocol :: !(Maybe Text)+    , _pdidAccessToken    :: !(Maybe Text)+    , _pdidUploadType     :: !(Maybe Text)+    , _pdidPayload        :: !GoogleFirestoreAdminV1ImportDocumentsRequest+    , _pdidName           :: !Text+    , _pdidCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesImportDocuments' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdidXgafv'+--+-- * 'pdidUploadProtocol'+--+-- * 'pdidAccessToken'+--+-- * 'pdidUploadType'+--+-- * 'pdidPayload'+--+-- * 'pdidName'+--+-- * 'pdidCallback'+projectsDatabasesImportDocuments+    :: GoogleFirestoreAdminV1ImportDocumentsRequest -- ^ 'pdidPayload'+    -> Text -- ^ 'pdidName'+    -> ProjectsDatabasesImportDocuments+projectsDatabasesImportDocuments pPdidPayload_ pPdidName_ =+    ProjectsDatabasesImportDocuments'+    { _pdidXgafv = Nothing+    , _pdidUploadProtocol = Nothing+    , _pdidAccessToken = Nothing+    , _pdidUploadType = Nothing+    , _pdidPayload = pPdidPayload_+    , _pdidName = pPdidName_+    , _pdidCallback = Nothing+    }++-- | V1 error format.+pdidXgafv :: Lens' ProjectsDatabasesImportDocuments (Maybe Xgafv)+pdidXgafv+  = lens _pdidXgafv (\ s a -> s{_pdidXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pdidUploadProtocol :: Lens' ProjectsDatabasesImportDocuments (Maybe Text)+pdidUploadProtocol+  = lens _pdidUploadProtocol+      (\ s a -> s{_pdidUploadProtocol = a})++-- | OAuth access token.+pdidAccessToken :: Lens' ProjectsDatabasesImportDocuments (Maybe Text)+pdidAccessToken+  = lens _pdidAccessToken+      (\ s a -> s{_pdidAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pdidUploadType :: Lens' ProjectsDatabasesImportDocuments (Maybe Text)+pdidUploadType+  = lens _pdidUploadType+      (\ s a -> s{_pdidUploadType = a})++-- | Multipart request metadata.+pdidPayload :: Lens' ProjectsDatabasesImportDocuments GoogleFirestoreAdminV1ImportDocumentsRequest+pdidPayload+  = lens _pdidPayload (\ s a -> s{_pdidPayload = a})++-- | Database to import into. Should be of the form:+-- \`projects\/{project_id}\/databases\/{database_id}\`.+pdidName :: Lens' ProjectsDatabasesImportDocuments Text+pdidName = lens _pdidName (\ s a -> s{_pdidName = a})++-- | JSONP+pdidCallback :: Lens' ProjectsDatabasesImportDocuments (Maybe Text)+pdidCallback+  = lens _pdidCallback (\ s a -> s{_pdidCallback = a})++instance GoogleRequest+         ProjectsDatabasesImportDocuments where+        type Rs ProjectsDatabasesImportDocuments =+             GoogleLongrunningOperation+        type Scopes ProjectsDatabasesImportDocuments =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient ProjectsDatabasesImportDocuments'{..}+          = go _pdidName _pdidXgafv _pdidUploadProtocol+              _pdidAccessToken+              _pdidUploadType+              _pdidCallback+              (Just AltJSON)+              _pdidPayload+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsDatabasesImportDocumentsResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/Operations/Cancel.hs view
@@ -0,0 +1,179 @@+{-# 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.FireStore.Projects.Databases.Operations.Cancel+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Starts asynchronous cancellation on a long-running operation. The server+-- makes a best effort to cancel the operation, but success is not+-- guaranteed. If the server doesn\'t support this method, it returns+-- \`google.rpc.Code.UNIMPLEMENTED\`. Clients can use+-- Operations.GetOperation or other methods to check whether the+-- cancellation succeeded or whether the operation completed despite+-- cancellation. On successful cancellation, the operation is not deleted;+-- instead, it becomes an operation with an Operation.error value with a+-- google.rpc.Status.code of 1, corresponding to \`Code.CANCELLED\`.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.operations.cancel@.+module Network.Google.Resource.FireStore.Projects.Databases.Operations.Cancel+    (+    -- * REST Resource+      ProjectsDatabasesOperationsCancelResource++    -- * Creating a Request+    , projectsDatabasesOperationsCancel+    , ProjectsDatabasesOperationsCancel++    -- * Request Lenses+    , pdocXgafv+    , pdocUploadProtocol+    , pdocAccessToken+    , pdocUploadType+    , pdocPayload+    , pdocName+    , pdocCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.operations.cancel@ method which the+-- 'ProjectsDatabasesOperationsCancel' request conforms to.+type ProjectsDatabasesOperationsCancelResource =+     "v1" :>+       CaptureMode "name" "cancel" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON]+                       GoogleLongrunningCancelOperationRequest+                       :> Post '[JSON] Empty++-- | Starts asynchronous cancellation on a long-running operation. The server+-- makes a best effort to cancel the operation, but success is not+-- guaranteed. If the server doesn\'t support this method, it returns+-- \`google.rpc.Code.UNIMPLEMENTED\`. Clients can use+-- Operations.GetOperation or other methods to check whether the+-- cancellation succeeded or whether the operation completed despite+-- cancellation. On successful cancellation, the operation is not deleted;+-- instead, it becomes an operation with an Operation.error value with a+-- google.rpc.Status.code of 1, corresponding to \`Code.CANCELLED\`.+--+-- /See:/ 'projectsDatabasesOperationsCancel' smart constructor.+data ProjectsDatabasesOperationsCancel = ProjectsDatabasesOperationsCancel'+    { _pdocXgafv          :: !(Maybe Xgafv)+    , _pdocUploadProtocol :: !(Maybe Text)+    , _pdocAccessToken    :: !(Maybe Text)+    , _pdocUploadType     :: !(Maybe Text)+    , _pdocPayload        :: !GoogleLongrunningCancelOperationRequest+    , _pdocName           :: !Text+    , _pdocCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesOperationsCancel' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdocXgafv'+--+-- * 'pdocUploadProtocol'+--+-- * 'pdocAccessToken'+--+-- * 'pdocUploadType'+--+-- * 'pdocPayload'+--+-- * 'pdocName'+--+-- * 'pdocCallback'+projectsDatabasesOperationsCancel+    :: GoogleLongrunningCancelOperationRequest -- ^ 'pdocPayload'+    -> Text -- ^ 'pdocName'+    -> ProjectsDatabasesOperationsCancel+projectsDatabasesOperationsCancel pPdocPayload_ pPdocName_ =+    ProjectsDatabasesOperationsCancel'+    { _pdocXgafv = Nothing+    , _pdocUploadProtocol = Nothing+    , _pdocAccessToken = Nothing+    , _pdocUploadType = Nothing+    , _pdocPayload = pPdocPayload_+    , _pdocName = pPdocName_+    , _pdocCallback = Nothing+    }++-- | V1 error format.+pdocXgafv :: Lens' ProjectsDatabasesOperationsCancel (Maybe Xgafv)+pdocXgafv+  = lens _pdocXgafv (\ s a -> s{_pdocXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pdocUploadProtocol :: Lens' ProjectsDatabasesOperationsCancel (Maybe Text)+pdocUploadProtocol+  = lens _pdocUploadProtocol+      (\ s a -> s{_pdocUploadProtocol = a})++-- | OAuth access token.+pdocAccessToken :: Lens' ProjectsDatabasesOperationsCancel (Maybe Text)+pdocAccessToken+  = lens _pdocAccessToken+      (\ s a -> s{_pdocAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pdocUploadType :: Lens' ProjectsDatabasesOperationsCancel (Maybe Text)+pdocUploadType+  = lens _pdocUploadType+      (\ s a -> s{_pdocUploadType = a})++-- | Multipart request metadata.+pdocPayload :: Lens' ProjectsDatabasesOperationsCancel GoogleLongrunningCancelOperationRequest+pdocPayload+  = lens _pdocPayload (\ s a -> s{_pdocPayload = a})++-- | The name of the operation resource to be cancelled.+pdocName :: Lens' ProjectsDatabasesOperationsCancel Text+pdocName = lens _pdocName (\ s a -> s{_pdocName = a})++-- | JSONP+pdocCallback :: Lens' ProjectsDatabasesOperationsCancel (Maybe Text)+pdocCallback+  = lens _pdocCallback (\ s a -> s{_pdocCallback = a})++instance GoogleRequest+         ProjectsDatabasesOperationsCancel where+        type Rs ProjectsDatabasesOperationsCancel = Empty+        type Scopes ProjectsDatabasesOperationsCancel =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient ProjectsDatabasesOperationsCancel'{..}+          = go _pdocName _pdocXgafv _pdocUploadProtocol+              _pdocAccessToken+              _pdocUploadType+              _pdocCallback+              (Just AltJSON)+              _pdocPayload+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsDatabasesOperationsCancelResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/Operations/Delete.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.FireStore.Projects.Databases.Operations.Delete+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a long-running operation. This method indicates that the client+-- is no longer interested in the operation result. It does not cancel the+-- operation. If the server doesn\'t support this method, it returns+-- \`google.rpc.Code.UNIMPLEMENTED\`.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.operations.delete@.+module Network.Google.Resource.FireStore.Projects.Databases.Operations.Delete+    (+    -- * REST Resource+      ProjectsDatabasesOperationsDeleteResource++    -- * Creating a Request+    , projectsDatabasesOperationsDelete+    , ProjectsDatabasesOperationsDelete++    -- * Request Lenses+    , pdodXgafv+    , pdodUploadProtocol+    , pdodAccessToken+    , pdodUploadType+    , pdodName+    , pdodCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.operations.delete@ method which the+-- 'ProjectsDatabasesOperationsDelete' request conforms to.+type ProjectsDatabasesOperationsDeleteResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Empty++-- | Deletes a long-running operation. This method indicates that the client+-- is no longer interested in the operation result. It does not cancel the+-- operation. If the server doesn\'t support this method, it returns+-- \`google.rpc.Code.UNIMPLEMENTED\`.+--+-- /See:/ 'projectsDatabasesOperationsDelete' smart constructor.+data ProjectsDatabasesOperationsDelete = ProjectsDatabasesOperationsDelete'+    { _pdodXgafv          :: !(Maybe Xgafv)+    , _pdodUploadProtocol :: !(Maybe Text)+    , _pdodAccessToken    :: !(Maybe Text)+    , _pdodUploadType     :: !(Maybe Text)+    , _pdodName           :: !Text+    , _pdodCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesOperationsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdodXgafv'+--+-- * 'pdodUploadProtocol'+--+-- * 'pdodAccessToken'+--+-- * 'pdodUploadType'+--+-- * 'pdodName'+--+-- * 'pdodCallback'+projectsDatabasesOperationsDelete+    :: Text -- ^ 'pdodName'+    -> ProjectsDatabasesOperationsDelete+projectsDatabasesOperationsDelete pPdodName_ =+    ProjectsDatabasesOperationsDelete'+    { _pdodXgafv = Nothing+    , _pdodUploadProtocol = Nothing+    , _pdodAccessToken = Nothing+    , _pdodUploadType = Nothing+    , _pdodName = pPdodName_+    , _pdodCallback = Nothing+    }++-- | V1 error format.+pdodXgafv :: Lens' ProjectsDatabasesOperationsDelete (Maybe Xgafv)+pdodXgafv+  = lens _pdodXgafv (\ s a -> s{_pdodXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pdodUploadProtocol :: Lens' ProjectsDatabasesOperationsDelete (Maybe Text)+pdodUploadProtocol+  = lens _pdodUploadProtocol+      (\ s a -> s{_pdodUploadProtocol = a})++-- | OAuth access token.+pdodAccessToken :: Lens' ProjectsDatabasesOperationsDelete (Maybe Text)+pdodAccessToken+  = lens _pdodAccessToken+      (\ s a -> s{_pdodAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pdodUploadType :: Lens' ProjectsDatabasesOperationsDelete (Maybe Text)+pdodUploadType+  = lens _pdodUploadType+      (\ s a -> s{_pdodUploadType = a})++-- | The name of the operation resource to be deleted.+pdodName :: Lens' ProjectsDatabasesOperationsDelete Text+pdodName = lens _pdodName (\ s a -> s{_pdodName = a})++-- | JSONP+pdodCallback :: Lens' ProjectsDatabasesOperationsDelete (Maybe Text)+pdodCallback+  = lens _pdodCallback (\ s a -> s{_pdodCallback = a})++instance GoogleRequest+         ProjectsDatabasesOperationsDelete where+        type Rs ProjectsDatabasesOperationsDelete = Empty+        type Scopes ProjectsDatabasesOperationsDelete =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient ProjectsDatabasesOperationsDelete'{..}+          = go _pdodName _pdodXgafv _pdodUploadProtocol+              _pdodAccessToken+              _pdodUploadType+              _pdodCallback+              (Just AltJSON)+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsDatabasesOperationsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/Operations/Get.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.FireStore.Projects.Databases.Operations.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the latest state of a long-running operation. Clients can use this+-- method to poll the operation result at intervals as recommended by the+-- API service.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.operations.get@.+module Network.Google.Resource.FireStore.Projects.Databases.Operations.Get+    (+    -- * REST Resource+      ProjectsDatabasesOperationsGetResource++    -- * Creating a Request+    , projectsDatabasesOperationsGet+    , ProjectsDatabasesOperationsGet++    -- * Request Lenses+    , pdogXgafv+    , pdogUploadProtocol+    , pdogAccessToken+    , pdogUploadType+    , pdogName+    , pdogCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.operations.get@ method which the+-- 'ProjectsDatabasesOperationsGet' request conforms to.+type ProjectsDatabasesOperationsGetResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     Get '[JSON] GoogleLongrunningOperation++-- | Gets the latest state of a long-running operation. Clients can use this+-- method to poll the operation result at intervals as recommended by the+-- API service.+--+-- /See:/ 'projectsDatabasesOperationsGet' smart constructor.+data ProjectsDatabasesOperationsGet = ProjectsDatabasesOperationsGet'+    { _pdogXgafv          :: !(Maybe Xgafv)+    , _pdogUploadProtocol :: !(Maybe Text)+    , _pdogAccessToken    :: !(Maybe Text)+    , _pdogUploadType     :: !(Maybe Text)+    , _pdogName           :: !Text+    , _pdogCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesOperationsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdogXgafv'+--+-- * 'pdogUploadProtocol'+--+-- * 'pdogAccessToken'+--+-- * 'pdogUploadType'+--+-- * 'pdogName'+--+-- * 'pdogCallback'+projectsDatabasesOperationsGet+    :: Text -- ^ 'pdogName'+    -> ProjectsDatabasesOperationsGet+projectsDatabasesOperationsGet pPdogName_ =+    ProjectsDatabasesOperationsGet'+    { _pdogXgafv = Nothing+    , _pdogUploadProtocol = Nothing+    , _pdogAccessToken = Nothing+    , _pdogUploadType = Nothing+    , _pdogName = pPdogName_+    , _pdogCallback = Nothing+    }++-- | V1 error format.+pdogXgafv :: Lens' ProjectsDatabasesOperationsGet (Maybe Xgafv)+pdogXgafv+  = lens _pdogXgafv (\ s a -> s{_pdogXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pdogUploadProtocol :: Lens' ProjectsDatabasesOperationsGet (Maybe Text)+pdogUploadProtocol+  = lens _pdogUploadProtocol+      (\ s a -> s{_pdogUploadProtocol = a})++-- | OAuth access token.+pdogAccessToken :: Lens' ProjectsDatabasesOperationsGet (Maybe Text)+pdogAccessToken+  = lens _pdogAccessToken+      (\ s a -> s{_pdogAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pdogUploadType :: Lens' ProjectsDatabasesOperationsGet (Maybe Text)+pdogUploadType+  = lens _pdogUploadType+      (\ s a -> s{_pdogUploadType = a})++-- | The name of the operation resource.+pdogName :: Lens' ProjectsDatabasesOperationsGet Text+pdogName = lens _pdogName (\ s a -> s{_pdogName = a})++-- | JSONP+pdogCallback :: Lens' ProjectsDatabasesOperationsGet (Maybe Text)+pdogCallback+  = lens _pdogCallback (\ s a -> s{_pdogCallback = a})++instance GoogleRequest ProjectsDatabasesOperationsGet+         where+        type Rs ProjectsDatabasesOperationsGet =+             GoogleLongrunningOperation+        type Scopes ProjectsDatabasesOperationsGet =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient ProjectsDatabasesOperationsGet'{..}+          = go _pdogName _pdogXgafv _pdogUploadProtocol+              _pdogAccessToken+              _pdogUploadType+              _pdogCallback+              (Just AltJSON)+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsDatabasesOperationsGetResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Databases/Operations/List.hs view
@@ -0,0 +1,207 @@+{-# 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.FireStore.Projects.Databases.Operations.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists operations that match the specified filter in the request. If the+-- server doesn\'t support this method, it returns \`UNIMPLEMENTED\`. NOTE:+-- the \`name\` binding allows API services to override the binding to use+-- different resource name schemes, such as \`users\/*\/operations\`. To+-- override the binding, API services can add a binding such as+-- \`\"\/v1\/{name=users\/*}\/operations\"\` to their service+-- configuration. For backwards compatibility, the default name includes+-- the operations collection id, however overriding users must ensure the+-- name binding is the parent resource, without the operations collection+-- id.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.databases.operations.list@.+module Network.Google.Resource.FireStore.Projects.Databases.Operations.List+    (+    -- * REST Resource+      ProjectsDatabasesOperationsListResource++    -- * Creating a Request+    , projectsDatabasesOperationsList+    , ProjectsDatabasesOperationsList++    -- * Request Lenses+    , pdolXgafv+    , pdolUploadProtocol+    , pdolAccessToken+    , pdolUploadType+    , pdolName+    , pdolFilter+    , pdolPageToken+    , pdolPageSize+    , pdolCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.databases.operations.list@ method which the+-- 'ProjectsDatabasesOperationsList' request conforms to.+type ProjectsDatabasesOperationsListResource =+     "v1" :>+       Capture "name" Text :>+         "operations" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "pageSize" (Textual Int32) :>+                         QueryParam "callback" Text :>+                           QueryParam "alt" AltJSON :>+                             Get '[JSON] GoogleLongrunningListOperationsResponse++-- | Lists operations that match the specified filter in the request. If the+-- server doesn\'t support this method, it returns \`UNIMPLEMENTED\`. NOTE:+-- the \`name\` binding allows API services to override the binding to use+-- different resource name schemes, such as \`users\/*\/operations\`. To+-- override the binding, API services can add a binding such as+-- \`\"\/v1\/{name=users\/*}\/operations\"\` to their service+-- configuration. For backwards compatibility, the default name includes+-- the operations collection id, however overriding users must ensure the+-- name binding is the parent resource, without the operations collection+-- id.+--+-- /See:/ 'projectsDatabasesOperationsList' smart constructor.+data ProjectsDatabasesOperationsList = ProjectsDatabasesOperationsList'+    { _pdolXgafv          :: !(Maybe Xgafv)+    , _pdolUploadProtocol :: !(Maybe Text)+    , _pdolAccessToken    :: !(Maybe Text)+    , _pdolUploadType     :: !(Maybe Text)+    , _pdolName           :: !Text+    , _pdolFilter         :: !(Maybe Text)+    , _pdolPageToken      :: !(Maybe Text)+    , _pdolPageSize       :: !(Maybe (Textual Int32))+    , _pdolCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsDatabasesOperationsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdolXgafv'+--+-- * 'pdolUploadProtocol'+--+-- * 'pdolAccessToken'+--+-- * 'pdolUploadType'+--+-- * 'pdolName'+--+-- * 'pdolFilter'+--+-- * 'pdolPageToken'+--+-- * 'pdolPageSize'+--+-- * 'pdolCallback'+projectsDatabasesOperationsList+    :: Text -- ^ 'pdolName'+    -> ProjectsDatabasesOperationsList+projectsDatabasesOperationsList pPdolName_ =+    ProjectsDatabasesOperationsList'+    { _pdolXgafv = Nothing+    , _pdolUploadProtocol = Nothing+    , _pdolAccessToken = Nothing+    , _pdolUploadType = Nothing+    , _pdolName = pPdolName_+    , _pdolFilter = Nothing+    , _pdolPageToken = Nothing+    , _pdolPageSize = Nothing+    , _pdolCallback = Nothing+    }++-- | V1 error format.+pdolXgafv :: Lens' ProjectsDatabasesOperationsList (Maybe Xgafv)+pdolXgafv+  = lens _pdolXgafv (\ s a -> s{_pdolXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pdolUploadProtocol :: Lens' ProjectsDatabasesOperationsList (Maybe Text)+pdolUploadProtocol+  = lens _pdolUploadProtocol+      (\ s a -> s{_pdolUploadProtocol = a})++-- | OAuth access token.+pdolAccessToken :: Lens' ProjectsDatabasesOperationsList (Maybe Text)+pdolAccessToken+  = lens _pdolAccessToken+      (\ s a -> s{_pdolAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pdolUploadType :: Lens' ProjectsDatabasesOperationsList (Maybe Text)+pdolUploadType+  = lens _pdolUploadType+      (\ s a -> s{_pdolUploadType = a})++-- | The name of the operation\'s parent resource.+pdolName :: Lens' ProjectsDatabasesOperationsList Text+pdolName = lens _pdolName (\ s a -> s{_pdolName = a})++-- | The standard list filter.+pdolFilter :: Lens' ProjectsDatabasesOperationsList (Maybe Text)+pdolFilter+  = lens _pdolFilter (\ s a -> s{_pdolFilter = a})++-- | The standard list page token.+pdolPageToken :: Lens' ProjectsDatabasesOperationsList (Maybe Text)+pdolPageToken+  = lens _pdolPageToken+      (\ s a -> s{_pdolPageToken = a})++-- | The standard list page size.+pdolPageSize :: Lens' ProjectsDatabasesOperationsList (Maybe Int32)+pdolPageSize+  = lens _pdolPageSize (\ s a -> s{_pdolPageSize = a})+      . mapping _Coerce++-- | JSONP+pdolCallback :: Lens' ProjectsDatabasesOperationsList (Maybe Text)+pdolCallback+  = lens _pdolCallback (\ s a -> s{_pdolCallback = a})++instance GoogleRequest+         ProjectsDatabasesOperationsList where+        type Rs ProjectsDatabasesOperationsList =+             GoogleLongrunningListOperationsResponse+        type Scopes ProjectsDatabasesOperationsList =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient ProjectsDatabasesOperationsList'{..}+          = go _pdolName _pdolXgafv _pdolUploadProtocol+              _pdolAccessToken+              _pdolUploadType+              _pdolFilter+              _pdolPageToken+              _pdolPageSize+              _pdolCallback+              (Just AltJSON)+              fireStoreService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsDatabasesOperationsListResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Locations/Get.hs view
@@ -0,0 +1,145 @@+{-# 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.FireStore.Projects.Locations.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets information about a location.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.locations.get@.+module Network.Google.Resource.FireStore.Projects.Locations.Get+    (+    -- * REST Resource+      ProjectsLocationsGetResource++    -- * Creating a Request+    , projectsLocationsGet+    , ProjectsLocationsGet++    -- * Request Lenses+    , plgXgafv+    , plgUploadProtocol+    , plgAccessToken+    , plgUploadType+    , plgName+    , plgCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.locations.get@ method which the+-- 'ProjectsLocationsGet' request conforms to.+type ProjectsLocationsGetResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Location++-- | Gets information about a location.+--+-- /See:/ 'projectsLocationsGet' smart constructor.+data ProjectsLocationsGet = ProjectsLocationsGet'+    { _plgXgafv          :: !(Maybe Xgafv)+    , _plgUploadProtocol :: !(Maybe Text)+    , _plgAccessToken    :: !(Maybe Text)+    , _plgUploadType     :: !(Maybe Text)+    , _plgName           :: !Text+    , _plgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plgXgafv'+--+-- * 'plgUploadProtocol'+--+-- * 'plgAccessToken'+--+-- * 'plgUploadType'+--+-- * 'plgName'+--+-- * 'plgCallback'+projectsLocationsGet+    :: Text -- ^ 'plgName'+    -> ProjectsLocationsGet+projectsLocationsGet pPlgName_ =+    ProjectsLocationsGet'+    { _plgXgafv = Nothing+    , _plgUploadProtocol = Nothing+    , _plgAccessToken = Nothing+    , _plgUploadType = Nothing+    , _plgName = pPlgName_+    , _plgCallback = Nothing+    }++-- | V1 error format.+plgXgafv :: Lens' ProjectsLocationsGet (Maybe Xgafv)+plgXgafv = lens _plgXgafv (\ s a -> s{_plgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plgUploadProtocol :: Lens' ProjectsLocationsGet (Maybe Text)+plgUploadProtocol+  = lens _plgUploadProtocol+      (\ s a -> s{_plgUploadProtocol = a})++-- | OAuth access token.+plgAccessToken :: Lens' ProjectsLocationsGet (Maybe Text)+plgAccessToken+  = lens _plgAccessToken+      (\ s a -> s{_plgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plgUploadType :: Lens' ProjectsLocationsGet (Maybe Text)+plgUploadType+  = lens _plgUploadType+      (\ s a -> s{_plgUploadType = a})++-- | Resource name for the location.+plgName :: Lens' ProjectsLocationsGet Text+plgName = lens _plgName (\ s a -> s{_plgName = a})++-- | JSONP+plgCallback :: Lens' ProjectsLocationsGet (Maybe Text)+plgCallback+  = lens _plgCallback (\ s a -> s{_plgCallback = a})++instance GoogleRequest ProjectsLocationsGet where+        type Rs ProjectsLocationsGet = Location+        type Scopes ProjectsLocationsGet =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient ProjectsLocationsGet'{..}+          = go _plgName _plgXgafv _plgUploadProtocol+              _plgAccessToken+              _plgUploadType+              _plgCallback+              (Just AltJSON)+              fireStoreService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsLocationsGetResource)+                      mempty
+ gen/Network/Google/Resource/FireStore/Projects/Locations/List.hs view
@@ -0,0 +1,184 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.FireStore.Projects.Locations.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists information about the supported locations for this service.+--+-- /See:/ <https://cloud.google.com/firestore Cloud Firestore API Reference> for @firestore.projects.locations.list@.+module Network.Google.Resource.FireStore.Projects.Locations.List+    (+    -- * REST Resource+      ProjectsLocationsListResource++    -- * Creating a Request+    , projectsLocationsList+    , ProjectsLocationsList++    -- * Request Lenses+    , pllXgafv+    , pllUploadProtocol+    , pllAccessToken+    , pllUploadType+    , pllName+    , pllFilter+    , pllPageToken+    , pllPageSize+    , pllCallback+    ) where++import           Network.Google.FireStore.Types+import           Network.Google.Prelude++-- | A resource alias for @firestore.projects.locations.list@ method which the+-- 'ProjectsLocationsList' request conforms to.+type ProjectsLocationsListResource =+     "v1" :>+       Capture "name" Text :>+         "locations" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "pageSize" (Textual Int32) :>+                         QueryParam "callback" Text :>+                           QueryParam "alt" AltJSON :>+                             Get '[JSON] ListLocationsResponse++-- | Lists information about the supported locations for this service.+--+-- /See:/ 'projectsLocationsList' smart constructor.+data ProjectsLocationsList = ProjectsLocationsList'+    { _pllXgafv          :: !(Maybe Xgafv)+    , _pllUploadProtocol :: !(Maybe Text)+    , _pllAccessToken    :: !(Maybe Text)+    , _pllUploadType     :: !(Maybe Text)+    , _pllName           :: !Text+    , _pllFilter         :: !(Maybe Text)+    , _pllPageToken      :: !(Maybe Text)+    , _pllPageSize       :: !(Maybe (Textual Int32))+    , _pllCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pllXgafv'+--+-- * 'pllUploadProtocol'+--+-- * 'pllAccessToken'+--+-- * 'pllUploadType'+--+-- * 'pllName'+--+-- * 'pllFilter'+--+-- * 'pllPageToken'+--+-- * 'pllPageSize'+--+-- * 'pllCallback'+projectsLocationsList+    :: Text -- ^ 'pllName'+    -> ProjectsLocationsList+projectsLocationsList pPllName_ =+    ProjectsLocationsList'+    { _pllXgafv = Nothing+    , _pllUploadProtocol = Nothing+    , _pllAccessToken = Nothing+    , _pllUploadType = Nothing+    , _pllName = pPllName_+    , _pllFilter = Nothing+    , _pllPageToken = Nothing+    , _pllPageSize = Nothing+    , _pllCallback = Nothing+    }++-- | V1 error format.+pllXgafv :: Lens' ProjectsLocationsList (Maybe Xgafv)+pllXgafv = lens _pllXgafv (\ s a -> s{_pllXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pllUploadProtocol :: Lens' ProjectsLocationsList (Maybe Text)+pllUploadProtocol+  = lens _pllUploadProtocol+      (\ s a -> s{_pllUploadProtocol = a})++-- | OAuth access token.+pllAccessToken :: Lens' ProjectsLocationsList (Maybe Text)+pllAccessToken+  = lens _pllAccessToken+      (\ s a -> s{_pllAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pllUploadType :: Lens' ProjectsLocationsList (Maybe Text)+pllUploadType+  = lens _pllUploadType+      (\ s a -> s{_pllUploadType = a})++-- | The resource that owns the locations collection, if applicable.+pllName :: Lens' ProjectsLocationsList Text+pllName = lens _pllName (\ s a -> s{_pllName = a})++-- | The standard list filter.+pllFilter :: Lens' ProjectsLocationsList (Maybe Text)+pllFilter+  = lens _pllFilter (\ s a -> s{_pllFilter = a})++-- | The standard list page token.+pllPageToken :: Lens' ProjectsLocationsList (Maybe Text)+pllPageToken+  = lens _pllPageToken (\ s a -> s{_pllPageToken = a})++-- | The standard list page size.+pllPageSize :: Lens' ProjectsLocationsList (Maybe Int32)+pllPageSize+  = lens _pllPageSize (\ s a -> s{_pllPageSize = a}) .+      mapping _Coerce++-- | JSONP+pllCallback :: Lens' ProjectsLocationsList (Maybe Text)+pllCallback+  = lens _pllCallback (\ s a -> s{_pllCallback = a})++instance GoogleRequest ProjectsLocationsList where+        type Rs ProjectsLocationsList = ListLocationsResponse+        type Scopes ProjectsLocationsList =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/datastore"]+        requestClient ProjectsLocationsList'{..}+          = go _pllName _pllXgafv _pllUploadProtocol+              _pllAccessToken+              _pllUploadType+              _pllFilter+              _pllPageToken+              _pllPageSize+              _pllCallback+              (Just AltJSON)+              fireStoreService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsLocationsListResource)+                      mempty
+ gogol-firestore.cabal view
@@ -0,0 +1,74 @@+name:                  gogol-firestore+version:               0.4.0+synopsis:              Google Cloud Firestore SDK.+homepage:              https://github.com/brendanhay/gogol+bug-reports:           https://github.com/brendanhay/gogol/issues+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2015-2016 Brendan Hay+category:              Network, Google, Cloud+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md src/.gitkeep++description:+    Accesses the NoSQL document database built for automatic scaling, high+    performance, and ease of application development.+    .+    /Warning:/ This is an experimental prototype/preview release which is still+    under exploratory development and not intended for public use, caveat emptor!+    .+    This library is compatible with version @v1@+    of the API.++source-repository head+    type:     git+    location: git://github.com/brendanhay/gogol.git++library+    default-language:  Haskell2010+    hs-source-dirs:    src gen++    ghc-options:       -Wall++    exposed-modules:+          Network.Google.FireStore+        , Network.Google.FireStore.Types+        , Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Fields.Get+        , Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Fields.List+        , Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Fields.Patch+        , Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Indexes.Create+        , Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Indexes.Delete+        , Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Indexes.Get+        , Network.Google.Resource.FireStore.Projects.Databases.CollectionGroups.Indexes.List+        , Network.Google.Resource.FireStore.Projects.Databases.Documents.BatchGet+        , Network.Google.Resource.FireStore.Projects.Databases.Documents.BeginTransaction+        , Network.Google.Resource.FireStore.Projects.Databases.Documents.Commit+        , Network.Google.Resource.FireStore.Projects.Databases.Documents.CreateDocument+        , Network.Google.Resource.FireStore.Projects.Databases.Documents.Delete+        , Network.Google.Resource.FireStore.Projects.Databases.Documents.Get+        , Network.Google.Resource.FireStore.Projects.Databases.Documents.List+        , Network.Google.Resource.FireStore.Projects.Databases.Documents.ListCollectionIds+        , Network.Google.Resource.FireStore.Projects.Databases.Documents.Listen+        , Network.Google.Resource.FireStore.Projects.Databases.Documents.Patch+        , Network.Google.Resource.FireStore.Projects.Databases.Documents.Rollback+        , Network.Google.Resource.FireStore.Projects.Databases.Documents.RunQuery+        , Network.Google.Resource.FireStore.Projects.Databases.Documents.Write+        , Network.Google.Resource.FireStore.Projects.Databases.ExportDocuments+        , Network.Google.Resource.FireStore.Projects.Databases.ImportDocuments+        , Network.Google.Resource.FireStore.Projects.Databases.Operations.Cancel+        , Network.Google.Resource.FireStore.Projects.Databases.Operations.Delete+        , Network.Google.Resource.FireStore.Projects.Databases.Operations.Get+        , Network.Google.Resource.FireStore.Projects.Databases.Operations.List+        , Network.Google.Resource.FireStore.Projects.Locations.Get+        , Network.Google.Resource.FireStore.Projects.Locations.List++    other-modules:+          Network.Google.FireStore.Types.Product+        , Network.Google.FireStore.Types.Sum++    build-depends:+          gogol-core == 0.4.0.*+        , base       >= 4.7 && < 5
+ src/.gitkeep view