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 +367/−0
- README.md +28/−0
- Setup.hs +2/−0
- gen/Network/Google/Datastore.hs +343/−0
- gen/Network/Google/Datastore/Types.hs +320/−0
- gen/Network/Google/Datastore/Types/Product.hs +2191/−0
- gen/Network/Google/Datastore/Types/Sum.hs +301/−0
- gen/Network/Google/Resource/Datastore/DataSets/AllocateIds.hs +101/−0
- gen/Network/Google/Resource/Datastore/DataSets/BeginTransaction.hs +100/−0
- gen/Network/Google/Resource/Datastore/DataSets/Commit.hs +99/−0
- gen/Network/Google/Resource/Datastore/DataSets/Lookup.hs +97/−0
- gen/Network/Google/Resource/Datastore/DataSets/Rollback.hs +98/−0
- gen/Network/Google/Resource/Datastore/DataSets/RunQuery.hs +99/−0
- gogol-datastore.cabal +51/−0
+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+ means each individual or legal entity that creates, contributes to+ the creation of, or owns Covered Software.++1.2. "Contributor Version"+ means the combination of the Contributions of others (if any) used+ by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+ means Covered Software of a particular Contributor.++1.4. "Covered Software"+ means Source Code Form to which the initial Contributor has attached+ the notice in Exhibit A, the Executable Form of such Source Code+ Form, and Modifications of such Source Code Form, in each case+ including portions thereof.++1.5. "Incompatible With Secondary Licenses"+ means++ (a) that the initial Contributor has attached the notice described+ in Exhibit B to the Covered Software; or++ (b) that the Covered Software was made available under the terms of+ version 1.1 or earlier of the License, but not also under the+ terms of a Secondary License.++1.6. "Executable Form"+ means any form of the work other than Source Code Form.++1.7. "Larger Work"+ means a work that combines Covered Software with other material, in+ a separate file or files, that is not Covered Software.++1.8. "License"+ means this document.++1.9. "Licensable"+ means having the right to grant, to the maximum extent possible,+ whether at the time of the initial grant or subsequently, any and+ all of the rights conveyed by this License.++1.10. "Modifications"+ means any of the following:++ (a) any file in Source Code Form that results from an addition to,+ deletion from, or modification of the contents of Covered+ Software; or++ (b) any new file in Source Code Form that contains any Covered+ Software.++1.11. "Patent Claims" of a Contributor+ means any patent claim(s), including without limitation, method,+ process, and apparatus claims, in any patent Licensable by such+ Contributor that would be infringed, but for the grant of the+ License, by the making, using, selling, offering for sale, having+ made, import, or transfer of either its Contributions or its+ Contributor Version.++1.12. "Secondary License"+ means either the GNU General Public License, Version 2.0, the GNU+ Lesser General Public License, Version 2.1, the GNU Affero General+ Public License, Version 3.0, or any later versions of those+ licenses.++1.13. "Source Code Form"+ means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+ means an individual or a legal entity exercising rights under this+ License. For legal entities, "You" includes any entity that+ controls, is controlled by, or is under common control with You. For+ purposes of this definition, "control" means (a) the power, direct+ or indirect, to cause the direction or management of such entity,+ whether by contract or otherwise, or (b) ownership of more than+ fifty percent (50%) of the outstanding shares or beneficial+ ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+ Licensable by such Contributor to use, reproduce, make available,+ modify, display, perform, distribute, and otherwise exploit its+ Contributions, either on an unmodified basis, with Modifications, or+ as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+ for sale, have made, import, and otherwise transfer either its+ Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+ or++(b) for infringements caused by: (i) Your and any other third party's+ modifications of Covered Software, or (ii) the combination of its+ Contributions with other software (except as part of its Contributor+ Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+ its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+ Form, as described in Section 3.1, and You must inform recipients of+ the Executable Form how they can obtain a copy of such Source Code+ Form by reasonable means in a timely manner, at a charge no more+ than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+ License, or sublicense it under different terms, provided that the+ license for the Executable Form does not attempt to limit or alter+ the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+* *+* 6. Disclaimer of Warranty *+* ------------------------- *+* *+* Covered Software is provided under this License on an "as is" *+* basis, without warranty of any kind, either expressed, implied, or *+* statutory, including, without limitation, warranties that the *+* Covered Software is free of defects, merchantable, fit for a *+* particular purpose or non-infringing. The entire risk as to the *+* quality and performance of the Covered Software is with You. *+* Should any Covered Software prove defective in any respect, You *+* (not any Contributor) assume the cost of any necessary servicing, *+* repair, or correction. This disclaimer of warranty constitutes an *+* essential part of this License. No use of any Covered Software is *+* authorized under this License except under this disclaimer. *+* *+************************************************************************++************************************************************************+* *+* 7. Limitation of Liability *+* -------------------------- *+* *+* Under no circumstances and under no legal theory, whether tort *+* (including negligence), contract, or otherwise, shall any *+* Contributor, or anyone who distributes Covered Software as *+* permitted above, be liable to You for any direct, indirect, *+* special, incidental, or consequential damages of any character *+* including, without limitation, damages for lost profits, loss of *+* goodwill, work stoppage, computer failure or malfunction, or any *+* and all other commercial damages or losses, even if such party *+* shall have been informed of the possibility of such damages. This *+* limitation of liability shall not apply to liability for death or *+* personal injury resulting from such party's negligence to the *+* extent applicable law prohibits such limitation. Some *+* jurisdictions do not allow the exclusion or limitation of *+* incidental or consequential damages, so this exclusion and *+* limitation may not apply to You. *+* *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++ This Source Code Form is subject to the terms of the Mozilla Public+ License, v. 2.0. If a copy of the MPL was not distributed with this+ file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,28 @@+# gogol-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