packages feed

gogol-datastore (empty) → 0.0.1

raw patch · 14 files changed

+4197/−0 lines, 14 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-datastore++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.0.1`+++## Description++A client library for the Google Cloud Datastore.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.+++## Licence++`gogol-datastore` 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/Datastore.hs view
@@ -0,0 +1,343 @@+{-# LANGUAGE DataKinds         #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators     #-}++{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module      : Network.Google.Datastore+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- API for accessing Google Cloud Datastore.+--+-- /See:/ <https://developers.google.com/datastore/ Google Cloud Datastore API Reference>+module Network.Google.Datastore+    (+    -- * Service Configuration+      datastoreService++    -- * API Declaration+    , DatastoreAPI++    -- * Resources++    -- ** datastore.datasets.allocateIds+    , module Network.Google.Resource.Datastore.DataSets.AllocateIds++    -- ** datastore.datasets.beginTransaction+    , module Network.Google.Resource.Datastore.DataSets.BeginTransaction++    -- ** datastore.datasets.commit+    , module Network.Google.Resource.Datastore.DataSets.Commit++    -- ** datastore.datasets.lookup+    , module Network.Google.Resource.Datastore.DataSets.Lookup++    -- ** datastore.datasets.rollback+    , module Network.Google.Resource.Datastore.DataSets.Rollback++    -- ** datastore.datasets.runQuery+    , module Network.Google.Resource.Datastore.DataSets.RunQuery++    -- * Types++    -- ** PropertyOrderDirection+    , PropertyOrderDirection (..)++    -- ** RollbackRequest+    , RollbackRequest+    , rollbackRequest+    , rrTransaction++    -- ** Property+    , Property+    , property+    , pKeyValue+    , pBlobKeyValue+    , pDateTimeValue+    , pIntegerValue+    , pEntityValue+    , pDoubleValue+    , pStringValue+    , pListValue+    , pIndexed+    , pBooleanValue+    , pMeaning+    , pBlobValue++    -- ** PartitionId+    , PartitionId+    , partitionId+    , piNamespace+    , piDataSetId++    -- ** QueryResultBatch+    , QueryResultBatch+    , queryResultBatch+    , qrbSkippedResults+    , qrbEntityResultType+    , qrbEntityResults+    , qrbMoreResults+    , qrbEndCursor++    -- ** EntityProperties+    , EntityProperties+    , entityProperties+    , epAddtional++    -- ** BeginTransactionRequest+    , BeginTransactionRequest+    , beginTransactionRequest+    , btrIsolationLevel++    -- ** RunQueryRequest+    , RunQueryRequest+    , runQueryRequest+    , rqrPartitionId+    , rqrGqlQuery+    , rqrQuery+    , rqrReadOptions++    -- ** AllocateIdsRequest+    , AllocateIdsRequest+    , allocateIdsRequest+    , airKeys++    -- ** QueryResultBatchEntityResultType+    , QueryResultBatchEntityResultType (..)++    -- ** CompositeFilter+    , CompositeFilter+    , compositeFilter+    , cfOperator+    , cfFilters++    -- ** CompositeFilterOperator+    , CompositeFilterOperator (..)++    -- ** QueryResultBatchMoreResults+    , QueryResultBatchMoreResults (..)++    -- ** BeginTransactionResponse+    , BeginTransactionResponse+    , beginTransactionResponse+    , btrTransaction+    , btrHeader++    -- ** MutationResult+    , MutationResult+    , mutationResult+    , mrInsertAutoIdKeys+    , mrIndexUpdates++    -- ** AllocateIdsResponse+    , AllocateIdsResponse+    , allocateIdsResponse+    , aKeys+    , aHeader++    -- ** GqlQuery+    , GqlQuery+    , gqlQuery+    , gqAllowLiteral+    , gqNumberArgs+    , gqQueryString+    , gqNameArgs++    -- ** RunQueryResponse+    , RunQueryResponse+    , runQueryResponse+    , rqrBatch+    , rqrHeader++    -- ** Value+    , Value+    , value+    , vKeyValue+    , vBlobKeyValue+    , vDateTimeValue+    , vIntegerValue+    , vEntityValue+    , vDoubleValue+    , vStringValue+    , vListValue+    , vIndexed+    , vBooleanValue+    , vMeaning+    , vBlobValue++    -- ** LookupRequest+    , LookupRequest+    , lookupRequest+    , lrKeys+    , lrReadOptions++    -- ** ReadOptionsReadConsistency+    , ReadOptionsReadConsistency (..)++    -- ** Mutation+    , Mutation+    , mutation+    , mInsert+    , mForce+    , mInsertAutoId+    , mUpsert+    , mDelete+    , mUpdate++    -- ** ResponseHeader+    , ResponseHeader+    , responseHeader+    , rhKind++    -- ** KeyPathElement+    , KeyPathElement+    , keyPathElement+    , kpeKind+    , kpeName+    , kpeId++    -- ** PropertyReference+    , PropertyReference+    , propertyReference+    , prName++    -- ** GqlQueryArg+    , GqlQueryArg+    , gqlQueryArg+    , gqaCursor+    , gqaValue+    , gqaName++    -- ** Key+    , Key+    , key+    , kPartitionId+    , kPath++    -- ** PropertyFilterOperator+    , PropertyFilterOperator (..)++    -- ** PropertyFilter+    , PropertyFilter+    , propertyFilter+    , pfProperty+    , pfOperator+    , pfValue++    -- ** Query+    , Query+    , query+    , qGroupBy+    , qStartCursor+    , qOffSet+    , qEndCursor+    , qLimit+    , qProjection+    , qFilter+    , qKinds+    , qOrder++    -- ** EntityResult+    , EntityResult+    , entityResult+    , erEntity++    -- ** CommitResponse+    , CommitResponse+    , commitResponse+    , crMutationResult+    , crHeader++    -- ** KindExpression+    , KindExpression+    , kindExpression+    , keName++    -- ** ReadOptions+    , ReadOptions+    , readOptions+    , roReadConsistency+    , roTransaction++    -- ** RollbackResponse+    , RollbackResponse+    , rollbackResponse+    , rrHeader++    -- ** PropertyExpression+    , PropertyExpression+    , propertyExpression+    , peProperty+    , peAggregationFunction++    -- ** Filter+    , Filter+    , filter'+    , fCompositeFilter+    , fPropertyFilter++    -- ** BeginTransactionRequestIsolationLevel+    , BeginTransactionRequestIsolationLevel (..)++    -- ** CommitRequest+    , CommitRequest+    , commitRequest+    , crMode+    , crMutation+    , crTransaction+    , crIgnoreReadOnly++    -- ** CommitRequestMode+    , CommitRequestMode (..)++    -- ** PropertyExpressionAggregationFunction+    , PropertyExpressionAggregationFunction (..)++    -- ** Entity+    , Entity+    , entity+    , eKey+    , eProperties++    -- ** LookupResponse+    , LookupResponse+    , lookupResponse+    , lrDeferred+    , lrFound+    , lrMissing+    , lrHeader++    -- ** PropertyOrder+    , PropertyOrder+    , propertyOrder+    , poProperty+    , poDirection+    ) where++import           Network.Google.Datastore.Types+import           Network.Google.Prelude+import           Network.Google.Resource.Datastore.DataSets.AllocateIds+import           Network.Google.Resource.Datastore.DataSets.BeginTransaction+import           Network.Google.Resource.Datastore.DataSets.Commit+import           Network.Google.Resource.Datastore.DataSets.Lookup+import           Network.Google.Resource.Datastore.DataSets.Rollback+import           Network.Google.Resource.Datastore.DataSets.RunQuery++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Google Cloud Datastore API service.+type DatastoreAPI =+     DataSetsBeginTransactionResource :<|>+       DataSetsAllocateIdsResource+       :<|> DataSetsRunQueryResource+       :<|> DataSetsRollbackResource+       :<|> DataSetsLookupResource+       :<|> DataSetsCommitResource
+ gen/Network/Google/Datastore/Types.hs view
@@ -0,0 +1,320 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Datastore.Types+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Datastore.Types+    (+    -- * Service Configuration+      datastoreService++    -- * OAuth Scopes+    , userinfoEmailScope+    , cloudPlatformScope+    , datastoreScope++    -- * PropertyOrderDirection+    , PropertyOrderDirection (..)++    -- * RollbackRequest+    , RollbackRequest+    , rollbackRequest+    , rrTransaction++    -- * Property+    , Property+    , property+    , pKeyValue+    , pBlobKeyValue+    , pDateTimeValue+    , pIntegerValue+    , pEntityValue+    , pDoubleValue+    , pStringValue+    , pListValue+    , pIndexed+    , pBooleanValue+    , pMeaning+    , pBlobValue++    -- * PartitionId+    , PartitionId+    , partitionId+    , piNamespace+    , piDataSetId++    -- * QueryResultBatch+    , QueryResultBatch+    , queryResultBatch+    , qrbSkippedResults+    , qrbEntityResultType+    , qrbEntityResults+    , qrbMoreResults+    , qrbEndCursor++    -- * EntityProperties+    , EntityProperties+    , entityProperties+    , epAddtional++    -- * BeginTransactionRequest+    , BeginTransactionRequest+    , beginTransactionRequest+    , btrIsolationLevel++    -- * RunQueryRequest+    , RunQueryRequest+    , runQueryRequest+    , rqrPartitionId+    , rqrGqlQuery+    , rqrQuery+    , rqrReadOptions++    -- * AllocateIdsRequest+    , AllocateIdsRequest+    , allocateIdsRequest+    , airKeys++    -- * QueryResultBatchEntityResultType+    , QueryResultBatchEntityResultType (..)++    -- * CompositeFilter+    , CompositeFilter+    , compositeFilter+    , cfOperator+    , cfFilters++    -- * CompositeFilterOperator+    , CompositeFilterOperator (..)++    -- * QueryResultBatchMoreResults+    , QueryResultBatchMoreResults (..)++    -- * BeginTransactionResponse+    , BeginTransactionResponse+    , beginTransactionResponse+    , btrTransaction+    , btrHeader++    -- * MutationResult+    , MutationResult+    , mutationResult+    , mrInsertAutoIdKeys+    , mrIndexUpdates++    -- * AllocateIdsResponse+    , AllocateIdsResponse+    , allocateIdsResponse+    , aKeys+    , aHeader++    -- * GqlQuery+    , GqlQuery+    , gqlQuery+    , gqAllowLiteral+    , gqNumberArgs+    , gqQueryString+    , gqNameArgs++    -- * RunQueryResponse+    , RunQueryResponse+    , runQueryResponse+    , rqrBatch+    , rqrHeader++    -- * Value+    , Value+    , value+    , vKeyValue+    , vBlobKeyValue+    , vDateTimeValue+    , vIntegerValue+    , vEntityValue+    , vDoubleValue+    , vStringValue+    , vListValue+    , vIndexed+    , vBooleanValue+    , vMeaning+    , vBlobValue++    -- * LookupRequest+    , LookupRequest+    , lookupRequest+    , lrKeys+    , lrReadOptions++    -- * ReadOptionsReadConsistency+    , ReadOptionsReadConsistency (..)++    -- * Mutation+    , Mutation+    , mutation+    , mInsert+    , mForce+    , mInsertAutoId+    , mUpsert+    , mDelete+    , mUpdate++    -- * ResponseHeader+    , ResponseHeader+    , responseHeader+    , rhKind++    -- * KeyPathElement+    , KeyPathElement+    , keyPathElement+    , kpeKind+    , kpeName+    , kpeId++    -- * PropertyReference+    , PropertyReference+    , propertyReference+    , prName++    -- * GqlQueryArg+    , GqlQueryArg+    , gqlQueryArg+    , gqaCursor+    , gqaValue+    , gqaName++    -- * Key+    , Key+    , key+    , kPartitionId+    , kPath++    -- * PropertyFilterOperator+    , PropertyFilterOperator (..)++    -- * PropertyFilter+    , PropertyFilter+    , propertyFilter+    , pfProperty+    , pfOperator+    , pfValue++    -- * Query+    , Query+    , query+    , qGroupBy+    , qStartCursor+    , qOffSet+    , qEndCursor+    , qLimit+    , qProjection+    , qFilter+    , qKinds+    , qOrder++    -- * EntityResult+    , EntityResult+    , entityResult+    , erEntity++    -- * CommitResponse+    , CommitResponse+    , commitResponse+    , crMutationResult+    , crHeader++    -- * KindExpression+    , KindExpression+    , kindExpression+    , keName++    -- * ReadOptions+    , ReadOptions+    , readOptions+    , roReadConsistency+    , roTransaction++    -- * RollbackResponse+    , RollbackResponse+    , rollbackResponse+    , rrHeader++    -- * PropertyExpression+    , PropertyExpression+    , propertyExpression+    , peProperty+    , peAggregationFunction++    -- * Filter+    , Filter+    , filter'+    , fCompositeFilter+    , fPropertyFilter++    -- * BeginTransactionRequestIsolationLevel+    , BeginTransactionRequestIsolationLevel (..)++    -- * CommitRequest+    , CommitRequest+    , commitRequest+    , crMode+    , crMutation+    , crTransaction+    , crIgnoreReadOnly++    -- * CommitRequestMode+    , CommitRequestMode (..)++    -- * PropertyExpressionAggregationFunction+    , PropertyExpressionAggregationFunction (..)++    -- * Entity+    , Entity+    , entity+    , eKey+    , eProperties++    -- * LookupResponse+    , LookupResponse+    , lookupResponse+    , lrDeferred+    , lrFound+    , lrMissing+    , lrHeader++    -- * PropertyOrder+    , PropertyOrder+    , propertyOrder+    , poProperty+    , poDirection+    ) where++import           Network.Google.Datastore.Types.Product+import           Network.Google.Datastore.Types.Sum+import           Network.Google.Prelude++-- | Default request referring to version 'v1beta2' of the Google Cloud Datastore API. This contains the host and root path used as a starting point for constructing service requests.+datastoreService :: Service+datastoreService+  = defaultService (ServiceId "datastore:v1beta2")+      "www.googleapis.com"++-- | View your email address+userinfoEmailScope :: OAuthScope+userinfoEmailScope = "https://www.googleapis.com/auth/userinfo.email";++-- | View and manage your data across Google Cloud Platform services+cloudPlatformScope :: OAuthScope+cloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform";++-- | View and manage your Google Cloud Datastore data+datastoreScope :: OAuthScope+datastoreScope = "https://www.googleapis.com/auth/datastore";
+ gen/Network/Google/Datastore/Types/Product.hs view
@@ -0,0 +1,2191 @@+{-# 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.Datastore.Types.Product+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Datastore.Types.Product where++import           Network.Google.Datastore.Types.Sum+import           Network.Google.Prelude++--+-- /See:/ 'rollbackRequest' smart constructor.+newtype RollbackRequest = RollbackRequest+    { _rrTransaction :: Maybe (Textual Word8)+    } 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 identifier, returned by a call to beginTransaction.+rrTransaction :: Lens' RollbackRequest (Maybe Word8)+rrTransaction+  = lens _rrTransaction+      (\ s a -> s{_rrTransaction = a})+      . mapping _Coerce++instance FromJSON RollbackRequest where+        parseJSON+          = withObject "RollbackRequest"+              (\ o -> RollbackRequest <$> (o .:? "transaction"))++instance ToJSON RollbackRequest where+        toJSON RollbackRequest{..}+          = object+              (catMaybes [("transaction" .=) <$> _rrTransaction])++-- | An entity property.+--+-- /See:/ 'property' smart constructor.+data Property = Property+    { _pKeyValue      :: !(Maybe Key)+    , _pBlobKeyValue  :: !(Maybe Text)+    , _pDateTimeValue :: !(Maybe DateTime')+    , _pIntegerValue  :: !(Maybe (Textual Int64))+    , _pEntityValue   :: !(Maybe Entity)+    , _pDoubleValue   :: !(Maybe (Textual Double))+    , _pStringValue   :: !(Maybe Text)+    , _pListValue     :: !(Maybe [Value])+    , _pIndexed       :: !(Maybe Bool)+    , _pBooleanValue  :: !(Maybe Bool)+    , _pMeaning       :: !(Maybe (Textual Int32))+    , _pBlobValue     :: !(Maybe (Textual Word8))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Property' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pKeyValue'+--+-- * 'pBlobKeyValue'+--+-- * 'pDateTimeValue'+--+-- * 'pIntegerValue'+--+-- * 'pEntityValue'+--+-- * 'pDoubleValue'+--+-- * 'pStringValue'+--+-- * 'pListValue'+--+-- * 'pIndexed'+--+-- * 'pBooleanValue'+--+-- * 'pMeaning'+--+-- * 'pBlobValue'+property+    :: Property+property =+    Property+    { _pKeyValue = Nothing+    , _pBlobKeyValue = Nothing+    , _pDateTimeValue = Nothing+    , _pIntegerValue = Nothing+    , _pEntityValue = Nothing+    , _pDoubleValue = Nothing+    , _pStringValue = Nothing+    , _pListValue = Nothing+    , _pIndexed = Nothing+    , _pBooleanValue = Nothing+    , _pMeaning = Nothing+    , _pBlobValue = Nothing+    }++-- | A key value.+pKeyValue :: Lens' Property (Maybe Key)+pKeyValue+  = lens _pKeyValue (\ s a -> s{_pKeyValue = a})++-- | A blob key value.+pBlobKeyValue :: Lens' Property (Maybe Text)+pBlobKeyValue+  = lens _pBlobKeyValue+      (\ s a -> s{_pBlobKeyValue = a})++-- | A timestamp value.+pDateTimeValue :: Lens' Property (Maybe UTCTime)+pDateTimeValue+  = lens _pDateTimeValue+      (\ s a -> s{_pDateTimeValue = a})+      . mapping _DateTime++-- | An integer value.+pIntegerValue :: Lens' Property (Maybe Int64)+pIntegerValue+  = lens _pIntegerValue+      (\ s a -> s{_pIntegerValue = a})+      . mapping _Coerce++-- | An entity value. May have no key. May have a key with an incomplete key+-- path. May have a reserved\/read-only key.+pEntityValue :: Lens' Property (Maybe Entity)+pEntityValue+  = lens _pEntityValue (\ s a -> s{_pEntityValue = a})++-- | A double value.+pDoubleValue :: Lens' Property (Maybe Double)+pDoubleValue+  = lens _pDoubleValue (\ s a -> s{_pDoubleValue = a})+      . mapping _Coerce++-- | A UTF-8 encoded string value. When indexed is true, may have at most 500+-- characters.+pStringValue :: Lens' Property (Maybe Text)+pStringValue+  = lens _pStringValue (\ s a -> s{_pStringValue = a})++-- | A list value. Cannot contain another list value. A Value instance that+-- sets field list_value must not set field meaning or field indexed.+pListValue :: Lens' Property [Value]+pListValue+  = lens _pListValue (\ s a -> s{_pListValue = a}) .+      _Default+      . _Coerce++-- | If the value should be indexed. The indexed property may be set for a+-- null value. When indexed is true, stringValue is limited to 500+-- characters and the blob value is limited to 500 bytes. Input values by+-- default have indexed set to true; however, you can explicitly set+-- indexed to true if you want. (An output value never has indexed+-- explicitly set to true.) If a value is itself an entity, it cannot have+-- indexed set to true.+pIndexed :: Lens' Property (Maybe Bool)+pIndexed = lens _pIndexed (\ s a -> s{_pIndexed = a})++-- | A boolean value.+pBooleanValue :: Lens' Property (Maybe Bool)+pBooleanValue+  = lens _pBooleanValue+      (\ s a -> s{_pBooleanValue = a})++-- | The meaning field is reserved and should not be used.+pMeaning :: Lens' Property (Maybe Int32)+pMeaning+  = lens _pMeaning (\ s a -> s{_pMeaning = a}) .+      mapping _Coerce++-- | A blob value. May be a maximum of 1,000,000 bytes. When indexed is true,+-- may have at most 500 bytes.+pBlobValue :: Lens' Property (Maybe Word8)+pBlobValue+  = lens _pBlobValue (\ s a -> s{_pBlobValue = a}) .+      mapping _Coerce++instance FromJSON Property where+        parseJSON+          = withObject "Property"+              (\ o ->+                 Property <$>+                   (o .:? "keyValue") <*> (o .:? "blobKeyValue") <*>+                     (o .:? "dateTimeValue")+                     <*> (o .:? "integerValue")+                     <*> (o .:? "entityValue")+                     <*> (o .:? "doubleValue")+                     <*> (o .:? "stringValue")+                     <*> (o .:? "listValue" .!= mempty)+                     <*> (o .:? "indexed")+                     <*> (o .:? "booleanValue")+                     <*> (o .:? "meaning")+                     <*> (o .:? "blobValue"))++instance ToJSON Property where+        toJSON Property{..}+          = object+              (catMaybes+                 [("keyValue" .=) <$> _pKeyValue,+                  ("blobKeyValue" .=) <$> _pBlobKeyValue,+                  ("dateTimeValue" .=) <$> _pDateTimeValue,+                  ("integerValue" .=) <$> _pIntegerValue,+                  ("entityValue" .=) <$> _pEntityValue,+                  ("doubleValue" .=) <$> _pDoubleValue,+                  ("stringValue" .=) <$> _pStringValue,+                  ("listValue" .=) <$> _pListValue,+                  ("indexed" .=) <$> _pIndexed,+                  ("booleanValue" .=) <$> _pBooleanValue,+                  ("meaning" .=) <$> _pMeaning,+                  ("blobValue" .=) <$> _pBlobValue])++-- | An identifier for a particular subset of entities. Entities are+-- partitioned into various subsets, each used by different datasets and+-- different namespaces within a dataset and so forth.+--+-- /See:/ 'partitionId' smart constructor.+data PartitionId = PartitionId+    { _piNamespace :: !(Maybe Text)+    , _piDataSetId :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PartitionId' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'piNamespace'+--+-- * 'piDataSetId'+partitionId+    :: PartitionId+partitionId =+    PartitionId+    { _piNamespace = Nothing+    , _piDataSetId = Nothing+    }++-- | The namespace.+piNamespace :: Lens' PartitionId (Maybe Text)+piNamespace+  = lens _piNamespace (\ s a -> s{_piNamespace = a})++-- | The dataset ID.+piDataSetId :: Lens' PartitionId (Maybe Text)+piDataSetId+  = lens _piDataSetId (\ s a -> s{_piDataSetId = a})++instance FromJSON PartitionId where+        parseJSON+          = withObject "PartitionId"+              (\ o ->+                 PartitionId <$>+                   (o .:? "namespace") <*> (o .:? "datasetId"))++instance ToJSON PartitionId where+        toJSON PartitionId{..}+          = object+              (catMaybes+                 [("namespace" .=) <$> _piNamespace,+                  ("datasetId" .=) <$> _piDataSetId])++-- | A batch of results produced by a query.+--+-- /See:/ 'queryResultBatch' smart constructor.+data QueryResultBatch = QueryResultBatch+    { _qrbSkippedResults   :: !(Maybe (Textual Int32))+    , _qrbEntityResultType :: !(Maybe QueryResultBatchEntityResultType)+    , _qrbEntityResults    :: !(Maybe [EntityResult])+    , _qrbMoreResults      :: !(Maybe QueryResultBatchMoreResults)+    , _qrbEndCursor        :: !(Maybe (Textual Word8))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'QueryResultBatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'qrbSkippedResults'+--+-- * 'qrbEntityResultType'+--+-- * 'qrbEntityResults'+--+-- * 'qrbMoreResults'+--+-- * 'qrbEndCursor'+queryResultBatch+    :: QueryResultBatch+queryResultBatch =+    QueryResultBatch+    { _qrbSkippedResults = Nothing+    , _qrbEntityResultType = Nothing+    , _qrbEntityResults = Nothing+    , _qrbMoreResults = Nothing+    , _qrbEndCursor = Nothing+    }++-- | The number of results skipped because of Query.offset.+qrbSkippedResults :: Lens' QueryResultBatch (Maybe Int32)+qrbSkippedResults+  = lens _qrbSkippedResults+      (\ s a -> s{_qrbSkippedResults = a})+      . mapping _Coerce++-- | The result type for every entity in entityResults. full for full+-- entities, projection for entities with only projected properties,+-- keyOnly for entities with only a key.+qrbEntityResultType :: Lens' QueryResultBatch (Maybe QueryResultBatchEntityResultType)+qrbEntityResultType+  = lens _qrbEntityResultType+      (\ s a -> s{_qrbEntityResultType = a})++-- | The results for this batch.+qrbEntityResults :: Lens' QueryResultBatch [EntityResult]+qrbEntityResults+  = lens _qrbEntityResults+      (\ s a -> s{_qrbEntityResults = a})+      . _Default+      . _Coerce++-- | The state of the query after the current batch. One of notFinished,+-- moreResultsAfterLimit, noMoreResults.+qrbMoreResults :: Lens' QueryResultBatch (Maybe QueryResultBatchMoreResults)+qrbMoreResults+  = lens _qrbMoreResults+      (\ s a -> s{_qrbMoreResults = a})++-- | A cursor that points to the position after the last result in the batch.+-- May be absent. TODO(arfuller): Once all plans produce cursors update+-- documentation here.+qrbEndCursor :: Lens' QueryResultBatch (Maybe Word8)+qrbEndCursor+  = lens _qrbEndCursor (\ s a -> s{_qrbEndCursor = a})+      . mapping _Coerce++instance FromJSON QueryResultBatch where+        parseJSON+          = withObject "QueryResultBatch"+              (\ o ->+                 QueryResultBatch <$>+                   (o .:? "skippedResults") <*>+                     (o .:? "entityResultType")+                     <*> (o .:? "entityResults" .!= mempty)+                     <*> (o .:? "moreResults")+                     <*> (o .:? "endCursor"))++instance ToJSON QueryResultBatch where+        toJSON QueryResultBatch{..}+          = object+              (catMaybes+                 [("skippedResults" .=) <$> _qrbSkippedResults,+                  ("entityResultType" .=) <$> _qrbEntityResultType,+                  ("entityResults" .=) <$> _qrbEntityResults,+                  ("moreResults" .=) <$> _qrbMoreResults,+                  ("endCursor" .=) <$> _qrbEndCursor])++-- | The entity\'s properties.+--+-- /See:/ 'entityProperties' smart constructor.+newtype EntityProperties = EntityProperties+    { _epAddtional :: HashMap Text Property+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EntityProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'epAddtional'+entityProperties+    :: HashMap Text Property -- ^ 'epAddtional'+    -> EntityProperties+entityProperties pEpAddtional_ =+    EntityProperties+    { _epAddtional = _Coerce # pEpAddtional_+    }++-- | The name of the property. A property name matching regex \"__.*__\" is+-- reserved. A reserved property name is forbidden in certain documented+-- contexts. The name must not contain more than 500 characters. Cannot be+-- \"\".+epAddtional :: Lens' EntityProperties (HashMap Text Property)+epAddtional+  = lens _epAddtional (\ s a -> s{_epAddtional = a}) .+      _Coerce++instance FromJSON EntityProperties where+        parseJSON+          = withObject "EntityProperties"+              (\ o -> EntityProperties <$> (parseJSONObject o))++instance ToJSON EntityProperties where+        toJSON = toJSON . _epAddtional++--+-- /See:/ 'beginTransactionRequest' smart constructor.+newtype BeginTransactionRequest = BeginTransactionRequest+    { _btrIsolationLevel :: Maybe BeginTransactionRequestIsolationLevel+    } 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:+--+-- * 'btrIsolationLevel'+beginTransactionRequest+    :: BeginTransactionRequest+beginTransactionRequest =+    BeginTransactionRequest+    { _btrIsolationLevel = Nothing+    }++-- | The transaction isolation level. Either snapshot or serializable. The+-- default isolation level is snapshot isolation, which means that another+-- transaction may not concurrently modify the data that is modified by+-- this transaction. Optionally, a transaction can request to be made+-- serializable which means that another transaction cannot concurrently+-- modify the data that is read or modified by this transaction.+btrIsolationLevel :: Lens' BeginTransactionRequest (Maybe BeginTransactionRequestIsolationLevel)+btrIsolationLevel+  = lens _btrIsolationLevel+      (\ s a -> s{_btrIsolationLevel = a})++instance FromJSON BeginTransactionRequest where+        parseJSON+          = withObject "BeginTransactionRequest"+              (\ o ->+                 BeginTransactionRequest <$> (o .:? "isolationLevel"))++instance ToJSON BeginTransactionRequest where+        toJSON BeginTransactionRequest{..}+          = object+              (catMaybes+                 [("isolationLevel" .=) <$> _btrIsolationLevel])++--+-- /See:/ 'runQueryRequest' smart constructor.+data RunQueryRequest = RunQueryRequest+    { _rqrPartitionId :: !(Maybe PartitionId)+    , _rqrGqlQuery    :: !(Maybe GqlQuery)+    , _rqrQuery       :: !(Maybe Query)+    , _rqrReadOptions :: !(Maybe ReadOptions)+    } 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:+--+-- * 'rqrPartitionId'+--+-- * 'rqrGqlQuery'+--+-- * 'rqrQuery'+--+-- * 'rqrReadOptions'+runQueryRequest+    :: RunQueryRequest+runQueryRequest =+    RunQueryRequest+    { _rqrPartitionId = Nothing+    , _rqrGqlQuery = Nothing+    , _rqrQuery = Nothing+    , _rqrReadOptions = Nothing+    }++-- | Entities are partitioned into subsets, identified by a dataset (usually+-- implicitly specified by the project) and namespace ID. Queries are+-- scoped to a single partition. This partition ID is normalized with the+-- standard default context partition ID, but all other partition IDs in+-- RunQueryRequest are normalized with this partition ID as the context+-- partition ID.+rqrPartitionId :: Lens' RunQueryRequest (Maybe PartitionId)+rqrPartitionId+  = lens _rqrPartitionId+      (\ s a -> s{_rqrPartitionId = a})++-- | The GQL query to run. Either this field or field query must be set, but+-- not both.+rqrGqlQuery :: Lens' RunQueryRequest (Maybe GqlQuery)+rqrGqlQuery+  = lens _rqrGqlQuery (\ s a -> s{_rqrGqlQuery = a})++-- | The query to run. Either this field or field gql_query must be set, but+-- not both.+rqrQuery :: Lens' RunQueryRequest (Maybe Query)+rqrQuery = lens _rqrQuery (\ s a -> s{_rqrQuery = a})++-- | The options for this query.+rqrReadOptions :: Lens' RunQueryRequest (Maybe ReadOptions)+rqrReadOptions+  = lens _rqrReadOptions+      (\ s a -> s{_rqrReadOptions = a})++instance FromJSON RunQueryRequest where+        parseJSON+          = withObject "RunQueryRequest"+              (\ o ->+                 RunQueryRequest <$>+                   (o .:? "partitionId") <*> (o .:? "gqlQuery") <*>+                     (o .:? "query")+                     <*> (o .:? "readOptions"))++instance ToJSON RunQueryRequest where+        toJSON RunQueryRequest{..}+          = object+              (catMaybes+                 [("partitionId" .=) <$> _rqrPartitionId,+                  ("gqlQuery" .=) <$> _rqrGqlQuery,+                  ("query" .=) <$> _rqrQuery,+                  ("readOptions" .=) <$> _rqrReadOptions])++--+-- /See:/ 'allocateIdsRequest' smart constructor.+newtype AllocateIdsRequest = AllocateIdsRequest+    { _airKeys :: Maybe [Key]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AllocateIdsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'airKeys'+allocateIdsRequest+    :: AllocateIdsRequest+allocateIdsRequest =+    AllocateIdsRequest+    { _airKeys = Nothing+    }++-- | A list of keys with incomplete key paths to allocate IDs for. No key may+-- be reserved\/read-only.+airKeys :: Lens' AllocateIdsRequest [Key]+airKeys+  = lens _airKeys (\ s a -> s{_airKeys = a}) . _Default+      . _Coerce++instance FromJSON AllocateIdsRequest where+        parseJSON+          = withObject "AllocateIdsRequest"+              (\ o ->+                 AllocateIdsRequest <$> (o .:? "keys" .!= mempty))++instance ToJSON AllocateIdsRequest where+        toJSON AllocateIdsRequest{..}+          = object (catMaybes [("keys" .=) <$> _airKeys])++-- | A filter that merges the multiple other filters using the given+-- operation.+--+-- /See:/ 'compositeFilter' smart constructor.+data CompositeFilter = CompositeFilter+    { _cfOperator :: !(Maybe CompositeFilterOperator)+    , _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:+--+-- * 'cfOperator'+--+-- * 'cfFilters'+compositeFilter+    :: CompositeFilter+compositeFilter =+    CompositeFilter+    { _cfOperator = Nothing+    , _cfFilters = Nothing+    }++-- | The operator for combining multiple filters. Only \"and\" is currently+-- supported.+cfOperator :: Lens' CompositeFilter (Maybe CompositeFilterOperator)+cfOperator+  = lens _cfOperator (\ s a -> s{_cfOperator = 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 .:? "operator") <*> (o .:? "filters" .!= mempty))++instance ToJSON CompositeFilter where+        toJSON CompositeFilter{..}+          = object+              (catMaybes+                 [("operator" .=) <$> _cfOperator,+                  ("filters" .=) <$> _cfFilters])++--+-- /See:/ 'beginTransactionResponse' smart constructor.+data BeginTransactionResponse = BeginTransactionResponse+    { _btrTransaction :: !(Maybe (Textual Word8))+    , _btrHeader      :: !(Maybe ResponseHeader)+    } 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'+--+-- * 'btrHeader'+beginTransactionResponse+    :: BeginTransactionResponse+beginTransactionResponse =+    BeginTransactionResponse+    { _btrTransaction = Nothing+    , _btrHeader = Nothing+    }++-- | The transaction identifier (always present).+btrTransaction :: Lens' BeginTransactionResponse (Maybe Word8)+btrTransaction+  = lens _btrTransaction+      (\ s a -> s{_btrTransaction = a})+      . mapping _Coerce++btrHeader :: Lens' BeginTransactionResponse (Maybe ResponseHeader)+btrHeader+  = lens _btrHeader (\ s a -> s{_btrHeader = a})++instance FromJSON BeginTransactionResponse where+        parseJSON+          = withObject "BeginTransactionResponse"+              (\ o ->+                 BeginTransactionResponse <$>+                   (o .:? "transaction") <*> (o .:? "header"))++instance ToJSON BeginTransactionResponse where+        toJSON BeginTransactionResponse{..}+          = object+              (catMaybes+                 [("transaction" .=) <$> _btrTransaction,+                  ("header" .=) <$> _btrHeader])++--+-- /See:/ 'mutationResult' smart constructor.+data MutationResult = MutationResult+    { _mrInsertAutoIdKeys :: !(Maybe [Key])+    , _mrIndexUpdates     :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MutationResult' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mrInsertAutoIdKeys'+--+-- * 'mrIndexUpdates'+mutationResult+    :: MutationResult+mutationResult =+    MutationResult+    { _mrInsertAutoIdKeys = Nothing+    , _mrIndexUpdates = Nothing+    }++-- | Keys for insertAutoId entities. One per entity from the request, in the+-- same order.+mrInsertAutoIdKeys :: Lens' MutationResult [Key]+mrInsertAutoIdKeys+  = lens _mrInsertAutoIdKeys+      (\ s a -> s{_mrInsertAutoIdKeys = a})+      . _Default+      . _Coerce++-- | Number of index writes.+mrIndexUpdates :: Lens' MutationResult (Maybe Int32)+mrIndexUpdates+  = lens _mrIndexUpdates+      (\ s a -> s{_mrIndexUpdates = a})+      . mapping _Coerce++instance FromJSON MutationResult where+        parseJSON+          = withObject "MutationResult"+              (\ o ->+                 MutationResult <$>+                   (o .:? "insertAutoIdKeys" .!= mempty) <*>+                     (o .:? "indexUpdates"))++instance ToJSON MutationResult where+        toJSON MutationResult{..}+          = object+              (catMaybes+                 [("insertAutoIdKeys" .=) <$> _mrInsertAutoIdKeys,+                  ("indexUpdates" .=) <$> _mrIndexUpdates])++--+-- /See:/ 'allocateIdsResponse' smart constructor.+data AllocateIdsResponse = AllocateIdsResponse+    { _aKeys   :: !(Maybe [Key])+    , _aHeader :: !(Maybe ResponseHeader)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AllocateIdsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aKeys'+--+-- * 'aHeader'+allocateIdsResponse+    :: AllocateIdsResponse+allocateIdsResponse =+    AllocateIdsResponse+    { _aKeys = Nothing+    , _aHeader = Nothing+    }++-- | The keys specified in the request (in the same order), each with its key+-- path completed with a newly allocated ID.+aKeys :: Lens' AllocateIdsResponse [Key]+aKeys+  = lens _aKeys (\ s a -> s{_aKeys = a}) . _Default .+      _Coerce++aHeader :: Lens' AllocateIdsResponse (Maybe ResponseHeader)+aHeader = lens _aHeader (\ s a -> s{_aHeader = a})++instance FromJSON AllocateIdsResponse where+        parseJSON+          = withObject "AllocateIdsResponse"+              (\ o ->+                 AllocateIdsResponse <$>+                   (o .:? "keys" .!= mempty) <*> (o .:? "header"))++instance ToJSON AllocateIdsResponse where+        toJSON AllocateIdsResponse{..}+          = object+              (catMaybes+                 [("keys" .=) <$> _aKeys, ("header" .=) <$> _aHeader])++-- | A GQL query.+--+-- /See:/ 'gqlQuery' smart constructor.+data GqlQuery = GqlQuery+    { _gqAllowLiteral :: !(Maybe Bool)+    , _gqNumberArgs   :: !(Maybe [GqlQueryArg])+    , _gqQueryString  :: !(Maybe Text)+    , _gqNameArgs     :: !(Maybe [GqlQueryArg])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GqlQuery' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gqAllowLiteral'+--+-- * 'gqNumberArgs'+--+-- * 'gqQueryString'+--+-- * 'gqNameArgs'+gqlQuery+    :: GqlQuery+gqlQuery =+    GqlQuery+    { _gqAllowLiteral = Nothing+    , _gqNumberArgs = Nothing+    , _gqQueryString = Nothing+    , _gqNameArgs = Nothing+    }++-- | When false, the query string must not contain a literal.+gqAllowLiteral :: Lens' GqlQuery (Maybe Bool)+gqAllowLiteral+  = lens _gqAllowLiteral+      (\ s a -> s{_gqAllowLiteral = a})++-- | Numbered binding site \'1 references the first numbered argument,+-- effectively using 1-based indexing, rather than the usual 0. A numbered+-- argument must NOT set field GqlQueryArg.name. For each binding site+-- numbered i in query_string, there must be an ith numbered argument. The+-- inverse must also be true.+gqNumberArgs :: Lens' GqlQuery [GqlQueryArg]+gqNumberArgs+  = lens _gqNumberArgs (\ s a -> s{_gqNumberArgs = a})+      . _Default+      . _Coerce++-- | The query string.+gqQueryString :: Lens' GqlQuery (Maybe Text)+gqQueryString+  = lens _gqQueryString+      (\ s a -> s{_gqQueryString = a})++-- | A named argument must set field GqlQueryArg.name. No two named arguments+-- may have the same name. For each non-reserved named binding site in the+-- query string, there must be a named argument with that name, but not+-- necessarily the inverse.+gqNameArgs :: Lens' GqlQuery [GqlQueryArg]+gqNameArgs+  = lens _gqNameArgs (\ s a -> s{_gqNameArgs = a}) .+      _Default+      . _Coerce++instance FromJSON GqlQuery where+        parseJSON+          = withObject "GqlQuery"+              (\ o ->+                 GqlQuery <$>+                   (o .:? "allowLiteral") <*>+                     (o .:? "numberArgs" .!= mempty)+                     <*> (o .:? "queryString")+                     <*> (o .:? "nameArgs" .!= mempty))++instance ToJSON GqlQuery where+        toJSON GqlQuery{..}+          = object+              (catMaybes+                 [("allowLiteral" .=) <$> _gqAllowLiteral,+                  ("numberArgs" .=) <$> _gqNumberArgs,+                  ("queryString" .=) <$> _gqQueryString,+                  ("nameArgs" .=) <$> _gqNameArgs])++--+-- /See:/ 'runQueryResponse' smart constructor.+data RunQueryResponse = RunQueryResponse+    { _rqrBatch  :: !(Maybe QueryResultBatch)+    , _rqrHeader :: !(Maybe ResponseHeader)+    } 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:+--+-- * 'rqrBatch'+--+-- * 'rqrHeader'+runQueryResponse+    :: RunQueryResponse+runQueryResponse =+    RunQueryResponse+    { _rqrBatch = Nothing+    , _rqrHeader = Nothing+    }++-- | A batch of query results (always present).+rqrBatch :: Lens' RunQueryResponse (Maybe QueryResultBatch)+rqrBatch = lens _rqrBatch (\ s a -> s{_rqrBatch = a})++rqrHeader :: Lens' RunQueryResponse (Maybe ResponseHeader)+rqrHeader+  = lens _rqrHeader (\ s a -> s{_rqrHeader = a})++instance FromJSON RunQueryResponse where+        parseJSON+          = withObject "RunQueryResponse"+              (\ o ->+                 RunQueryResponse <$>+                   (o .:? "batch") <*> (o .:? "header"))++instance ToJSON RunQueryResponse where+        toJSON RunQueryResponse{..}+          = object+              (catMaybes+                 [("batch" .=) <$> _rqrBatch,+                  ("header" .=) <$> _rqrHeader])++-- | A message that can hold any of the supported value types and associated+-- metadata.+--+-- /See:/ 'value' smart constructor.+data Value = Value+    { _vKeyValue      :: !(Maybe Key)+    , _vBlobKeyValue  :: !(Maybe Text)+    , _vDateTimeValue :: !(Maybe DateTime')+    , _vIntegerValue  :: !(Maybe (Textual Int64))+    , _vEntityValue   :: !(Maybe Entity)+    , _vDoubleValue   :: !(Maybe (Textual Double))+    , _vStringValue   :: !(Maybe Text)+    , _vListValue     :: !(Maybe [Value])+    , _vIndexed       :: !(Maybe Bool)+    , _vBooleanValue  :: !(Maybe Bool)+    , _vMeaning       :: !(Maybe (Textual Int32))+    , _vBlobValue     :: !(Maybe (Textual Word8))+    } 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:+--+-- * 'vKeyValue'+--+-- * 'vBlobKeyValue'+--+-- * 'vDateTimeValue'+--+-- * 'vIntegerValue'+--+-- * 'vEntityValue'+--+-- * 'vDoubleValue'+--+-- * 'vStringValue'+--+-- * 'vListValue'+--+-- * 'vIndexed'+--+-- * 'vBooleanValue'+--+-- * 'vMeaning'+--+-- * 'vBlobValue'+value+    :: Value+value =+    Value+    { _vKeyValue = Nothing+    , _vBlobKeyValue = Nothing+    , _vDateTimeValue = Nothing+    , _vIntegerValue = Nothing+    , _vEntityValue = Nothing+    , _vDoubleValue = Nothing+    , _vStringValue = Nothing+    , _vListValue = Nothing+    , _vIndexed = Nothing+    , _vBooleanValue = Nothing+    , _vMeaning = Nothing+    , _vBlobValue = Nothing+    }++-- | A key value.+vKeyValue :: Lens' Value (Maybe Key)+vKeyValue+  = lens _vKeyValue (\ s a -> s{_vKeyValue = a})++-- | A blob key value.+vBlobKeyValue :: Lens' Value (Maybe Text)+vBlobKeyValue+  = lens _vBlobKeyValue+      (\ s a -> s{_vBlobKeyValue = a})++-- | A timestamp value.+vDateTimeValue :: Lens' Value (Maybe UTCTime)+vDateTimeValue+  = lens _vDateTimeValue+      (\ s a -> s{_vDateTimeValue = a})+      . mapping _DateTime++-- | An integer value.+vIntegerValue :: Lens' Value (Maybe Int64)+vIntegerValue+  = lens _vIntegerValue+      (\ s a -> s{_vIntegerValue = a})+      . mapping _Coerce++-- | An entity value. May have no key. May have a key with an incomplete key+-- path. May have a reserved\/read-only key.+vEntityValue :: Lens' Value (Maybe Entity)+vEntityValue+  = lens _vEntityValue (\ s a -> s{_vEntityValue = a})++-- | A double value.+vDoubleValue :: Lens' Value (Maybe Double)+vDoubleValue+  = lens _vDoubleValue (\ s a -> s{_vDoubleValue = a})+      . mapping _Coerce++-- | A UTF-8 encoded string value. When indexed is true, may have at most 500+-- characters.+vStringValue :: Lens' Value (Maybe Text)+vStringValue+  = lens _vStringValue (\ s a -> s{_vStringValue = a})++-- | A list value. Cannot contain another list value. A Value instance that+-- sets field list_value must not set field meaning or field indexed.+vListValue :: Lens' Value [Value]+vListValue+  = lens _vListValue (\ s a -> s{_vListValue = a}) .+      _Default+      . _Coerce++-- | If the value should be indexed. The indexed property may be set for a+-- null value. When indexed is true, stringValue is limited to 500+-- characters and the blob value is limited to 500 bytes. Input values by+-- default have indexed set to true; however, you can explicitly set+-- indexed to true if you want. (An output value never has indexed+-- explicitly set to true.) If a value is itself an entity, it cannot have+-- indexed set to true.+vIndexed :: Lens' Value (Maybe Bool)+vIndexed = lens _vIndexed (\ s a -> s{_vIndexed = a})++-- | A boolean value.+vBooleanValue :: Lens' Value (Maybe Bool)+vBooleanValue+  = lens _vBooleanValue+      (\ s a -> s{_vBooleanValue = a})++-- | The meaning field is reserved and should not be used.+vMeaning :: Lens' Value (Maybe Int32)+vMeaning+  = lens _vMeaning (\ s a -> s{_vMeaning = a}) .+      mapping _Coerce++-- | A blob value. May be a maximum of 1,000,000 bytes. When indexed is true,+-- may have at most 500 bytes.+vBlobValue :: Lens' Value (Maybe Word8)+vBlobValue+  = lens _vBlobValue (\ s a -> s{_vBlobValue = a}) .+      mapping _Coerce++instance FromJSON Value where+        parseJSON+          = withObject "Value"+              (\ o ->+                 Value <$>+                   (o .:? "keyValue") <*> (o .:? "blobKeyValue") <*>+                     (o .:? "dateTimeValue")+                     <*> (o .:? "integerValue")+                     <*> (o .:? "entityValue")+                     <*> (o .:? "doubleValue")+                     <*> (o .:? "stringValue")+                     <*> (o .:? "listValue" .!= mempty)+                     <*> (o .:? "indexed")+                     <*> (o .:? "booleanValue")+                     <*> (o .:? "meaning")+                     <*> (o .:? "blobValue"))++instance ToJSON Value where+        toJSON Value{..}+          = object+              (catMaybes+                 [("keyValue" .=) <$> _vKeyValue,+                  ("blobKeyValue" .=) <$> _vBlobKeyValue,+                  ("dateTimeValue" .=) <$> _vDateTimeValue,+                  ("integerValue" .=) <$> _vIntegerValue,+                  ("entityValue" .=) <$> _vEntityValue,+                  ("doubleValue" .=) <$> _vDoubleValue,+                  ("stringValue" .=) <$> _vStringValue,+                  ("listValue" .=) <$> _vListValue,+                  ("indexed" .=) <$> _vIndexed,+                  ("booleanValue" .=) <$> _vBooleanValue,+                  ("meaning" .=) <$> _vMeaning,+                  ("blobValue" .=) <$> _vBlobValue])++--+-- /See:/ 'lookupRequest' smart constructor.+data LookupRequest = LookupRequest+    { _lrKeys        :: !(Maybe [Key])+    , _lrReadOptions :: !(Maybe ReadOptions)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LookupRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrKeys'+--+-- * 'lrReadOptions'+lookupRequest+    :: LookupRequest+lookupRequest =+    LookupRequest+    { _lrKeys = Nothing+    , _lrReadOptions = Nothing+    }++-- | Keys of entities to look up from the datastore.+lrKeys :: Lens' LookupRequest [Key]+lrKeys+  = lens _lrKeys (\ s a -> s{_lrKeys = a}) . _Default .+      _Coerce++-- | Options for this lookup request. Optional.+lrReadOptions :: Lens' LookupRequest (Maybe ReadOptions)+lrReadOptions+  = lens _lrReadOptions+      (\ s a -> s{_lrReadOptions = a})++instance FromJSON LookupRequest where+        parseJSON+          = withObject "LookupRequest"+              (\ o ->+                 LookupRequest <$>+                   (o .:? "keys" .!= mempty) <*> (o .:? "readOptions"))++instance ToJSON LookupRequest where+        toJSON LookupRequest{..}+          = object+              (catMaybes+                 [("keys" .=) <$> _lrKeys,+                  ("readOptions" .=) <$> _lrReadOptions])++-- | A set of changes to apply.+--+-- /See:/ 'mutation' smart constructor.+data Mutation = Mutation+    { _mInsert       :: !(Maybe [Entity])+    , _mForce        :: !(Maybe Bool)+    , _mInsertAutoId :: !(Maybe [Entity])+    , _mUpsert       :: !(Maybe [Entity])+    , _mDelete       :: !(Maybe [Key])+    , _mUpdate       :: !(Maybe [Entity])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Mutation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mInsert'+--+-- * 'mForce'+--+-- * 'mInsertAutoId'+--+-- * 'mUpsert'+--+-- * 'mDelete'+--+-- * 'mUpdate'+mutation+    :: Mutation+mutation =+    Mutation+    { _mInsert = Nothing+    , _mForce = Nothing+    , _mInsertAutoId = Nothing+    , _mUpsert = Nothing+    , _mDelete = Nothing+    , _mUpdate = Nothing+    }++-- | Entities to insert. Each inserted entity\'s key must have a complete+-- path and must not be reserved\/read-only.+mInsert :: Lens' Mutation [Entity]+mInsert+  = lens _mInsert (\ s a -> s{_mInsert = a}) . _Default+      . _Coerce++-- | Ignore a user specified read-only period. Optional.+mForce :: Lens' Mutation (Maybe Bool)+mForce = lens _mForce (\ s a -> s{_mForce = a})++-- | Insert entities with a newly allocated ID. Each inserted entity\'s key+-- must omit the final identifier in its path and must not be+-- reserved\/read-only.+mInsertAutoId :: Lens' Mutation [Entity]+mInsertAutoId+  = lens _mInsertAutoId+      (\ s a -> s{_mInsertAutoId = a})+      . _Default+      . _Coerce++-- | Entities to upsert. Each upserted entity\'s key must have a complete+-- path and must not be reserved\/read-only.+mUpsert :: Lens' Mutation [Entity]+mUpsert+  = lens _mUpsert (\ s a -> s{_mUpsert = a}) . _Default+      . _Coerce++-- | Keys of entities to delete. Each key must have a complete key path and+-- must not be reserved\/read-only.+mDelete :: Lens' Mutation [Key]+mDelete+  = lens _mDelete (\ s a -> s{_mDelete = a}) . _Default+      . _Coerce++-- | Entities to update. Each updated entity\'s key must have a complete path+-- and must not be reserved\/read-only.+mUpdate :: Lens' Mutation [Entity]+mUpdate+  = lens _mUpdate (\ s a -> s{_mUpdate = a}) . _Default+      . _Coerce++instance FromJSON Mutation where+        parseJSON+          = withObject "Mutation"+              (\ o ->+                 Mutation <$>+                   (o .:? "insert" .!= mempty) <*> (o .:? "force") <*>+                     (o .:? "insertAutoId" .!= mempty)+                     <*> (o .:? "upsert" .!= mempty)+                     <*> (o .:? "delete" .!= mempty)+                     <*> (o .:? "update" .!= mempty))++instance ToJSON Mutation where+        toJSON Mutation{..}+          = object+              (catMaybes+                 [("insert" .=) <$> _mInsert,+                  ("force" .=) <$> _mForce,+                  ("insertAutoId" .=) <$> _mInsertAutoId,+                  ("upsert" .=) <$> _mUpsert,+                  ("delete" .=) <$> _mDelete,+                  ("update" .=) <$> _mUpdate])++--+-- /See:/ 'responseHeader' smart constructor.+newtype ResponseHeader = ResponseHeader+    { _rhKind :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ResponseHeader' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rhKind'+responseHeader+    :: ResponseHeader+responseHeader =+    ResponseHeader+    { _rhKind = "datastore#responseHeader"+    }++-- | Identifies what kind of resource this is. Value: the fixed string+-- \"datastore#responseHeader\".+rhKind :: Lens' ResponseHeader Text+rhKind = lens _rhKind (\ s a -> s{_rhKind = a})++instance FromJSON ResponseHeader where+        parseJSON+          = withObject "ResponseHeader"+              (\ o ->+                 ResponseHeader <$>+                   (o .:? "kind" .!= "datastore#responseHeader"))++instance ToJSON ResponseHeader where+        toJSON ResponseHeader{..}+          = object (catMaybes [Just ("kind" .= _rhKind)])++-- | A (kind, ID\/name) pair used to construct a key path. At most one of+-- name or ID may be set. If either is set, the element is complete. If+-- neither is set, the element is incomplete.+--+-- /See:/ 'keyPathElement' smart constructor.+data KeyPathElement = KeyPathElement+    { _kpeKind :: !(Maybe Text)+    , _kpeName :: !(Maybe Text)+    , _kpeId   :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'KeyPathElement' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'kpeKind'+--+-- * 'kpeName'+--+-- * 'kpeId'+keyPathElement+    :: KeyPathElement+keyPathElement =+    KeyPathElement+    { _kpeKind = Nothing+    , _kpeName = Nothing+    , _kpeId = Nothing+    }++-- | The kind of the entity. A kind matching regex \"__.*__\" is+-- reserved\/read-only. A kind must not contain more than 500 characters.+-- Cannot be \"\".+kpeKind :: Lens' KeyPathElement (Maybe Text)+kpeKind = lens _kpeKind (\ s a -> s{_kpeKind = a})++-- | The name of the entity. A name matching regex \"__.*__\" is+-- reserved\/read-only. A name must not be more than 500 characters. Cannot+-- be \"\".+kpeName :: Lens' KeyPathElement (Maybe Text)+kpeName = lens _kpeName (\ s a -> s{_kpeName = a})++-- | The ID of the entity. Never equal to zero. Values less than zero are+-- discouraged and will not be supported in the future.+kpeId :: Lens' KeyPathElement (Maybe Int64)+kpeId+  = lens _kpeId (\ s a -> s{_kpeId = a}) .+      mapping _Coerce++instance FromJSON KeyPathElement where+        parseJSON+          = withObject "KeyPathElement"+              (\ o ->+                 KeyPathElement <$>+                   (o .:? "kind") <*> (o .:? "name") <*> (o .:? "id"))++instance ToJSON KeyPathElement where+        toJSON KeyPathElement{..}+          = object+              (catMaybes+                 [("kind" .=) <$> _kpeKind, ("name" .=) <$> _kpeName,+                  ("id" .=) <$> _kpeId])++-- | A reference to a property relative to the kind expressions.+--+-- /See:/ 'propertyReference' smart constructor.+newtype PropertyReference = PropertyReference+    { _prName :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PropertyReference' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'prName'+propertyReference+    :: PropertyReference+propertyReference =+    PropertyReference+    { _prName = Nothing+    }++-- | The name of the property.+prName :: Lens' PropertyReference (Maybe Text)+prName = lens _prName (\ s a -> s{_prName = a})++instance FromJSON PropertyReference where+        parseJSON+          = withObject "PropertyReference"+              (\ o -> PropertyReference <$> (o .:? "name"))++instance ToJSON PropertyReference where+        toJSON PropertyReference{..}+          = object (catMaybes [("name" .=) <$> _prName])++-- | A binding argument for a GQL query.+--+-- /See:/ 'gqlQueryArg' smart constructor.+data GqlQueryArg = GqlQueryArg+    { _gqaCursor :: !(Maybe (Textual Word8))+    , _gqaValue  :: !(Maybe Value)+    , _gqaName   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GqlQueryArg' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gqaCursor'+--+-- * 'gqaValue'+--+-- * 'gqaName'+gqlQueryArg+    :: GqlQueryArg+gqlQueryArg =+    GqlQueryArg+    { _gqaCursor = Nothing+    , _gqaValue = Nothing+    , _gqaName = Nothing+    }++gqaCursor :: Lens' GqlQueryArg (Maybe Word8)+gqaCursor+  = lens _gqaCursor (\ s a -> s{_gqaCursor = a}) .+      mapping _Coerce++gqaValue :: Lens' GqlQueryArg (Maybe Value)+gqaValue = lens _gqaValue (\ s a -> s{_gqaValue = a})++-- | Must match regex \"[A-Za-z_$][A-Za-z_$0-9]*\". Must not match regex+-- \"__.*__\". Must not be \"\".+gqaName :: Lens' GqlQueryArg (Maybe Text)+gqaName = lens _gqaName (\ s a -> s{_gqaName = a})++instance FromJSON GqlQueryArg where+        parseJSON+          = withObject "GqlQueryArg"+              (\ o ->+                 GqlQueryArg <$>+                   (o .:? "cursor") <*> (o .:? "value") <*>+                     (o .:? "name"))++instance ToJSON GqlQueryArg where+        toJSON GqlQueryArg{..}+          = object+              (catMaybes+                 [("cursor" .=) <$> _gqaCursor,+                  ("value" .=) <$> _gqaValue,+                  ("name" .=) <$> _gqaName])++-- | A unique identifier for an entity.+--+-- /See:/ 'key' smart constructor.+data Key = Key+    { _kPartitionId :: !(Maybe PartitionId)+    , _kPath        :: !(Maybe [KeyPathElement])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Key' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'kPartitionId'+--+-- * 'kPath'+key+    :: Key+key =+    Key+    { _kPartitionId = Nothing+    , _kPath = Nothing+    }++-- | Entities are partitioned into subsets, currently identified by a dataset+-- (usually implicitly specified by the project) and namespace ID. Queries+-- are scoped to a single partition.+kPartitionId :: Lens' Key (Maybe PartitionId)+kPartitionId+  = lens _kPartitionId (\ s a -> s{_kPartitionId = a})++-- | The entity path. An entity path consists of one or more elements+-- composed of a kind and a string or numerical identifier, which identify+-- entities. The first element identifies a root entity, the second element+-- identifies a child of the root entity, the third element a child of the+-- second entity, and so forth. The entities identified by all prefixes of+-- the path are called the element\'s ancestors. An entity path is always+-- fully complete: ALL of the entity\'s ancestors are required to be in the+-- path along with the entity identifier itself. The only exception is that+-- in some documented cases, the identifier in the last path element (for+-- the entity) itself may be omitted. A path can never be empty. The path+-- can have at most 100 elements.+kPath :: Lens' Key [KeyPathElement]+kPath+  = lens _kPath (\ s a -> s{_kPath = a}) . _Default .+      _Coerce++instance FromJSON Key where+        parseJSON+          = withObject "Key"+              (\ o ->+                 Key <$>+                   (o .:? "partitionId") <*> (o .:? "path" .!= mempty))++instance ToJSON Key where+        toJSON Key{..}+          = object+              (catMaybes+                 [("partitionId" .=) <$> _kPartitionId,+                  ("path" .=) <$> _kPath])++-- | A filter on a specific property.+--+-- /See:/ 'propertyFilter' smart constructor.+data PropertyFilter = PropertyFilter+    { _pfProperty :: !(Maybe PropertyReference)+    , _pfOperator :: !(Maybe PropertyFilterOperator)+    , _pfValue    :: !(Maybe Value)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PropertyFilter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pfProperty'+--+-- * 'pfOperator'+--+-- * 'pfValue'+propertyFilter+    :: PropertyFilter+propertyFilter =+    PropertyFilter+    { _pfProperty = Nothing+    , _pfOperator = Nothing+    , _pfValue = Nothing+    }++-- | The property to filter by.+pfProperty :: Lens' PropertyFilter (Maybe PropertyReference)+pfProperty+  = lens _pfProperty (\ s a -> s{_pfProperty = a})++-- | The operator to filter by. One of lessThan, lessThanOrEqual,+-- greaterThan, greaterThanOrEqual, equal, or hasAncestor.+pfOperator :: Lens' PropertyFilter (Maybe PropertyFilterOperator)+pfOperator+  = lens _pfOperator (\ s a -> s{_pfOperator = a})++-- | The value to compare the property to.+pfValue :: Lens' PropertyFilter (Maybe Value)+pfValue = lens _pfValue (\ s a -> s{_pfValue = a})++instance FromJSON PropertyFilter where+        parseJSON+          = withObject "PropertyFilter"+              (\ o ->+                 PropertyFilter <$>+                   (o .:? "property") <*> (o .:? "operator") <*>+                     (o .:? "value"))++instance ToJSON PropertyFilter where+        toJSON PropertyFilter{..}+          = object+              (catMaybes+                 [("property" .=) <$> _pfProperty,+                  ("operator" .=) <$> _pfOperator,+                  ("value" .=) <$> _pfValue])++-- | A query.+--+-- /See:/ 'query' smart constructor.+data Query = Query+    { _qGroupBy     :: !(Maybe [PropertyReference])+    , _qStartCursor :: !(Maybe (Textual Word8))+    , _qOffSet      :: !(Maybe (Textual Int32))+    , _qEndCursor   :: !(Maybe (Textual Word8))+    , _qLimit       :: !(Maybe (Textual Int32))+    , _qProjection  :: !(Maybe [PropertyExpression])+    , _qFilter      :: !(Maybe Filter)+    , _qKinds       :: !(Maybe [KindExpression])+    , _qOrder       :: !(Maybe [PropertyOrder])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Query' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'qGroupBy'+--+-- * 'qStartCursor'+--+-- * 'qOffSet'+--+-- * 'qEndCursor'+--+-- * 'qLimit'+--+-- * 'qProjection'+--+-- * 'qFilter'+--+-- * 'qKinds'+--+-- * 'qOrder'+query+    :: Query+query =+    Query+    { _qGroupBy = Nothing+    , _qStartCursor = Nothing+    , _qOffSet = Nothing+    , _qEndCursor = Nothing+    , _qLimit = Nothing+    , _qProjection = Nothing+    , _qFilter = Nothing+    , _qKinds = Nothing+    , _qOrder = Nothing+    }++-- | The properties to group by (if empty, no grouping is applied to the+-- result set).+qGroupBy :: Lens' Query [PropertyReference]+qGroupBy+  = lens _qGroupBy (\ s a -> s{_qGroupBy = a}) .+      _Default+      . _Coerce++-- | A starting point for the query results. Optional. Query cursors are+-- returned in query result batches.+qStartCursor :: Lens' Query (Maybe Word8)+qStartCursor+  = lens _qStartCursor (\ s a -> s{_qStartCursor = a})+      . mapping _Coerce++-- | The number of results to skip. Applies before limit, but after all other+-- constraints (optional, defaults to 0).+qOffSet :: Lens' Query (Maybe Int32)+qOffSet+  = lens _qOffSet (\ s a -> s{_qOffSet = a}) .+      mapping _Coerce++-- | An ending point for the query results. Optional. Query cursors are+-- returned in query result batches.+qEndCursor :: Lens' Query (Maybe Word8)+qEndCursor+  = lens _qEndCursor (\ s a -> s{_qEndCursor = a}) .+      mapping _Coerce++-- | The maximum number of results to return. Applies after all other+-- constraints. Optional.+qLimit :: Lens' Query (Maybe Int32)+qLimit+  = lens _qLimit (\ s a -> s{_qLimit = a}) .+      mapping _Coerce++-- | The projection to return. If not set the entire entity is returned.+qProjection :: Lens' Query [PropertyExpression]+qProjection+  = lens _qProjection (\ s a -> s{_qProjection = a}) .+      _Default+      . _Coerce++-- | The filter to apply (optional).+qFilter :: Lens' Query (Maybe Filter)+qFilter = lens _qFilter (\ s a -> s{_qFilter = a})++-- | The kinds to query (if empty, returns entities from all kinds).+qKinds :: Lens' Query [KindExpression]+qKinds+  = lens _qKinds (\ s a -> s{_qKinds = a}) . _Default .+      _Coerce++-- | The order to apply to the query results (if empty, order is+-- unspecified).+qOrder :: Lens' Query [PropertyOrder]+qOrder+  = lens _qOrder (\ s a -> s{_qOrder = a}) . _Default .+      _Coerce++instance FromJSON Query where+        parseJSON+          = withObject "Query"+              (\ o ->+                 Query <$>+                   (o .:? "groupBy" .!= mempty) <*>+                     (o .:? "startCursor")+                     <*> (o .:? "offset")+                     <*> (o .:? "endCursor")+                     <*> (o .:? "limit")+                     <*> (o .:? "projection" .!= mempty)+                     <*> (o .:? "filter")+                     <*> (o .:? "kinds" .!= mempty)+                     <*> (o .:? "order" .!= mempty))++instance ToJSON Query where+        toJSON Query{..}+          = object+              (catMaybes+                 [("groupBy" .=) <$> _qGroupBy,+                  ("startCursor" .=) <$> _qStartCursor,+                  ("offset" .=) <$> _qOffSet,+                  ("endCursor" .=) <$> _qEndCursor,+                  ("limit" .=) <$> _qLimit,+                  ("projection" .=) <$> _qProjection,+                  ("filter" .=) <$> _qFilter, ("kinds" .=) <$> _qKinds,+                  ("order" .=) <$> _qOrder])++-- | The result of fetching an entity from the datastore.+--+-- /See:/ 'entityResult' smart constructor.+newtype EntityResult = EntityResult+    { _erEntity :: Maybe Entity+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EntityResult' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'erEntity'+entityResult+    :: EntityResult+entityResult =+    EntityResult+    { _erEntity = Nothing+    }++-- | The resulting entity.+erEntity :: Lens' EntityResult (Maybe Entity)+erEntity = lens _erEntity (\ s a -> s{_erEntity = a})++instance FromJSON EntityResult where+        parseJSON+          = withObject "EntityResult"+              (\ o -> EntityResult <$> (o .:? "entity"))++instance ToJSON EntityResult where+        toJSON EntityResult{..}+          = object (catMaybes [("entity" .=) <$> _erEntity])++--+-- /See:/ 'commitResponse' smart constructor.+data CommitResponse = CommitResponse+    { _crMutationResult :: !(Maybe MutationResult)+    , _crHeader         :: !(Maybe ResponseHeader)+    } 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:+--+-- * 'crMutationResult'+--+-- * 'crHeader'+commitResponse+    :: CommitResponse+commitResponse =+    CommitResponse+    { _crMutationResult = Nothing+    , _crHeader = Nothing+    }++-- | The result of performing the mutation (if any).+crMutationResult :: Lens' CommitResponse (Maybe MutationResult)+crMutationResult+  = lens _crMutationResult+      (\ s a -> s{_crMutationResult = a})++crHeader :: Lens' CommitResponse (Maybe ResponseHeader)+crHeader = lens _crHeader (\ s a -> s{_crHeader = a})++instance FromJSON CommitResponse where+        parseJSON+          = withObject "CommitResponse"+              (\ o ->+                 CommitResponse <$>+                   (o .:? "mutationResult") <*> (o .:? "header"))++instance ToJSON CommitResponse where+        toJSON CommitResponse{..}+          = object+              (catMaybes+                 [("mutationResult" .=) <$> _crMutationResult,+                  ("header" .=) <$> _crHeader])++-- | A representation of a kind.+--+-- /See:/ 'kindExpression' smart constructor.+newtype KindExpression = KindExpression+    { _keName :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'KindExpression' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'keName'+kindExpression+    :: KindExpression+kindExpression =+    KindExpression+    { _keName = Nothing+    }++-- | The name of the kind.+keName :: Lens' KindExpression (Maybe Text)+keName = lens _keName (\ s a -> s{_keName = a})++instance FromJSON KindExpression where+        parseJSON+          = withObject "KindExpression"+              (\ o -> KindExpression <$> (o .:? "name"))++instance ToJSON KindExpression where+        toJSON KindExpression{..}+          = object (catMaybes [("name" .=) <$> _keName])++--+-- /See:/ 'readOptions' smart constructor.+data ReadOptions = ReadOptions+    { _roReadConsistency :: !(Maybe ReadOptionsReadConsistency)+    , _roTransaction     :: !(Maybe (Textual Word8))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ReadOptions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'roReadConsistency'+--+-- * 'roTransaction'+readOptions+    :: ReadOptions+readOptions =+    ReadOptions+    { _roReadConsistency = Nothing+    , _roTransaction = Nothing+    }++-- | The read consistency to use. One of default, strong, or eventual. Cannot+-- be set when transaction is set. Lookup and ancestor queries default to+-- strong, global queries default to eventual and cannot be set to strong.+-- Optional. Default is default.+roReadConsistency :: Lens' ReadOptions (Maybe ReadOptionsReadConsistency)+roReadConsistency+  = lens _roReadConsistency+      (\ s a -> s{_roReadConsistency = a})++-- | The transaction to use. Optional.+roTransaction :: Lens' ReadOptions (Maybe Word8)+roTransaction+  = lens _roTransaction+      (\ s a -> s{_roTransaction = a})+      . mapping _Coerce++instance FromJSON ReadOptions where+        parseJSON+          = withObject "ReadOptions"+              (\ o ->+                 ReadOptions <$>+                   (o .:? "readConsistency") <*> (o .:? "transaction"))++instance ToJSON ReadOptions where+        toJSON ReadOptions{..}+          = object+              (catMaybes+                 [("readConsistency" .=) <$> _roReadConsistency,+                  ("transaction" .=) <$> _roTransaction])++--+-- /See:/ 'rollbackResponse' smart constructor.+newtype RollbackResponse = RollbackResponse+    { _rrHeader :: Maybe ResponseHeader+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RollbackResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rrHeader'+rollbackResponse+    :: RollbackResponse+rollbackResponse =+    RollbackResponse+    { _rrHeader = Nothing+    }++rrHeader :: Lens' RollbackResponse (Maybe ResponseHeader)+rrHeader = lens _rrHeader (\ s a -> s{_rrHeader = a})++instance FromJSON RollbackResponse where+        parseJSON+          = withObject "RollbackResponse"+              (\ o -> RollbackResponse <$> (o .:? "header"))++instance ToJSON RollbackResponse where+        toJSON RollbackResponse{..}+          = object (catMaybes [("header" .=) <$> _rrHeader])++-- | A representation of a property in a projection.+--+-- /See:/ 'propertyExpression' smart constructor.+data PropertyExpression = PropertyExpression+    { _peProperty            :: !(Maybe PropertyReference)+    , _peAggregationFunction :: !(Maybe PropertyExpressionAggregationFunction)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PropertyExpression' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'peProperty'+--+-- * 'peAggregationFunction'+propertyExpression+    :: PropertyExpression+propertyExpression =+    PropertyExpression+    { _peProperty = Nothing+    , _peAggregationFunction = Nothing+    }++-- | The property to project.+peProperty :: Lens' PropertyExpression (Maybe PropertyReference)+peProperty+  = lens _peProperty (\ s a -> s{_peProperty = a})++-- | The aggregation function to apply to the property. Optional. Can only be+-- used when grouping by at least one property. Must then be set on all+-- properties in the projection that are not being grouped by. Aggregation+-- functions: first selects the first result as determined by the query\'s+-- order.+peAggregationFunction :: Lens' PropertyExpression (Maybe PropertyExpressionAggregationFunction)+peAggregationFunction+  = lens _peAggregationFunction+      (\ s a -> s{_peAggregationFunction = a})++instance FromJSON PropertyExpression where+        parseJSON+          = withObject "PropertyExpression"+              (\ o ->+                 PropertyExpression <$>+                   (o .:? "property") <*> (o .:? "aggregationFunction"))++instance ToJSON PropertyExpression where+        toJSON PropertyExpression{..}+          = object+              (catMaybes+                 [("property" .=) <$> _peProperty,+                  ("aggregationFunction" .=) <$>+                    _peAggregationFunction])++-- | A holder for any type of filter. Exactly one field should be specified.+--+-- /See:/ 'filter'' smart constructor.+data Filter = Filter+    { _fCompositeFilter :: !(Maybe CompositeFilter)+    , _fPropertyFilter  :: !(Maybe PropertyFilter)+    } 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'+--+-- * 'fPropertyFilter'+filter'+    :: Filter+filter' =+    Filter+    { _fCompositeFilter = Nothing+    , _fPropertyFilter = Nothing+    }++-- | A composite filter.+fCompositeFilter :: Lens' Filter (Maybe CompositeFilter)+fCompositeFilter+  = lens _fCompositeFilter+      (\ s a -> s{_fCompositeFilter = a})++-- | A filter on a property.+fPropertyFilter :: Lens' Filter (Maybe PropertyFilter)+fPropertyFilter+  = lens _fPropertyFilter+      (\ s a -> s{_fPropertyFilter = a})++instance FromJSON Filter where+        parseJSON+          = withObject "Filter"+              (\ o ->+                 Filter <$>+                   (o .:? "compositeFilter") <*>+                     (o .:? "propertyFilter"))++instance ToJSON Filter where+        toJSON Filter{..}+          = object+              (catMaybes+                 [("compositeFilter" .=) <$> _fCompositeFilter,+                  ("propertyFilter" .=) <$> _fPropertyFilter])++--+-- /See:/ 'commitRequest' smart constructor.+data CommitRequest = CommitRequest+    { _crMode           :: !(Maybe CommitRequestMode)+    , _crMutation       :: !(Maybe Mutation)+    , _crTransaction    :: !(Maybe (Textual Word8))+    , _crIgnoreReadOnly :: !(Maybe Bool)+    } 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:+--+-- * 'crMode'+--+-- * 'crMutation'+--+-- * 'crTransaction'+--+-- * 'crIgnoreReadOnly'+commitRequest+    :: CommitRequest+commitRequest =+    CommitRequest+    { _crMode = Nothing+    , _crMutation = Nothing+    , _crTransaction = Nothing+    , _crIgnoreReadOnly = Nothing+    }++-- | The type of commit to perform. Either TRANSACTIONAL or+-- NON_TRANSACTIONAL.+crMode :: Lens' CommitRequest (Maybe CommitRequestMode)+crMode = lens _crMode (\ s a -> s{_crMode = a})++-- | The mutation to perform. Optional.+crMutation :: Lens' CommitRequest (Maybe Mutation)+crMutation+  = lens _crMutation (\ s a -> s{_crMutation = a})++-- | The transaction identifier, returned by a call to beginTransaction. Must+-- be set when mode is TRANSACTIONAL.+crTransaction :: Lens' CommitRequest (Maybe Word8)+crTransaction+  = lens _crTransaction+      (\ s a -> s{_crTransaction = a})+      . mapping _Coerce++crIgnoreReadOnly :: Lens' CommitRequest (Maybe Bool)+crIgnoreReadOnly+  = lens _crIgnoreReadOnly+      (\ s a -> s{_crIgnoreReadOnly = a})++instance FromJSON CommitRequest where+        parseJSON+          = withObject "CommitRequest"+              (\ o ->+                 CommitRequest <$>+                   (o .:? "mode") <*> (o .:? "mutation") <*>+                     (o .:? "transaction")+                     <*> (o .:? "ignoreReadOnly"))++instance ToJSON CommitRequest where+        toJSON CommitRequest{..}+          = object+              (catMaybes+                 [("mode" .=) <$> _crMode,+                  ("mutation" .=) <$> _crMutation,+                  ("transaction" .=) <$> _crTransaction,+                  ("ignoreReadOnly" .=) <$> _crIgnoreReadOnly])++-- | An entity.+--+-- /See:/ 'entity' smart constructor.+data Entity = Entity+    { _eKey        :: !(Maybe Key)+    , _eProperties :: !(Maybe EntityProperties)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Entity' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eKey'+--+-- * 'eProperties'+entity+    :: Entity+entity =+    Entity+    { _eKey = Nothing+    , _eProperties = Nothing+    }++-- | The entity\'s key. An entity must have a key, unless otherwise+-- documented (for example, an entity in Value.entityValue may have no+-- key). An entity\'s kind is its key\'s path\'s last element\'s kind, or+-- null if it has no key.+eKey :: Lens' Entity (Maybe Key)+eKey = lens _eKey (\ s a -> s{_eKey = a})++-- | The entity\'s properties.+eProperties :: Lens' Entity (Maybe EntityProperties)+eProperties+  = lens _eProperties (\ s a -> s{_eProperties = a})++instance FromJSON Entity where+        parseJSON+          = withObject "Entity"+              (\ o ->+                 Entity <$> (o .:? "key") <*> (o .:? "properties"))++instance ToJSON Entity where+        toJSON Entity{..}+          = object+              (catMaybes+                 [("key" .=) <$> _eKey,+                  ("properties" .=) <$> _eProperties])++--+-- /See:/ 'lookupResponse' smart constructor.+data LookupResponse = LookupResponse+    { _lrDeferred :: !(Maybe [Key])+    , _lrFound    :: !(Maybe [EntityResult])+    , _lrMissing  :: !(Maybe [EntityResult])+    , _lrHeader   :: !(Maybe ResponseHeader)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LookupResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrDeferred'+--+-- * 'lrFound'+--+-- * 'lrMissing'+--+-- * 'lrHeader'+lookupResponse+    :: LookupResponse+lookupResponse =+    LookupResponse+    { _lrDeferred = Nothing+    , _lrFound = Nothing+    , _lrMissing = Nothing+    , _lrHeader = Nothing+    }++-- | A list of keys that were not looked up due to resource constraints.+lrDeferred :: Lens' LookupResponse [Key]+lrDeferred+  = lens _lrDeferred (\ s a -> s{_lrDeferred = a}) .+      _Default+      . _Coerce++-- | Entities found.+lrFound :: Lens' LookupResponse [EntityResult]+lrFound+  = lens _lrFound (\ s a -> s{_lrFound = a}) . _Default+      . _Coerce++-- | Entities not found, with only the key populated.+lrMissing :: Lens' LookupResponse [EntityResult]+lrMissing+  = lens _lrMissing (\ s a -> s{_lrMissing = a}) .+      _Default+      . _Coerce++lrHeader :: Lens' LookupResponse (Maybe ResponseHeader)+lrHeader = lens _lrHeader (\ s a -> s{_lrHeader = a})++instance FromJSON LookupResponse where+        parseJSON+          = withObject "LookupResponse"+              (\ o ->+                 LookupResponse <$>+                   (o .:? "deferred" .!= mempty) <*>+                     (o .:? "found" .!= mempty)+                     <*> (o .:? "missing" .!= mempty)+                     <*> (o .:? "header"))++instance ToJSON LookupResponse where+        toJSON LookupResponse{..}+          = object+              (catMaybes+                 [("deferred" .=) <$> _lrDeferred,+                  ("found" .=) <$> _lrFound,+                  ("missing" .=) <$> _lrMissing,+                  ("header" .=) <$> _lrHeader])++-- | The desired order for a specific property.+--+-- /See:/ 'propertyOrder' smart constructor.+data PropertyOrder = PropertyOrder+    { _poProperty  :: !(Maybe PropertyReference)+    , _poDirection :: !(Maybe PropertyOrderDirection)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PropertyOrder' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'poProperty'+--+-- * 'poDirection'+propertyOrder+    :: PropertyOrder+propertyOrder =+    PropertyOrder+    { _poProperty = Nothing+    , _poDirection = Nothing+    }++-- | The property to order by.+poProperty :: Lens' PropertyOrder (Maybe PropertyReference)+poProperty+  = lens _poProperty (\ s a -> s{_poProperty = a})++-- | The direction to order by. One of ascending or descending. Optional,+-- defaults to ascending.+poDirection :: Lens' PropertyOrder (Maybe PropertyOrderDirection)+poDirection+  = lens _poDirection (\ s a -> s{_poDirection = a})++instance FromJSON PropertyOrder where+        parseJSON+          = withObject "PropertyOrder"+              (\ o ->+                 PropertyOrder <$>+                   (o .:? "property") <*> (o .:? "direction"))++instance ToJSON PropertyOrder where+        toJSON PropertyOrder{..}+          = object+              (catMaybes+                 [("property" .=) <$> _poProperty,+                  ("direction" .=) <$> _poDirection])
+ gen/Network/Google/Datastore/Types/Sum.hs view
@@ -0,0 +1,301 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Datastore.Types.Sum+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Datastore.Types.Sum where++import           Network.Google.Prelude++-- | The direction to order by. One of ascending or descending. Optional,+-- defaults to ascending.+data PropertyOrderDirection+    = Ascending+      -- ^ @ASCENDING@+    | Descending+      -- ^ @DESCENDING@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable PropertyOrderDirection++instance FromText PropertyOrderDirection where+    fromText = \case+        "ASCENDING" -> Just Ascending+        "DESCENDING" -> Just Descending+        _ -> Nothing++instance ToText PropertyOrderDirection where+    toText = \case+        Ascending -> "ASCENDING"+        Descending -> "DESCENDING"++instance FromJSON PropertyOrderDirection where+    parseJSON = parseJSONText "PropertyOrderDirection"++instance ToJSON PropertyOrderDirection where+    toJSON = toJSONText++-- | The result type for every entity in entityResults. full for full+-- entities, projection for entities with only projected properties,+-- keyOnly for entities with only a key.+data QueryResultBatchEntityResultType+    = Full+      -- ^ @FULL@+    | KeyOnly+      -- ^ @KEY_ONLY@+    | Projection+      -- ^ @PROJECTION@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable QueryResultBatchEntityResultType++instance FromText QueryResultBatchEntityResultType where+    fromText = \case+        "FULL" -> Just Full+        "KEY_ONLY" -> Just KeyOnly+        "PROJECTION" -> Just Projection+        _ -> Nothing++instance ToText QueryResultBatchEntityResultType where+    toText = \case+        Full -> "FULL"+        KeyOnly -> "KEY_ONLY"+        Projection -> "PROJECTION"++instance FromJSON QueryResultBatchEntityResultType where+    parseJSON = parseJSONText "QueryResultBatchEntityResultType"++instance ToJSON QueryResultBatchEntityResultType where+    toJSON = toJSONText++-- | The operator for combining multiple filters. Only \"and\" is currently+-- supported.+data CompositeFilterOperator+    = And+      -- ^ @AND@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable CompositeFilterOperator++instance FromText CompositeFilterOperator where+    fromText = \case+        "AND" -> Just And+        _ -> Nothing++instance ToText CompositeFilterOperator where+    toText = \case+        And -> "AND"++instance FromJSON CompositeFilterOperator where+    parseJSON = parseJSONText "CompositeFilterOperator"++instance ToJSON CompositeFilterOperator where+    toJSON = toJSONText++-- | The state of the query after the current batch. One of notFinished,+-- moreResultsAfterLimit, noMoreResults.+data QueryResultBatchMoreResults+    = MoreResultsAfterLimit+      -- ^ @MORE_RESULTS_AFTER_LIMIT@+    | NotFinished+      -- ^ @NOT_FINISHED@+    | NoMoreResults+      -- ^ @NO_MORE_RESULTS@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable QueryResultBatchMoreResults++instance FromText QueryResultBatchMoreResults where+    fromText = \case+        "MORE_RESULTS_AFTER_LIMIT" -> Just MoreResultsAfterLimit+        "NOT_FINISHED" -> Just NotFinished+        "NO_MORE_RESULTS" -> Just NoMoreResults+        _ -> Nothing++instance ToText QueryResultBatchMoreResults where+    toText = \case+        MoreResultsAfterLimit -> "MORE_RESULTS_AFTER_LIMIT"+        NotFinished -> "NOT_FINISHED"+        NoMoreResults -> "NO_MORE_RESULTS"++instance FromJSON QueryResultBatchMoreResults where+    parseJSON = parseJSONText "QueryResultBatchMoreResults"++instance ToJSON QueryResultBatchMoreResults where+    toJSON = toJSONText++-- | The read consistency to use. One of default, strong, or eventual. Cannot+-- be set when transaction is set. Lookup and ancestor queries default to+-- strong, global queries default to eventual and cannot be set to strong.+-- Optional. Default is default.+data ReadOptionsReadConsistency+    = Default+      -- ^ @DEFAULT@+    | Eventual+      -- ^ @EVENTUAL@+    | Strong+      -- ^ @STRONG@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ReadOptionsReadConsistency++instance FromText ReadOptionsReadConsistency where+    fromText = \case+        "DEFAULT" -> Just Default+        "EVENTUAL" -> Just Eventual+        "STRONG" -> Just Strong+        _ -> Nothing++instance ToText ReadOptionsReadConsistency where+    toText = \case+        Default -> "DEFAULT"+        Eventual -> "EVENTUAL"+        Strong -> "STRONG"++instance FromJSON ReadOptionsReadConsistency where+    parseJSON = parseJSONText "ReadOptionsReadConsistency"++instance ToJSON ReadOptionsReadConsistency where+    toJSON = toJSONText++-- | The operator to filter by. One of lessThan, lessThanOrEqual,+-- greaterThan, greaterThanOrEqual, equal, or hasAncestor.+data PropertyFilterOperator+    = Equal+      -- ^ @EQUAL@+    | GreaterThan+      -- ^ @GREATER_THAN@+    | GreaterThanOrEqual+      -- ^ @GREATER_THAN_OR_EQUAL@+    | HasAncestor+      -- ^ @HAS_ANCESTOR@+    | LessThan+      -- ^ @LESS_THAN@+    | LessThanOrEqual+      -- ^ @LESS_THAN_OR_EQUAL@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable PropertyFilterOperator++instance FromText PropertyFilterOperator where+    fromText = \case+        "EQUAL" -> Just Equal+        "GREATER_THAN" -> Just GreaterThan+        "GREATER_THAN_OR_EQUAL" -> Just GreaterThanOrEqual+        "HAS_ANCESTOR" -> Just HasAncestor+        "LESS_THAN" -> Just LessThan+        "LESS_THAN_OR_EQUAL" -> Just LessThanOrEqual+        _ -> Nothing++instance ToText PropertyFilterOperator where+    toText = \case+        Equal -> "EQUAL"+        GreaterThan -> "GREATER_THAN"+        GreaterThanOrEqual -> "GREATER_THAN_OR_EQUAL"+        HasAncestor -> "HAS_ANCESTOR"+        LessThan -> "LESS_THAN"+        LessThanOrEqual -> "LESS_THAN_OR_EQUAL"++instance FromJSON PropertyFilterOperator where+    parseJSON = parseJSONText "PropertyFilterOperator"++instance ToJSON PropertyFilterOperator where+    toJSON = toJSONText++-- | The transaction isolation level. Either snapshot or serializable. The+-- default isolation level is snapshot isolation, which means that another+-- transaction may not concurrently modify the data that is modified by+-- this transaction. Optionally, a transaction can request to be made+-- serializable which means that another transaction cannot concurrently+-- modify the data that is read or modified by this transaction.+data BeginTransactionRequestIsolationLevel+    = Serializable+      -- ^ @SERIALIZABLE@+    | Snapshot+      -- ^ @SNAPSHOT@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable BeginTransactionRequestIsolationLevel++instance FromText BeginTransactionRequestIsolationLevel where+    fromText = \case+        "SERIALIZABLE" -> Just Serializable+        "SNAPSHOT" -> Just Snapshot+        _ -> Nothing++instance ToText BeginTransactionRequestIsolationLevel where+    toText = \case+        Serializable -> "SERIALIZABLE"+        Snapshot -> "SNAPSHOT"++instance FromJSON BeginTransactionRequestIsolationLevel where+    parseJSON = parseJSONText "BeginTransactionRequestIsolationLevel"++instance ToJSON BeginTransactionRequestIsolationLevel where+    toJSON = toJSONText++-- | The type of commit to perform. Either TRANSACTIONAL or+-- NON_TRANSACTIONAL.+data CommitRequestMode+    = NonTransactional+      -- ^ @NON_TRANSACTIONAL@+    | Transactional+      -- ^ @TRANSACTIONAL@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable CommitRequestMode++instance FromText CommitRequestMode where+    fromText = \case+        "NON_TRANSACTIONAL" -> Just NonTransactional+        "TRANSACTIONAL" -> Just Transactional+        _ -> Nothing++instance ToText CommitRequestMode where+    toText = \case+        NonTransactional -> "NON_TRANSACTIONAL"+        Transactional -> "TRANSACTIONAL"++instance FromJSON CommitRequestMode where+    parseJSON = parseJSONText "CommitRequestMode"++instance ToJSON CommitRequestMode where+    toJSON = toJSONText++-- | The aggregation function to apply to the property. Optional. Can only be+-- used when grouping by at least one property. Must then be set on all+-- properties in the projection that are not being grouped by. Aggregation+-- functions: first selects the first result as determined by the query\'s+-- order.+data PropertyExpressionAggregationFunction+    = First+      -- ^ @FIRST@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable PropertyExpressionAggregationFunction++instance FromText PropertyExpressionAggregationFunction where+    fromText = \case+        "FIRST" -> Just First+        _ -> Nothing++instance ToText PropertyExpressionAggregationFunction where+    toText = \case+        First -> "FIRST"++instance FromJSON PropertyExpressionAggregationFunction where+    parseJSON = parseJSONText "PropertyExpressionAggregationFunction"++instance ToJSON PropertyExpressionAggregationFunction where+    toJSON = toJSONText
+ gen/Network/Google/Resource/Datastore/DataSets/AllocateIds.hs view
@@ -0,0 +1,101 @@+{-# 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.Datastore.DataSets.AllocateIds+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Allocate IDs for incomplete keys (useful for referencing an entity+-- before it is inserted).+--+-- /See:/ <https://developers.google.com/datastore/ Google Cloud Datastore API Reference> for @datastore.datasets.allocateIds@.+module Network.Google.Resource.Datastore.DataSets.AllocateIds+    (+    -- * REST Resource+      DataSetsAllocateIdsResource++    -- * Creating a Request+    , dataSetsAllocateIds+    , DataSetsAllocateIds++    -- * Request Lenses+    , dsaiPayload+    , dsaiDataSetId+    ) where++import           Network.Google.Datastore.Types+import           Network.Google.Prelude++-- | A resource alias for @datastore.datasets.allocateIds@ method which the+-- 'DataSetsAllocateIds' request conforms to.+type DataSetsAllocateIdsResource =+     "datastore" :>+       "v1beta2" :>+         "datasets" :>+           Capture "datasetId" Text :>+             "allocateIds" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] AllocateIdsRequest :>+                   Post '[JSON] AllocateIdsResponse++-- | Allocate IDs for incomplete keys (useful for referencing an entity+-- before it is inserted).+--+-- /See:/ 'dataSetsAllocateIds' smart constructor.+data DataSetsAllocateIds = DataSetsAllocateIds+    { _dsaiPayload   :: !AllocateIdsRequest+    , _dsaiDataSetId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataSetsAllocateIds' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsaiPayload'+--+-- * 'dsaiDataSetId'+dataSetsAllocateIds+    :: AllocateIdsRequest -- ^ 'dsaiPayload'+    -> Text -- ^ 'dsaiDataSetId'+    -> DataSetsAllocateIds+dataSetsAllocateIds pDsaiPayload_ pDsaiDataSetId_ =+    DataSetsAllocateIds+    { _dsaiPayload = pDsaiPayload_+    , _dsaiDataSetId = pDsaiDataSetId_+    }++-- | Multipart request metadata.+dsaiPayload :: Lens' DataSetsAllocateIds AllocateIdsRequest+dsaiPayload+  = lens _dsaiPayload (\ s a -> s{_dsaiPayload = a})++-- | Identifies the dataset.+dsaiDataSetId :: Lens' DataSetsAllocateIds Text+dsaiDataSetId+  = lens _dsaiDataSetId+      (\ s a -> s{_dsaiDataSetId = a})++instance GoogleRequest DataSetsAllocateIds where+        type Rs DataSetsAllocateIds = AllocateIdsResponse+        requestClient DataSetsAllocateIds{..}+          = go _dsaiDataSetId (Just AltJSON) _dsaiPayload+              datastoreService+          where go+                  = buildClient+                      (Proxy :: Proxy DataSetsAllocateIdsResource)+                      mempty
+ gen/Network/Google/Resource/Datastore/DataSets/BeginTransaction.hs view
@@ -0,0 +1,100 @@+{-# 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.Datastore.DataSets.BeginTransaction+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Begin a new transaction.+--+-- /See:/ <https://developers.google.com/datastore/ Google Cloud Datastore API Reference> for @datastore.datasets.beginTransaction@.+module Network.Google.Resource.Datastore.DataSets.BeginTransaction+    (+    -- * REST Resource+      DataSetsBeginTransactionResource++    -- * Creating a Request+    , dataSetsBeginTransaction+    , DataSetsBeginTransaction++    -- * Request Lenses+    , dsbtPayload+    , dsbtDataSetId+    ) where++import           Network.Google.Datastore.Types+import           Network.Google.Prelude++-- | A resource alias for @datastore.datasets.beginTransaction@ method which the+-- 'DataSetsBeginTransaction' request conforms to.+type DataSetsBeginTransactionResource =+     "datastore" :>+       "v1beta2" :>+         "datasets" :>+           Capture "datasetId" Text :>+             "beginTransaction" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] BeginTransactionRequest :>+                   Post '[JSON] BeginTransactionResponse++-- | Begin a new transaction.+--+-- /See:/ 'dataSetsBeginTransaction' smart constructor.+data DataSetsBeginTransaction = DataSetsBeginTransaction+    { _dsbtPayload   :: !BeginTransactionRequest+    , _dsbtDataSetId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataSetsBeginTransaction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsbtPayload'+--+-- * 'dsbtDataSetId'+dataSetsBeginTransaction+    :: BeginTransactionRequest -- ^ 'dsbtPayload'+    -> Text -- ^ 'dsbtDataSetId'+    -> DataSetsBeginTransaction+dataSetsBeginTransaction pDsbtPayload_ pDsbtDataSetId_ =+    DataSetsBeginTransaction+    { _dsbtPayload = pDsbtPayload_+    , _dsbtDataSetId = pDsbtDataSetId_+    }++-- | Multipart request metadata.+dsbtPayload :: Lens' DataSetsBeginTransaction BeginTransactionRequest+dsbtPayload+  = lens _dsbtPayload (\ s a -> s{_dsbtPayload = a})++-- | Identifies the dataset.+dsbtDataSetId :: Lens' DataSetsBeginTransaction Text+dsbtDataSetId+  = lens _dsbtDataSetId+      (\ s a -> s{_dsbtDataSetId = a})++instance GoogleRequest DataSetsBeginTransaction where+        type Rs DataSetsBeginTransaction =+             BeginTransactionResponse+        requestClient DataSetsBeginTransaction{..}+          = go _dsbtDataSetId (Just AltJSON) _dsbtPayload+              datastoreService+          where go+                  = buildClient+                      (Proxy :: Proxy DataSetsBeginTransactionResource)+                      mempty
+ gen/Network/Google/Resource/Datastore/DataSets/Commit.hs view
@@ -0,0 +1,99 @@+{-# 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.Datastore.DataSets.Commit+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Commit a transaction, optionally creating, deleting or modifying some+-- entities.+--+-- /See:/ <https://developers.google.com/datastore/ Google Cloud Datastore API Reference> for @datastore.datasets.commit@.+module Network.Google.Resource.Datastore.DataSets.Commit+    (+    -- * REST Resource+      DataSetsCommitResource++    -- * Creating a Request+    , dataSetsCommit+    , DataSetsCommit++    -- * Request Lenses+    , dscPayload+    , dscDataSetId+    ) where++import           Network.Google.Datastore.Types+import           Network.Google.Prelude++-- | A resource alias for @datastore.datasets.commit@ method which the+-- 'DataSetsCommit' request conforms to.+type DataSetsCommitResource =+     "datastore" :>+       "v1beta2" :>+         "datasets" :>+           Capture "datasetId" Text :>+             "commit" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] CommitRequest :>+                   Post '[JSON] CommitResponse++-- | Commit a transaction, optionally creating, deleting or modifying some+-- entities.+--+-- /See:/ 'dataSetsCommit' smart constructor.+data DataSetsCommit = DataSetsCommit+    { _dscPayload   :: !CommitRequest+    , _dscDataSetId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataSetsCommit' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dscPayload'+--+-- * 'dscDataSetId'+dataSetsCommit+    :: CommitRequest -- ^ 'dscPayload'+    -> Text -- ^ 'dscDataSetId'+    -> DataSetsCommit+dataSetsCommit pDscPayload_ pDscDataSetId_ =+    DataSetsCommit+    { _dscPayload = pDscPayload_+    , _dscDataSetId = pDscDataSetId_+    }++-- | Multipart request metadata.+dscPayload :: Lens' DataSetsCommit CommitRequest+dscPayload+  = lens _dscPayload (\ s a -> s{_dscPayload = a})++-- | Identifies the dataset.+dscDataSetId :: Lens' DataSetsCommit Text+dscDataSetId+  = lens _dscDataSetId (\ s a -> s{_dscDataSetId = a})++instance GoogleRequest DataSetsCommit where+        type Rs DataSetsCommit = CommitResponse+        requestClient DataSetsCommit{..}+          = go _dscDataSetId (Just AltJSON) _dscPayload+              datastoreService+          where go+                  = buildClient (Proxy :: Proxy DataSetsCommitResource)+                      mempty
+ gen/Network/Google/Resource/Datastore/DataSets/Lookup.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Datastore.DataSets.Lookup+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Look up some entities by key.+--+-- /See:/ <https://developers.google.com/datastore/ Google Cloud Datastore API Reference> for @datastore.datasets.lookup@.+module Network.Google.Resource.Datastore.DataSets.Lookup+    (+    -- * REST Resource+      DataSetsLookupResource++    -- * Creating a Request+    , dataSetsLookup+    , DataSetsLookup++    -- * Request Lenses+    , dslPayload+    , dslDataSetId+    ) where++import           Network.Google.Datastore.Types+import           Network.Google.Prelude++-- | A resource alias for @datastore.datasets.lookup@ method which the+-- 'DataSetsLookup' request conforms to.+type DataSetsLookupResource =+     "datastore" :>+       "v1beta2" :>+         "datasets" :>+           Capture "datasetId" Text :>+             "lookup" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] LookupRequest :>+                   Post '[JSON] LookupResponse++-- | Look up some entities by key.+--+-- /See:/ 'dataSetsLookup' smart constructor.+data DataSetsLookup = DataSetsLookup+    { _dslPayload   :: !LookupRequest+    , _dslDataSetId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataSetsLookup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dslPayload'+--+-- * 'dslDataSetId'+dataSetsLookup+    :: LookupRequest -- ^ 'dslPayload'+    -> Text -- ^ 'dslDataSetId'+    -> DataSetsLookup+dataSetsLookup pDslPayload_ pDslDataSetId_ =+    DataSetsLookup+    { _dslPayload = pDslPayload_+    , _dslDataSetId = pDslDataSetId_+    }++-- | Multipart request metadata.+dslPayload :: Lens' DataSetsLookup LookupRequest+dslPayload+  = lens _dslPayload (\ s a -> s{_dslPayload = a})++-- | Identifies the dataset.+dslDataSetId :: Lens' DataSetsLookup Text+dslDataSetId+  = lens _dslDataSetId (\ s a -> s{_dslDataSetId = a})++instance GoogleRequest DataSetsLookup where+        type Rs DataSetsLookup = LookupResponse+        requestClient DataSetsLookup{..}+          = go _dslDataSetId (Just AltJSON) _dslPayload+              datastoreService+          where go+                  = buildClient (Proxy :: Proxy DataSetsLookupResource)+                      mempty
+ gen/Network/Google/Resource/Datastore/DataSets/Rollback.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Datastore.DataSets.Rollback+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Roll back a transaction.+--+-- /See:/ <https://developers.google.com/datastore/ Google Cloud Datastore API Reference> for @datastore.datasets.rollback@.+module Network.Google.Resource.Datastore.DataSets.Rollback+    (+    -- * REST Resource+      DataSetsRollbackResource++    -- * Creating a Request+    , dataSetsRollback+    , DataSetsRollback++    -- * Request Lenses+    , dsrPayload+    , dsrDataSetId+    ) where++import           Network.Google.Datastore.Types+import           Network.Google.Prelude++-- | A resource alias for @datastore.datasets.rollback@ method which the+-- 'DataSetsRollback' request conforms to.+type DataSetsRollbackResource =+     "datastore" :>+       "v1beta2" :>+         "datasets" :>+           Capture "datasetId" Text :>+             "rollback" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] RollbackRequest :>+                   Post '[JSON] RollbackResponse++-- | Roll back a transaction.+--+-- /See:/ 'dataSetsRollback' smart constructor.+data DataSetsRollback = DataSetsRollback+    { _dsrPayload   :: !RollbackRequest+    , _dsrDataSetId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataSetsRollback' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsrPayload'+--+-- * 'dsrDataSetId'+dataSetsRollback+    :: RollbackRequest -- ^ 'dsrPayload'+    -> Text -- ^ 'dsrDataSetId'+    -> DataSetsRollback+dataSetsRollback pDsrPayload_ pDsrDataSetId_ =+    DataSetsRollback+    { _dsrPayload = pDsrPayload_+    , _dsrDataSetId = pDsrDataSetId_+    }++-- | Multipart request metadata.+dsrPayload :: Lens' DataSetsRollback RollbackRequest+dsrPayload+  = lens _dsrPayload (\ s a -> s{_dsrPayload = a})++-- | Identifies the dataset.+dsrDataSetId :: Lens' DataSetsRollback Text+dsrDataSetId+  = lens _dsrDataSetId (\ s a -> s{_dsrDataSetId = a})++instance GoogleRequest DataSetsRollback where+        type Rs DataSetsRollback = RollbackResponse+        requestClient DataSetsRollback{..}+          = go _dsrDataSetId (Just AltJSON) _dsrPayload+              datastoreService+          where go+                  = buildClient+                      (Proxy :: Proxy DataSetsRollbackResource)+                      mempty
+ gen/Network/Google/Resource/Datastore/DataSets/RunQuery.hs view
@@ -0,0 +1,99 @@+{-# 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.Datastore.DataSets.RunQuery+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Query for entities.+--+-- /See:/ <https://developers.google.com/datastore/ Google Cloud Datastore API Reference> for @datastore.datasets.runQuery@.+module Network.Google.Resource.Datastore.DataSets.RunQuery+    (+    -- * REST Resource+      DataSetsRunQueryResource++    -- * Creating a Request+    , dataSetsRunQuery+    , DataSetsRunQuery++    -- * Request Lenses+    , dsrqPayload+    , dsrqDataSetId+    ) where++import           Network.Google.Datastore.Types+import           Network.Google.Prelude++-- | A resource alias for @datastore.datasets.runQuery@ method which the+-- 'DataSetsRunQuery' request conforms to.+type DataSetsRunQueryResource =+     "datastore" :>+       "v1beta2" :>+         "datasets" :>+           Capture "datasetId" Text :>+             "runQuery" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] RunQueryRequest :>+                   Post '[JSON] RunQueryResponse++-- | Query for entities.+--+-- /See:/ 'dataSetsRunQuery' smart constructor.+data DataSetsRunQuery = DataSetsRunQuery+    { _dsrqPayload   :: !RunQueryRequest+    , _dsrqDataSetId :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataSetsRunQuery' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsrqPayload'+--+-- * 'dsrqDataSetId'+dataSetsRunQuery+    :: RunQueryRequest -- ^ 'dsrqPayload'+    -> Text -- ^ 'dsrqDataSetId'+    -> DataSetsRunQuery+dataSetsRunQuery pDsrqPayload_ pDsrqDataSetId_ =+    DataSetsRunQuery+    { _dsrqPayload = pDsrqPayload_+    , _dsrqDataSetId = pDsrqDataSetId_+    }++-- | Multipart request metadata.+dsrqPayload :: Lens' DataSetsRunQuery RunQueryRequest+dsrqPayload+  = lens _dsrqPayload (\ s a -> s{_dsrqPayload = a})++-- | Identifies the dataset.+dsrqDataSetId :: Lens' DataSetsRunQuery Text+dsrqDataSetId+  = lens _dsrqDataSetId+      (\ s a -> s{_dsrqDataSetId = a})++instance GoogleRequest DataSetsRunQuery where+        type Rs DataSetsRunQuery = RunQueryResponse+        requestClient DataSetsRunQuery{..}+          = go _dsrqDataSetId (Just AltJSON) _dsrqPayload+              datastoreService+          where go+                  = buildClient+                      (Proxy :: Proxy DataSetsRunQueryResource)+                      mempty
+ gogol-datastore.cabal view
@@ -0,0 +1,51 @@+name:                  gogol-datastore+version:               0.0.1+synopsis:              Google Cloud Datastore SDK.+homepage:              https://github.com/brendanhay/gogol+bug-reports:           https://github.com/brendanhay/gogol/issues+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2015 Brendan Hay+category:              Network, Google, Cloud+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md++description:+    API for accessing Google Cloud Datastore.+    .+    /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 @v1beta2@+    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.Datastore+        , Network.Google.Datastore.Types+        , Network.Google.Resource.Datastore.DataSets.AllocateIds+        , Network.Google.Resource.Datastore.DataSets.BeginTransaction+        , Network.Google.Resource.Datastore.DataSets.Commit+        , Network.Google.Resource.Datastore.DataSets.Lookup+        , Network.Google.Resource.Datastore.DataSets.Rollback+        , Network.Google.Resource.Datastore.DataSets.RunQuery++    other-modules:+          Network.Google.Datastore.Types.Product+        , Network.Google.Datastore.Types.Sum++    build-depends:+          gogol-core == 0.0.1.*+        , base       >= 4.7 && < 5