packages feed

gogol-cloudasset (empty) → 0.4.0

raw patch · 15 files changed

+3250/−0 lines, 15 filesdep +basedep +gogol-coresetup-changed

Dependencies added: base, gogol-core

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,28 @@+# gogol-cloudasset++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.3.0`+++## Description++A client library for the Google Cloud Asset.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/gogol/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `gogol-gen` for more information.+++## Licence++`gogol-cloudasset` 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/CloudAsset.hs view
@@ -0,0 +1,208 @@+{-# LANGUAGE DataKinds         #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators     #-}++{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module      : Network.Google.CloudAsset+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The cloud asset API manages the history and inventory of cloud+-- resources.+--+-- /See:/ <https://console.cloud.google.com/apis/api/cloudasset.googleapis.com/overview Cloud Asset API Reference>+module Network.Google.CloudAsset+    (+    -- * Service Configuration+      cloudAssetService++    -- * OAuth Scopes+    , cloudPlatformScope++    -- * API Declaration+    , CloudAssetAPI++    -- * Resources++    -- ** cloudasset.organizations.batchGetAssetsHistory+    , module Network.Google.Resource.CloudAsset.Organizations.BatchGetAssetsHistory++    -- ** cloudasset.organizations.exportAssets+    , module Network.Google.Resource.CloudAsset.Organizations.ExportAssets++    -- ** cloudasset.organizations.operations.get+    , module Network.Google.Resource.CloudAsset.Organizations.Operations.Get++    -- ** cloudasset.projects.batchGetAssetsHistory+    , module Network.Google.Resource.CloudAsset.Projects.BatchGetAssetsHistory++    -- ** cloudasset.projects.exportAssets+    , module Network.Google.Resource.CloudAsset.Projects.ExportAssets++    -- ** cloudasset.projects.operations.get+    , module Network.Google.Resource.CloudAsset.Projects.Operations.Get++    -- * Types++    -- ** Status+    , Status+    , status+    , sDetails+    , sCode+    , sMessage++    -- ** ExportAssetsRequestContentType+    , ExportAssetsRequestContentType (..)++    -- ** AuditConfig+    , AuditConfig+    , auditConfig+    , acService+    , acAuditLogConfigs++    -- ** Expr+    , Expr+    , expr+    , eLocation+    , eExpression+    , eTitle+    , eDescription++    -- ** Operation+    , Operation+    , operation+    , oDone+    , oError+    , oResponse+    , oName+    , oMetadata++    -- ** Asset+    , Asset+    , asset+    , aName+    , aResource+    , aIAMPolicy+    , aAssetType++    -- ** GcsDestination+    , GcsDestination+    , gcsDestination+    , gdURI++    -- ** StatusDetailsItem+    , StatusDetailsItem+    , statusDetailsItem+    , sdiAddtional++    -- ** ExportAssetsRequest+    , ExportAssetsRequest+    , exportAssetsRequest+    , earReadTime+    , earAssetTypes+    , earOutputConfig+    , earContentType++    -- ** TimeWindow+    , TimeWindow+    , timeWindow+    , twStartTime+    , twEndTime++    -- ** TemporalAsset+    , TemporalAsset+    , temporalAsset+    , taWindow+    , taAsset+    , taDeleted++    -- ** AuditLogConfigLogType+    , AuditLogConfigLogType (..)++    -- ** Resource+    , Resource+    , resource+    , rParent+    , rData+    , rVersion+    , rDiscoveryName+    , rDiscoveryDocumentURI+    , rResourceURL++    -- ** Xgafv+    , Xgafv (..)++    -- ** ResourceData+    , ResourceData+    , resourceData+    , rdAddtional++    -- ** OutputConfig+    , OutputConfig+    , outputConfig+    , ocGcsDestination++    -- ** Policy+    , Policy+    , policy+    , pAuditConfigs+    , pEtag+    , pVersion+    , pBindings++    -- ** BatchGetAssetsHistoryResponse+    , BatchGetAssetsHistoryResponse+    , batchGetAssetsHistoryResponse+    , bgahrAssets++    -- ** OperationMetadata+    , OperationMetadata+    , operationMetadata+    , omAddtional++    -- ** AuditLogConfig+    , AuditLogConfig+    , auditLogConfig+    , alcLogType+    , alcExemptedMembers++    -- ** OperationResponse+    , OperationResponse+    , operationResponse+    , orAddtional++    -- ** Binding+    , Binding+    , binding+    , bMembers+    , bRole+    , bCondition+    ) where++import           Network.Google.CloudAsset.Types+import           Network.Google.Prelude+import           Network.Google.Resource.CloudAsset.Organizations.BatchGetAssetsHistory+import           Network.Google.Resource.CloudAsset.Organizations.ExportAssets+import           Network.Google.Resource.CloudAsset.Organizations.Operations.Get+import           Network.Google.Resource.CloudAsset.Projects.BatchGetAssetsHistory+import           Network.Google.Resource.CloudAsset.Projects.ExportAssets+import           Network.Google.Resource.CloudAsset.Projects.Operations.Get++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Cloud Asset API service.+type CloudAssetAPI =+     OrganizationsOperationsGetResource :<|>+       OrganizationsExportAssetsResource+       :<|> OrganizationsBatchGetAssetsHistoryResource+       :<|> ProjectsOperationsGetResource+       :<|> ProjectsExportAssetsResource+       :<|> ProjectsBatchGetAssetsHistoryResource
+ gen/Network/Google/CloudAsset/Types.hs view
@@ -0,0 +1,172 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.CloudAsset.Types+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.CloudAsset.Types+    (+    -- * Service Configuration+      cloudAssetService++    -- * OAuth Scopes+    , cloudPlatformScope++    -- * Status+    , Status+    , status+    , sDetails+    , sCode+    , sMessage++    -- * ExportAssetsRequestContentType+    , ExportAssetsRequestContentType (..)++    -- * AuditConfig+    , AuditConfig+    , auditConfig+    , acService+    , acAuditLogConfigs++    -- * Expr+    , Expr+    , expr+    , eLocation+    , eExpression+    , eTitle+    , eDescription++    -- * Operation+    , Operation+    , operation+    , oDone+    , oError+    , oResponse+    , oName+    , oMetadata++    -- * Asset+    , Asset+    , asset+    , aName+    , aResource+    , aIAMPolicy+    , aAssetType++    -- * GcsDestination+    , GcsDestination+    , gcsDestination+    , gdURI++    -- * StatusDetailsItem+    , StatusDetailsItem+    , statusDetailsItem+    , sdiAddtional++    -- * ExportAssetsRequest+    , ExportAssetsRequest+    , exportAssetsRequest+    , earReadTime+    , earAssetTypes+    , earOutputConfig+    , earContentType++    -- * TimeWindow+    , TimeWindow+    , timeWindow+    , twStartTime+    , twEndTime++    -- * TemporalAsset+    , TemporalAsset+    , temporalAsset+    , taWindow+    , taAsset+    , taDeleted++    -- * AuditLogConfigLogType+    , AuditLogConfigLogType (..)++    -- * Resource+    , Resource+    , resource+    , rParent+    , rData+    , rVersion+    , rDiscoveryName+    , rDiscoveryDocumentURI+    , rResourceURL++    -- * Xgafv+    , Xgafv (..)++    -- * ResourceData+    , ResourceData+    , resourceData+    , rdAddtional++    -- * OutputConfig+    , OutputConfig+    , outputConfig+    , ocGcsDestination++    -- * Policy+    , Policy+    , policy+    , pAuditConfigs+    , pEtag+    , pVersion+    , pBindings++    -- * BatchGetAssetsHistoryResponse+    , BatchGetAssetsHistoryResponse+    , batchGetAssetsHistoryResponse+    , bgahrAssets++    -- * OperationMetadata+    , OperationMetadata+    , operationMetadata+    , omAddtional++    -- * AuditLogConfig+    , AuditLogConfig+    , auditLogConfig+    , alcLogType+    , alcExemptedMembers++    -- * OperationResponse+    , OperationResponse+    , operationResponse+    , orAddtional++    -- * Binding+    , Binding+    , binding+    , bMembers+    , bRole+    , bCondition+    ) where++import           Network.Google.CloudAsset.Types.Product+import           Network.Google.CloudAsset.Types.Sum+import           Network.Google.Prelude++-- | Default request referring to version 'v1beta1' of the Cloud Asset API. This contains the host and root path used as a starting point for constructing service requests.+cloudAssetService :: ServiceConfig+cloudAssetService+  = defaultService (ServiceId "cloudasset:v1beta1")+      "cloudasset.googleapis.com"++-- | View and manage your data across Google Cloud Platform services+cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]+cloudPlatformScope = Proxy;
+ gen/Network/Google/CloudAsset/Types/Product.hs view
@@ -0,0 +1,1215 @@+{-# 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.CloudAsset.Types.Product+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.CloudAsset.Types.Product where++import           Network.Google.CloudAsset.Types.Sum+import           Network.Google.Prelude++-- | The \`Status\` type defines a logical error model that is suitable for+-- different programming environments, including REST APIs and RPC APIs. It+-- is used by [gRPC](https:\/\/github.com\/grpc). The error model is+-- designed to be: - Simple to use and understand for most users - Flexible+-- enough to meet unexpected needs # Overview The \`Status\` message+-- contains three pieces of data: error code, error message, and error+-- details. The error code should be an enum value of google.rpc.Code, but+-- it may accept additional error codes if needed. The error message should+-- be a developer-facing English message that helps developers *understand*+-- and *resolve* the error. If a localized user-facing error message is+-- needed, put the localized message in the error details or localize it in+-- the client. The optional error details may contain arbitrary information+-- about the error. There is a predefined set of error detail types in the+-- package \`google.rpc\` that can be used for common error conditions. #+-- Language mapping The \`Status\` message is the logical representation of+-- the error model, but it is not necessarily the actual wire format. When+-- the \`Status\` message is exposed in different client libraries and+-- different wire protocols, it can be mapped differently. For example, it+-- will likely be mapped to some exceptions in Java, but more likely mapped+-- to some error codes in C. # Other uses The error model and the+-- \`Status\` message can be used in a variety of environments, either with+-- or without APIs, to provide a consistent developer experience across+-- different environments. Example uses of this error model include: -+-- Partial errors. If a service needs to return partial errors to the+-- client, it may embed the \`Status\` in the normal response to indicate+-- the partial errors. - Workflow errors. A typical workflow has multiple+-- steps. Each step may have a \`Status\` message for error reporting. -+-- Batch operations. If a client uses batch request and batch response, the+-- \`Status\` message should be used directly inside batch response, one+-- for each error sub-response. - Asynchronous operations. If an API call+-- embeds asynchronous operation results in its response, the status of+-- those operations should be represented directly using the \`Status\`+-- message. - Logging. If some API errors are stored in logs, the message+-- \`Status\` could be used directly after any stripping needed for+-- security\/privacy reasons.+--+-- /See:/ 'status' smart constructor.+data Status = Status'+    { _sDetails :: !(Maybe [StatusDetailsItem])+    , _sCode    :: !(Maybe (Textual Int32))+    , _sMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Status' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sDetails'+--+-- * 'sCode'+--+-- * 'sMessage'+status+    :: Status+status =+    Status'+    { _sDetails = Nothing+    , _sCode = Nothing+    , _sMessage = Nothing+    }++-- | A list of messages that carry the error details. There is a common set+-- of message types for APIs to use.+sDetails :: Lens' Status [StatusDetailsItem]+sDetails+  = lens _sDetails (\ s a -> s{_sDetails = a}) .+      _Default+      . _Coerce++-- | The status code, which should be an enum value of google.rpc.Code.+sCode :: Lens' Status (Maybe Int32)+sCode+  = lens _sCode (\ s a -> s{_sCode = a}) .+      mapping _Coerce++-- | A developer-facing error message, which should be in English. Any+-- user-facing error message should be localized and sent in the+-- google.rpc.Status.details field, or localized by the client.+sMessage :: Lens' Status (Maybe Text)+sMessage = lens _sMessage (\ s a -> s{_sMessage = a})++instance FromJSON Status where+        parseJSON+          = withObject "Status"+              (\ o ->+                 Status' <$>+                   (o .:? "details" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON Status where+        toJSON Status'{..}+          = object+              (catMaybes+                 [("details" .=) <$> _sDetails,+                  ("code" .=) <$> _sCode,+                  ("message" .=) <$> _sMessage])++-- | Specifies the audit configuration for a service. The configuration+-- determines which permission types are logged, and what identities, if+-- any, are exempted from logging. An AuditConfig must have one or more+-- AuditLogConfigs. If there are AuditConfigs for both \`allServices\` and+-- a specific service, the union of the two AuditConfigs is used for that+-- service: the log_types specified in each AuditConfig are enabled, and+-- the exempted_members in each AuditLogConfig are exempted. Example Policy+-- with multiple AuditConfigs: { \"audit_configs\": [ { \"service\":+-- \"allServices\" \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\",+-- \"exempted_members\": [ \"user:foo\'gmail.com\" ] }, { \"log_type\":+-- \"DATA_WRITE\", }, { \"log_type\": \"ADMIN_READ\", } ] }, { \"service\":+-- \"fooservice.googleapis.com\" \"audit_log_configs\": [ { \"log_type\":+-- \"DATA_READ\", }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\":+-- [ \"user:bar\'gmail.com\" ] } ] } ] } For fooservice, this policy+-- enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts+-- foo\'gmail.com from DATA_READ logging, and bar\'gmail.com from+-- DATA_WRITE logging.+--+-- /See:/ 'auditConfig' smart constructor.+data AuditConfig = AuditConfig'+    { _acService         :: !(Maybe Text)+    , _acAuditLogConfigs :: !(Maybe [AuditLogConfig])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AuditConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'acService'+--+-- * 'acAuditLogConfigs'+auditConfig+    :: AuditConfig+auditConfig =+    AuditConfig'+    { _acService = Nothing+    , _acAuditLogConfigs = Nothing+    }++-- | Specifies a service that will be enabled for audit logging. For example,+-- \`storage.googleapis.com\`, \`cloudsql.googleapis.com\`. \`allServices\`+-- is a special value that covers all services.+acService :: Lens' AuditConfig (Maybe Text)+acService+  = lens _acService (\ s a -> s{_acService = a})++-- | The configuration for logging of each type of permission.+acAuditLogConfigs :: Lens' AuditConfig [AuditLogConfig]+acAuditLogConfigs+  = lens _acAuditLogConfigs+      (\ s a -> s{_acAuditLogConfigs = a})+      . _Default+      . _Coerce++instance FromJSON AuditConfig where+        parseJSON+          = withObject "AuditConfig"+              (\ o ->+                 AuditConfig' <$>+                   (o .:? "service") <*>+                     (o .:? "auditLogConfigs" .!= mempty))++instance ToJSON AuditConfig where+        toJSON AuditConfig'{..}+          = object+              (catMaybes+                 [("service" .=) <$> _acService,+                  ("auditLogConfigs" .=) <$> _acAuditLogConfigs])++-- | Represents an expression text. Example: title: \"User account presence\"+-- description: \"Determines whether the request has a user account\"+-- expression: \"size(request.user) > 0\"+--+-- /See:/ 'expr' smart constructor.+data Expr = Expr'+    { _eLocation    :: !(Maybe Text)+    , _eExpression  :: !(Maybe Text)+    , _eTitle       :: !(Maybe Text)+    , _eDescription :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Expr' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eLocation'+--+-- * 'eExpression'+--+-- * 'eTitle'+--+-- * 'eDescription'+expr+    :: Expr+expr =+    Expr'+    { _eLocation = Nothing+    , _eExpression = Nothing+    , _eTitle = Nothing+    , _eDescription = Nothing+    }++-- | An optional string indicating the location of the expression for error+-- reporting, e.g. a file name and a position in the file.+eLocation :: Lens' Expr (Maybe Text)+eLocation+  = lens _eLocation (\ s a -> s{_eLocation = a})++-- | Textual representation of an expression in Common Expression Language+-- syntax. The application context of the containing message determines+-- which well-known feature set of CEL is supported.+eExpression :: Lens' Expr (Maybe Text)+eExpression+  = lens _eExpression (\ s a -> s{_eExpression = a})++-- | An optional title for the expression, i.e. a short string describing its+-- purpose. This can be used e.g. in UIs which allow to enter the+-- expression.+eTitle :: Lens' Expr (Maybe Text)+eTitle = lens _eTitle (\ s a -> s{_eTitle = a})++-- | An optional description of the expression. This is a longer text which+-- describes the expression, e.g. when hovered over it in a UI.+eDescription :: Lens' Expr (Maybe Text)+eDescription+  = lens _eDescription (\ s a -> s{_eDescription = a})++instance FromJSON Expr where+        parseJSON+          = withObject "Expr"+              (\ o ->+                 Expr' <$>+                   (o .:? "location") <*> (o .:? "expression") <*>+                     (o .:? "title")+                     <*> (o .:? "description"))++instance ToJSON Expr where+        toJSON Expr'{..}+          = object+              (catMaybes+                 [("location" .=) <$> _eLocation,+                  ("expression" .=) <$> _eExpression,+                  ("title" .=) <$> _eTitle,+                  ("description" .=) <$> _eDescription])++-- | This resource represents a long-running operation that is the result of+-- a network API call.+--+-- /See:/ 'operation' smart constructor.+data Operation = Operation'+    { _oDone     :: !(Maybe Bool)+    , _oError    :: !(Maybe Status)+    , _oResponse :: !(Maybe OperationResponse)+    , _oName     :: !(Maybe Text)+    , _oMetadata :: !(Maybe OperationMetadata)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Operation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oDone'+--+-- * 'oError'+--+-- * 'oResponse'+--+-- * 'oName'+--+-- * 'oMetadata'+operation+    :: Operation+operation =+    Operation'+    { _oDone = Nothing+    , _oError = Nothing+    , _oResponse = Nothing+    , _oName = Nothing+    , _oMetadata = Nothing+    }++-- | If the value is \`false\`, it means the operation is still in progress.+-- If \`true\`, the operation is completed, and either \`error\` or+-- \`response\` is available.+oDone :: Lens' Operation (Maybe Bool)+oDone = lens _oDone (\ s a -> s{_oDone = a})++-- | The error result of the operation in case of failure or cancellation.+oError :: Lens' Operation (Maybe Status)+oError = lens _oError (\ s a -> s{_oError = a})++-- | The normal response of the operation in case of success. If the original+-- method returns no data on success, such as \`Delete\`, the response is+-- \`google.protobuf.Empty\`. If the original method is standard+-- \`Get\`\/\`Create\`\/\`Update\`, the response should be the resource.+-- For other methods, the response should have the type \`XxxResponse\`,+-- where \`Xxx\` is the original method name. For example, if the original+-- method name is \`TakeSnapshot()\`, the inferred response type is+-- \`TakeSnapshotResponse\`.+oResponse :: Lens' Operation (Maybe OperationResponse)+oResponse+  = lens _oResponse (\ s a -> s{_oResponse = a})++-- | The server-assigned name, which is only unique within the same service+-- that originally returns it. If you use the default HTTP mapping, the+-- \`name\` should have the format of \`operations\/some\/unique\/name\`.+oName :: Lens' Operation (Maybe Text)+oName = lens _oName (\ s a -> s{_oName = a})++-- | Service-specific metadata associated with the operation. It typically+-- contains progress information and common metadata such as create time.+-- Some services might not provide such metadata. Any method that returns a+-- long-running operation should document the metadata type, if any.+oMetadata :: Lens' Operation (Maybe OperationMetadata)+oMetadata+  = lens _oMetadata (\ s a -> s{_oMetadata = a})++instance FromJSON Operation where+        parseJSON+          = withObject "Operation"+              (\ o ->+                 Operation' <$>+                   (o .:? "done") <*> (o .:? "error") <*>+                     (o .:? "response")+                     <*> (o .:? "name")+                     <*> (o .:? "metadata"))++instance ToJSON Operation where+        toJSON Operation'{..}+          = object+              (catMaybes+                 [("done" .=) <$> _oDone, ("error" .=) <$> _oError,+                  ("response" .=) <$> _oResponse,+                  ("name" .=) <$> _oName,+                  ("metadata" .=) <$> _oMetadata])++-- | Cloud asset. This includes all Google Cloud Platform resources, Cloud+-- IAM policies, and other non-GCP assets.+--+-- /See:/ 'asset' smart constructor.+data Asset = Asset'+    { _aName      :: !(Maybe Text)+    , _aResource  :: !(Maybe Resource)+    , _aIAMPolicy :: !(Maybe Policy)+    , _aAssetType :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Asset' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aName'+--+-- * 'aResource'+--+-- * 'aIAMPolicy'+--+-- * 'aAssetType'+asset+    :: Asset+asset =+    Asset'+    { _aName = Nothing+    , _aResource = Nothing+    , _aIAMPolicy = Nothing+    , _aAssetType = Nothing+    }++-- | The full name of the asset. For example:+-- \`\/\/compute.googleapis.com\/projects\/my_project_123\/zones\/zone1\/instances\/instance1\`.+-- See [Resource+-- Names](https:\/\/cloud.google.com\/apis\/design\/resource_names#full_resource_name)+-- for more information.+aName :: Lens' Asset (Maybe Text)+aName = lens _aName (\ s a -> s{_aName = a})++-- | Representation of the resource.+aResource :: Lens' Asset (Maybe Resource)+aResource+  = lens _aResource (\ s a -> s{_aResource = a})++-- | Representation of the actual Cloud IAM policy set on a cloud resource.+-- For each resource, there must be at most one Cloud IAM policy set on it.+aIAMPolicy :: Lens' Asset (Maybe Policy)+aIAMPolicy+  = lens _aIAMPolicy (\ s a -> s{_aIAMPolicy = a})++-- | Type of the asset. Example: \"google.compute.Disk\".+aAssetType :: Lens' Asset (Maybe Text)+aAssetType+  = lens _aAssetType (\ s a -> s{_aAssetType = a})++instance FromJSON Asset where+        parseJSON+          = withObject "Asset"+              (\ o ->+                 Asset' <$>+                   (o .:? "name") <*> (o .:? "resource") <*>+                     (o .:? "iamPolicy")+                     <*> (o .:? "assetType"))++instance ToJSON Asset where+        toJSON Asset'{..}+          = object+              (catMaybes+                 [("name" .=) <$> _aName,+                  ("resource" .=) <$> _aResource,+                  ("iamPolicy" .=) <$> _aIAMPolicy,+                  ("assetType" .=) <$> _aAssetType])++-- | A Cloud Storage location.+--+-- /See:/ 'gcsDestination' smart constructor.+newtype GcsDestination = GcsDestination'+    { _gdURI :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GcsDestination' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdURI'+gcsDestination+    :: GcsDestination+gcsDestination =+    GcsDestination'+    { _gdURI = Nothing+    }++-- | The uri of the Cloud Storage object. It\'s the same uri that is used by+-- gsutil. For example: \"gs:\/\/bucket_name\/object_name\". See [Viewing+-- and Editing Object+-- Metadata](https:\/\/cloud.google.com\/storage\/docs\/viewing-editing-metadata)+-- for more information.+gdURI :: Lens' GcsDestination (Maybe Text)+gdURI = lens _gdURI (\ s a -> s{_gdURI = a})++instance FromJSON GcsDestination where+        parseJSON+          = withObject "GcsDestination"+              (\ o -> GcsDestination' <$> (o .:? "uri"))++instance ToJSON GcsDestination where+        toJSON GcsDestination'{..}+          = object (catMaybes [("uri" .=) <$> _gdURI])++--+-- /See:/ 'statusDetailsItem' smart constructor.+newtype StatusDetailsItem = StatusDetailsItem'+    { _sdiAddtional :: HashMap Text JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'StatusDetailsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdiAddtional'+statusDetailsItem+    :: HashMap Text JSONValue -- ^ 'sdiAddtional'+    -> StatusDetailsItem+statusDetailsItem pSdiAddtional_ =+    StatusDetailsItem'+    { _sdiAddtional = _Coerce # pSdiAddtional_+    }++-- | Properties of the object. Contains field \'type with type URL.+sdiAddtional :: Lens' StatusDetailsItem (HashMap Text JSONValue)+sdiAddtional+  = lens _sdiAddtional (\ s a -> s{_sdiAddtional = a})+      . _Coerce++instance FromJSON StatusDetailsItem where+        parseJSON+          = withObject "StatusDetailsItem"+              (\ o -> StatusDetailsItem' <$> (parseJSONObject o))++instance ToJSON StatusDetailsItem where+        toJSON = toJSON . _sdiAddtional++-- | Export asset request.+--+-- /See:/ 'exportAssetsRequest' smart constructor.+data ExportAssetsRequest = ExportAssetsRequest'+    { _earReadTime     :: !(Maybe DateTime')+    , _earAssetTypes   :: !(Maybe [Text])+    , _earOutputConfig :: !(Maybe OutputConfig)+    , _earContentType  :: !(Maybe ExportAssetsRequestContentType)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ExportAssetsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'earReadTime'+--+-- * 'earAssetTypes'+--+-- * 'earOutputConfig'+--+-- * 'earContentType'+exportAssetsRequest+    :: ExportAssetsRequest+exportAssetsRequest =+    ExportAssetsRequest'+    { _earReadTime = Nothing+    , _earAssetTypes = Nothing+    , _earOutputConfig = Nothing+    , _earContentType = Nothing+    }++-- | Timestamp to take an asset snapshot. This can only be set to a timestamp+-- between 2018-10-02 UTC (inclusive) and the current time. If not+-- specified, the current time will be used. Due to delays in resource data+-- collection and indexing, there is a volatile window during which running+-- the same query may get different results.+earReadTime :: Lens' ExportAssetsRequest (Maybe UTCTime)+earReadTime+  = lens _earReadTime (\ s a -> s{_earReadTime = a}) .+      mapping _DateTime++-- | A list of asset types of which to take a snapshot for. For example:+-- \"google.compute.Disk\". If specified, only matching assets will be+-- returned. See [Introduction to Cloud Asset+-- Inventory](https:\/\/cloud.google.com\/resource-manager\/docs\/cloud-asset-inventory\/overview)+-- for all supported asset types.+earAssetTypes :: Lens' ExportAssetsRequest [Text]+earAssetTypes+  = lens _earAssetTypes+      (\ s a -> s{_earAssetTypes = a})+      . _Default+      . _Coerce++-- | Required. Output configuration indicating where the results will be+-- output to. All results will be in newline delimited JSON format.+earOutputConfig :: Lens' ExportAssetsRequest (Maybe OutputConfig)+earOutputConfig+  = lens _earOutputConfig+      (\ s a -> s{_earOutputConfig = a})++-- | Asset content type. If not specified, no content but the asset name will+-- be returned.+earContentType :: Lens' ExportAssetsRequest (Maybe ExportAssetsRequestContentType)+earContentType+  = lens _earContentType+      (\ s a -> s{_earContentType = a})++instance FromJSON ExportAssetsRequest where+        parseJSON+          = withObject "ExportAssetsRequest"+              (\ o ->+                 ExportAssetsRequest' <$>+                   (o .:? "readTime") <*>+                     (o .:? "assetTypes" .!= mempty)+                     <*> (o .:? "outputConfig")+                     <*> (o .:? "contentType"))++instance ToJSON ExportAssetsRequest where+        toJSON ExportAssetsRequest'{..}+          = object+              (catMaybes+                 [("readTime" .=) <$> _earReadTime,+                  ("assetTypes" .=) <$> _earAssetTypes,+                  ("outputConfig" .=) <$> _earOutputConfig,+                  ("contentType" .=) <$> _earContentType])++-- | A time window of (start_time, end_time].+--+-- /See:/ 'timeWindow' smart constructor.+data TimeWindow = TimeWindow'+    { _twStartTime :: !(Maybe DateTime')+    , _twEndTime   :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TimeWindow' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'twStartTime'+--+-- * 'twEndTime'+timeWindow+    :: TimeWindow+timeWindow =+    TimeWindow'+    { _twStartTime = Nothing+    , _twEndTime = Nothing+    }++-- | Start time of the time window (exclusive).+twStartTime :: Lens' TimeWindow (Maybe UTCTime)+twStartTime+  = lens _twStartTime (\ s a -> s{_twStartTime = a}) .+      mapping _DateTime++-- | End time of the time window (inclusive). Current timestamp if not+-- specified.+twEndTime :: Lens' TimeWindow (Maybe UTCTime)+twEndTime+  = lens _twEndTime (\ s a -> s{_twEndTime = a}) .+      mapping _DateTime++instance FromJSON TimeWindow where+        parseJSON+          = withObject "TimeWindow"+              (\ o ->+                 TimeWindow' <$>+                   (o .:? "startTime") <*> (o .:? "endTime"))++instance ToJSON TimeWindow where+        toJSON TimeWindow'{..}+          = object+              (catMaybes+                 [("startTime" .=) <$> _twStartTime,+                  ("endTime" .=) <$> _twEndTime])++-- | Temporal asset. In addition to the asset, the temporal asset includes+-- the status of the asset and valid from and to time of it.+--+-- /See:/ 'temporalAsset' smart constructor.+data TemporalAsset = TemporalAsset'+    { _taWindow  :: !(Maybe TimeWindow)+    , _taAsset   :: !(Maybe Asset)+    , _taDeleted :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TemporalAsset' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'taWindow'+--+-- * 'taAsset'+--+-- * 'taDeleted'+temporalAsset+    :: TemporalAsset+temporalAsset =+    TemporalAsset'+    { _taWindow = Nothing+    , _taAsset = Nothing+    , _taDeleted = Nothing+    }++-- | The time window when the asset data and state was observed.+taWindow :: Lens' TemporalAsset (Maybe TimeWindow)+taWindow = lens _taWindow (\ s a -> s{_taWindow = a})++-- | Asset.+taAsset :: Lens' TemporalAsset (Maybe Asset)+taAsset = lens _taAsset (\ s a -> s{_taAsset = a})++-- | If the asset is deleted or not.+taDeleted :: Lens' TemporalAsset (Maybe Bool)+taDeleted+  = lens _taDeleted (\ s a -> s{_taDeleted = a})++instance FromJSON TemporalAsset where+        parseJSON+          = withObject "TemporalAsset"+              (\ o ->+                 TemporalAsset' <$>+                   (o .:? "window") <*> (o .:? "asset") <*>+                     (o .:? "deleted"))++instance ToJSON TemporalAsset where+        toJSON TemporalAsset'{..}+          = object+              (catMaybes+                 [("window" .=) <$> _taWindow,+                  ("asset" .=) <$> _taAsset,+                  ("deleted" .=) <$> _taDeleted])++-- | Representation of a cloud resource.+--+-- /See:/ 'resource' smart constructor.+data Resource = Resource'+    { _rParent               :: !(Maybe Text)+    , _rData                 :: !(Maybe ResourceData)+    , _rVersion              :: !(Maybe Text)+    , _rDiscoveryName        :: !(Maybe Text)+    , _rDiscoveryDocumentURI :: !(Maybe Text)+    , _rResourceURL          :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Resource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rParent'+--+-- * 'rData'+--+-- * 'rVersion'+--+-- * 'rDiscoveryName'+--+-- * 'rDiscoveryDocumentURI'+--+-- * 'rResourceURL'+resource+    :: Resource+resource =+    Resource'+    { _rParent = Nothing+    , _rData = Nothing+    , _rVersion = Nothing+    , _rDiscoveryName = Nothing+    , _rDiscoveryDocumentURI = Nothing+    , _rResourceURL = Nothing+    }++-- | The full name of the immediate parent of this resource. See [Resource+-- Names](https:\/\/cloud.google.com\/apis\/design\/resource_names#full_resource_name)+-- for more information. For GCP assets, it is the parent resource defined+-- in the [Cloud IAM policy+-- hierarchy](https:\/\/cloud.google.com\/iam\/docs\/overview#policy_hierarchy).+-- For example:+-- \`\"\/\/cloudresourcemanager.googleapis.com\/projects\/my_project_123\"\`.+-- For third-party assets, it is up to the users to define.+rParent :: Lens' Resource (Maybe Text)+rParent = lens _rParent (\ s a -> s{_rParent = a})++-- | The content of the resource, in which some sensitive fields are scrubbed+-- away and may not be present.+rData :: Lens' Resource (Maybe ResourceData)+rData = lens _rData (\ s a -> s{_rData = a})++-- | The API version. Example: \"v1\".+rVersion :: Lens' Resource (Maybe Text)+rVersion = lens _rVersion (\ s a -> s{_rVersion = a})++-- | The JSON schema name listed in the discovery document. Example:+-- \"Project\". It will be left unspecified for resources (such as Cloud+-- Bigtable) without a discovery-based API.+rDiscoveryName :: Lens' Resource (Maybe Text)+rDiscoveryName+  = lens _rDiscoveryName+      (\ s a -> s{_rDiscoveryName = a})++-- | The URL of the discovery document containing the resource\'s JSON+-- schema. For example:+-- \`\"https:\/\/www.googleapis.com\/discovery\/v1\/apis\/compute\/v1\/rest\"\`.+-- It will be left unspecified for resources without a discovery-based API,+-- such as Cloud Bigtable.+rDiscoveryDocumentURI :: Lens' Resource (Maybe Text)+rDiscoveryDocumentURI+  = lens _rDiscoveryDocumentURI+      (\ s a -> s{_rDiscoveryDocumentURI = a})++-- | The REST URL for accessing the resource. An HTTP GET operation using+-- this URL returns the resource itself. Example:+-- \`https:\/\/cloudresourcemanager.googleapis.com\/v1\/projects\/my-project-123\`.+-- It will be left unspecified for resources without a REST API.+rResourceURL :: Lens' Resource (Maybe Text)+rResourceURL+  = lens _rResourceURL (\ s a -> s{_rResourceURL = a})++instance FromJSON Resource where+        parseJSON+          = withObject "Resource"+              (\ o ->+                 Resource' <$>+                   (o .:? "parent") <*> (o .:? "data") <*>+                     (o .:? "version")+                     <*> (o .:? "discoveryName")+                     <*> (o .:? "discoveryDocumentUri")+                     <*> (o .:? "resourceUrl"))++instance ToJSON Resource where+        toJSON Resource'{..}+          = object+              (catMaybes+                 [("parent" .=) <$> _rParent, ("data" .=) <$> _rData,+                  ("version" .=) <$> _rVersion,+                  ("discoveryName" .=) <$> _rDiscoveryName,+                  ("discoveryDocumentUri" .=) <$>+                    _rDiscoveryDocumentURI,+                  ("resourceUrl" .=) <$> _rResourceURL])++-- | The content of the resource, in which some sensitive fields are scrubbed+-- away and may not be present.+--+-- /See:/ 'resourceData' smart constructor.+newtype ResourceData = ResourceData'+    { _rdAddtional :: HashMap Text JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ResourceData' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rdAddtional'+resourceData+    :: HashMap Text JSONValue -- ^ 'rdAddtional'+    -> ResourceData+resourceData pRdAddtional_ =+    ResourceData'+    { _rdAddtional = _Coerce # pRdAddtional_+    }++-- | Properties of the object.+rdAddtional :: Lens' ResourceData (HashMap Text JSONValue)+rdAddtional+  = lens _rdAddtional (\ s a -> s{_rdAddtional = a}) .+      _Coerce++instance FromJSON ResourceData where+        parseJSON+          = withObject "ResourceData"+              (\ o -> ResourceData' <$> (parseJSONObject o))++instance ToJSON ResourceData where+        toJSON = toJSON . _rdAddtional++-- | Output configuration for export assets destination.+--+-- /See:/ 'outputConfig' smart constructor.+newtype OutputConfig = OutputConfig'+    { _ocGcsDestination :: Maybe GcsDestination+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OutputConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ocGcsDestination'+outputConfig+    :: OutputConfig+outputConfig =+    OutputConfig'+    { _ocGcsDestination = Nothing+    }++-- | Destination on Cloud Storage.+ocGcsDestination :: Lens' OutputConfig (Maybe GcsDestination)+ocGcsDestination+  = lens _ocGcsDestination+      (\ s a -> s{_ocGcsDestination = a})++instance FromJSON OutputConfig where+        parseJSON+          = withObject "OutputConfig"+              (\ o -> OutputConfig' <$> (o .:? "gcsDestination"))++instance ToJSON OutputConfig where+        toJSON OutputConfig'{..}+          = object+              (catMaybes+                 [("gcsDestination" .=) <$> _ocGcsDestination])++-- | Defines an Identity and Access Management (IAM) policy. It is used to+-- specify access control policies for Cloud Platform resources. A+-- \`Policy\` consists of a list of \`bindings\`. A \`binding\` binds a+-- list of \`members\` to a \`role\`, where the members can be user+-- accounts, Google groups, Google domains, and service accounts. A+-- \`role\` is a named list of permissions defined by IAM. **JSON Example**+-- { \"bindings\": [ { \"role\": \"roles\/owner\", \"members\": [+-- \"user:mike\'example.com\", \"group:admins\'example.com\",+-- \"domain:google.com\",+-- \"serviceAccount:my-other-app\'appspot.gserviceaccount.com\" ] }, {+-- \"role\": \"roles\/viewer\", \"members\": [\"user:sean\'example.com\"] }+-- ] } **YAML Example** bindings: - members: - user:mike\'example.com -+-- group:admins\'example.com - domain:google.com -+-- serviceAccount:my-other-app\'appspot.gserviceaccount.com role:+-- roles\/owner - members: - user:sean\'example.com role: roles\/viewer For+-- a description of IAM and its features, see the [IAM developer\'s+-- guide](https:\/\/cloud.google.com\/iam\/docs).+--+-- /See:/ 'policy' smart constructor.+data Policy = Policy'+    { _pAuditConfigs :: !(Maybe [AuditConfig])+    , _pEtag         :: !(Maybe Bytes)+    , _pVersion      :: !(Maybe (Textual Int32))+    , _pBindings     :: !(Maybe [Binding])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Policy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pAuditConfigs'+--+-- * 'pEtag'+--+-- * 'pVersion'+--+-- * 'pBindings'+policy+    :: Policy+policy =+    Policy'+    { _pAuditConfigs = Nothing+    , _pEtag = Nothing+    , _pVersion = Nothing+    , _pBindings = Nothing+    }++-- | Specifies cloud audit logging configuration for this policy.+pAuditConfigs :: Lens' Policy [AuditConfig]+pAuditConfigs+  = lens _pAuditConfigs+      (\ s a -> s{_pAuditConfigs = a})+      . _Default+      . _Coerce++-- | \`etag\` is used for optimistic concurrency control as a way to help+-- prevent simultaneous updates of a policy from overwriting each other. It+-- is strongly suggested that systems make use of the \`etag\` in the+-- read-modify-write cycle to perform policy updates in order to avoid race+-- conditions: An \`etag\` is returned in the response to \`getIamPolicy\`,+-- and systems are expected to put that etag in the request to+-- \`setIamPolicy\` to ensure that their change will be applied to the same+-- version of the policy. If no \`etag\` is provided in the call to+-- \`setIamPolicy\`, then the existing policy is overwritten blindly.+pEtag :: Lens' Policy (Maybe ByteString)+pEtag+  = lens _pEtag (\ s a -> s{_pEtag = a}) .+      mapping _Bytes++-- | Deprecated.+pVersion :: Lens' Policy (Maybe Int32)+pVersion+  = lens _pVersion (\ s a -> s{_pVersion = a}) .+      mapping _Coerce++-- | Associates a list of \`members\` to a \`role\`. \`bindings\` with no+-- members will result in an error.+pBindings :: Lens' Policy [Binding]+pBindings+  = lens _pBindings (\ s a -> s{_pBindings = a}) .+      _Default+      . _Coerce++instance FromJSON Policy where+        parseJSON+          = withObject "Policy"+              (\ o ->+                 Policy' <$>+                   (o .:? "auditConfigs" .!= mempty) <*> (o .:? "etag")+                     <*> (o .:? "version")+                     <*> (o .:? "bindings" .!= mempty))++instance ToJSON Policy where+        toJSON Policy'{..}+          = object+              (catMaybes+                 [("auditConfigs" .=) <$> _pAuditConfigs,+                  ("etag" .=) <$> _pEtag, ("version" .=) <$> _pVersion,+                  ("bindings" .=) <$> _pBindings])++-- | Batch get assets history response.+--+-- /See:/ 'batchGetAssetsHistoryResponse' smart constructor.+newtype BatchGetAssetsHistoryResponse = BatchGetAssetsHistoryResponse'+    { _bgahrAssets :: Maybe [TemporalAsset]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchGetAssetsHistoryResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bgahrAssets'+batchGetAssetsHistoryResponse+    :: BatchGetAssetsHistoryResponse+batchGetAssetsHistoryResponse =+    BatchGetAssetsHistoryResponse'+    { _bgahrAssets = Nothing+    }++-- | A list of assets with valid time windows.+bgahrAssets :: Lens' BatchGetAssetsHistoryResponse [TemporalAsset]+bgahrAssets+  = lens _bgahrAssets (\ s a -> s{_bgahrAssets = a}) .+      _Default+      . _Coerce++instance FromJSON BatchGetAssetsHistoryResponse where+        parseJSON+          = withObject "BatchGetAssetsHistoryResponse"+              (\ o ->+                 BatchGetAssetsHistoryResponse' <$>+                   (o .:? "assets" .!= mempty))++instance ToJSON BatchGetAssetsHistoryResponse where+        toJSON BatchGetAssetsHistoryResponse'{..}+          = object (catMaybes [("assets" .=) <$> _bgahrAssets])++-- | Service-specific metadata associated with the operation. It typically+-- contains progress information and common metadata such as create time.+-- Some services might not provide such metadata. Any method that returns a+-- long-running operation should document the metadata type, if any.+--+-- /See:/ 'operationMetadata' smart constructor.+newtype OperationMetadata = OperationMetadata'+    { _omAddtional :: HashMap Text JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OperationMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'omAddtional'+operationMetadata+    :: HashMap Text JSONValue -- ^ 'omAddtional'+    -> OperationMetadata+operationMetadata pOmAddtional_ =+    OperationMetadata'+    { _omAddtional = _Coerce # pOmAddtional_+    }++-- | Properties of the object. Contains field \'type with type URL.+omAddtional :: Lens' OperationMetadata (HashMap Text JSONValue)+omAddtional+  = lens _omAddtional (\ s a -> s{_omAddtional = a}) .+      _Coerce++instance FromJSON OperationMetadata where+        parseJSON+          = withObject "OperationMetadata"+              (\ o -> OperationMetadata' <$> (parseJSONObject o))++instance ToJSON OperationMetadata where+        toJSON = toJSON . _omAddtional++-- | Provides the configuration for logging a type of permissions. Example: {+-- \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\",+-- \"exempted_members\": [ \"user:foo\'gmail.com\" ] }, { \"log_type\":+-- \"DATA_WRITE\", } ] } This enables \'DATA_READ\' and \'DATA_WRITE\'+-- logging, while exempting foo\'gmail.com from DATA_READ logging.+--+-- /See:/ 'auditLogConfig' smart constructor.+data AuditLogConfig = AuditLogConfig'+    { _alcLogType         :: !(Maybe AuditLogConfigLogType)+    , _alcExemptedMembers :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AuditLogConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'alcLogType'+--+-- * 'alcExemptedMembers'+auditLogConfig+    :: AuditLogConfig+auditLogConfig =+    AuditLogConfig'+    { _alcLogType = Nothing+    , _alcExemptedMembers = Nothing+    }++-- | The log type that this config enables.+alcLogType :: Lens' AuditLogConfig (Maybe AuditLogConfigLogType)+alcLogType+  = lens _alcLogType (\ s a -> s{_alcLogType = a})++-- | Specifies the identities that do not cause logging for this type of+-- permission. Follows the same format of Binding.members.+alcExemptedMembers :: Lens' AuditLogConfig [Text]+alcExemptedMembers+  = lens _alcExemptedMembers+      (\ s a -> s{_alcExemptedMembers = a})+      . _Default+      . _Coerce++instance FromJSON AuditLogConfig where+        parseJSON+          = withObject "AuditLogConfig"+              (\ o ->+                 AuditLogConfig' <$>+                   (o .:? "logType") <*>+                     (o .:? "exemptedMembers" .!= mempty))++instance ToJSON AuditLogConfig where+        toJSON AuditLogConfig'{..}+          = object+              (catMaybes+                 [("logType" .=) <$> _alcLogType,+                  ("exemptedMembers" .=) <$> _alcExemptedMembers])++-- | The normal response of the operation in case of success. If the original+-- method returns no data on success, such as \`Delete\`, the response is+-- \`google.protobuf.Empty\`. If the original method is standard+-- \`Get\`\/\`Create\`\/\`Update\`, the response should be the resource.+-- For other methods, the response should have the type \`XxxResponse\`,+-- where \`Xxx\` is the original method name. For example, if the original+-- method name is \`TakeSnapshot()\`, the inferred response type is+-- \`TakeSnapshotResponse\`.+--+-- /See:/ 'operationResponse' smart constructor.+newtype OperationResponse = OperationResponse'+    { _orAddtional :: HashMap Text JSONValue+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OperationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'orAddtional'+operationResponse+    :: HashMap Text JSONValue -- ^ 'orAddtional'+    -> OperationResponse+operationResponse pOrAddtional_ =+    OperationResponse'+    { _orAddtional = _Coerce # pOrAddtional_+    }++-- | Properties of the object. Contains field \'type with type URL.+orAddtional :: Lens' OperationResponse (HashMap Text JSONValue)+orAddtional+  = lens _orAddtional (\ s a -> s{_orAddtional = a}) .+      _Coerce++instance FromJSON OperationResponse where+        parseJSON+          = withObject "OperationResponse"+              (\ o -> OperationResponse' <$> (parseJSONObject o))++instance ToJSON OperationResponse where+        toJSON = toJSON . _orAddtional++-- | Associates \`members\` with a \`role\`.+--+-- /See:/ 'binding' smart constructor.+data Binding = Binding'+    { _bMembers   :: !(Maybe [Text])+    , _bRole      :: !(Maybe Text)+    , _bCondition :: !(Maybe Expr)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Binding' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bMembers'+--+-- * 'bRole'+--+-- * 'bCondition'+binding+    :: Binding+binding =+    Binding'+    { _bMembers = Nothing+    , _bRole = Nothing+    , _bCondition = Nothing+    }++-- | Specifies the identities requesting access for a Cloud Platform+-- resource. \`members\` can have the following values: * \`allUsers\`: A+-- special identifier that represents anyone who is on the internet; with+-- or without a Google account. * \`allAuthenticatedUsers\`: A special+-- identifier that represents anyone who is authenticated with a Google+-- account or a service account. * \`user:{emailid}\`: An email address+-- that represents a specific Google account. For example,+-- \`alice\'gmail.com\` . * \`serviceAccount:{emailid}\`: An email address+-- that represents a service account. For example,+-- \`my-other-app\'appspot.gserviceaccount.com\`. * \`group:{emailid}\`: An+-- email address that represents a Google group. For example,+-- \`admins\'example.com\`. * \`domain:{domain}\`: A Google Apps domain+-- name that represents all the users of that domain. For example,+-- \`google.com\` or \`example.com\`.+bMembers :: Lens' Binding [Text]+bMembers+  = lens _bMembers (\ s a -> s{_bMembers = a}) .+      _Default+      . _Coerce++-- | Role that is assigned to \`members\`. For example, \`roles\/viewer\`,+-- \`roles\/editor\`, or \`roles\/owner\`.+bRole :: Lens' Binding (Maybe Text)+bRole = lens _bRole (\ s a -> s{_bRole = a})++-- | Unimplemented. The condition that is associated with this binding. NOTE:+-- an unsatisfied condition will not allow user access via current binding.+-- Different bindings, including their conditions, are examined+-- independently.+bCondition :: Lens' Binding (Maybe Expr)+bCondition+  = lens _bCondition (\ s a -> s{_bCondition = a})++instance FromJSON Binding where+        parseJSON+          = withObject "Binding"+              (\ o ->+                 Binding' <$>+                   (o .:? "members" .!= mempty) <*> (o .:? "role") <*>+                     (o .:? "condition"))++instance ToJSON Binding where+        toJSON Binding'{..}+          = object+              (catMaybes+                 [("members" .=) <$> _bMembers,+                  ("role" .=) <$> _bRole,+                  ("condition" .=) <$> _bCondition])
+ gen/Network/Google/CloudAsset/Types/Sum.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.CloudAsset.Types.Sum+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.CloudAsset.Types.Sum where++import           Network.Google.Prelude hiding (Bytes)++-- | Asset content type. If not specified, no content but the asset name will+-- be returned.+data ExportAssetsRequestContentType+    = EARCTContentTypeUnspecified+      -- ^ @CONTENT_TYPE_UNSPECIFIED@+      -- Unspecified content type.+    | EARCTResource+      -- ^ @RESOURCE@+      -- Resource metadata.+    | EARCTIAMPolicy+      -- ^ @IAM_POLICY@+      -- The actual IAM policy set on a resource.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ExportAssetsRequestContentType++instance FromHttpApiData ExportAssetsRequestContentType where+    parseQueryParam = \case+        "CONTENT_TYPE_UNSPECIFIED" -> Right EARCTContentTypeUnspecified+        "RESOURCE" -> Right EARCTResource+        "IAM_POLICY" -> Right EARCTIAMPolicy+        x -> Left ("Unable to parse ExportAssetsRequestContentType from: " <> x)++instance ToHttpApiData ExportAssetsRequestContentType where+    toQueryParam = \case+        EARCTContentTypeUnspecified -> "CONTENT_TYPE_UNSPECIFIED"+        EARCTResource -> "RESOURCE"+        EARCTIAMPolicy -> "IAM_POLICY"++instance FromJSON ExportAssetsRequestContentType where+    parseJSON = parseJSONText "ExportAssetsRequestContentType"++instance ToJSON ExportAssetsRequestContentType where+    toJSON = toJSONText++-- | The log type that this config enables.+data AuditLogConfigLogType+    = LogTypeUnspecified+      -- ^ @LOG_TYPE_UNSPECIFIED@+      -- Default case. Should never be this.+    | AdminRead+      -- ^ @ADMIN_READ@+      -- Admin reads. Example: CloudIAM getIamPolicy+    | DataWrite+      -- ^ @DATA_WRITE@+      -- Data writes. Example: CloudSQL Users create+    | DataRead+      -- ^ @DATA_READ@+      -- Data reads. Example: CloudSQL Users list+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable AuditLogConfigLogType++instance FromHttpApiData AuditLogConfigLogType where+    parseQueryParam = \case+        "LOG_TYPE_UNSPECIFIED" -> Right LogTypeUnspecified+        "ADMIN_READ" -> Right AdminRead+        "DATA_WRITE" -> Right DataWrite+        "DATA_READ" -> Right DataRead+        x -> Left ("Unable to parse AuditLogConfigLogType from: " <> x)++instance ToHttpApiData AuditLogConfigLogType where+    toQueryParam = \case+        LogTypeUnspecified -> "LOG_TYPE_UNSPECIFIED"+        AdminRead -> "ADMIN_READ"+        DataWrite -> "DATA_WRITE"+        DataRead -> "DATA_READ"++instance FromJSON AuditLogConfigLogType where+    parseJSON = parseJSONText "AuditLogConfigLogType"++instance ToJSON AuditLogConfigLogType where+    toJSON = toJSONText++-- | V1 error format.+data Xgafv+    = X1+      -- ^ @1@+      -- v1 error format+    | X2+      -- ^ @2@+      -- v2 error format+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable Xgafv++instance FromHttpApiData Xgafv where+    parseQueryParam = \case+        "1" -> Right X1+        "2" -> Right X2+        x -> Left ("Unable to parse Xgafv from: " <> x)++instance ToHttpApiData Xgafv where+    toQueryParam = \case+        X1 -> "1"+        X2 -> "2"++instance FromJSON Xgafv where+    parseJSON = parseJSONText "Xgafv"++instance ToJSON Xgafv where+    toJSON = toJSONText
+ gen/Network/Google/Resource/CloudAsset/Organizations/BatchGetAssetsHistory.hs view
@@ -0,0 +1,225 @@+{-# 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.CloudAsset.Organizations.BatchGetAssetsHistory+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Batch gets the update history of assets that overlap a time window. For+-- RESOURCE content, this API outputs history with asset in both non-delete+-- or deleted status. For IAM_POLICY content, this API outputs history when+-- the asset and its attached IAM POLICY both exist. This can create gaps+-- in the output history.+--+-- /See:/ <https://console.cloud.google.com/apis/api/cloudasset.googleapis.com/overview Cloud Asset API Reference> for @cloudasset.organizations.batchGetAssetsHistory@.+module Network.Google.Resource.CloudAsset.Organizations.BatchGetAssetsHistory+    (+    -- * REST Resource+      OrganizationsBatchGetAssetsHistoryResource++    -- * Creating a Request+    , organizationsBatchGetAssetsHistory+    , OrganizationsBatchGetAssetsHistory++    -- * Request Lenses+    , obgahParent+    , obgahXgafv+    , obgahReadTimeWindowEndTime+    , obgahUploadProtocol+    , obgahAccessToken+    , obgahUploadType+    , obgahAssetNames+    , obgahReadTimeWindowStartTime+    , obgahContentType+    , obgahCallback+    ) where++import           Network.Google.CloudAsset.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudasset.organizations.batchGetAssetsHistory@ method which the+-- 'OrganizationsBatchGetAssetsHistory' request conforms to.+type OrganizationsBatchGetAssetsHistoryResource =+     "v1beta1" :>+       CaptureMode "parent" "batchGetAssetsHistory" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "readTimeWindow.endTime" DateTime' :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParams "assetNames" Text :>+                     QueryParam "readTimeWindow.startTime" DateTime' :>+                       QueryParam "contentType" Text :>+                         QueryParam "callback" Text :>+                           QueryParam "alt" AltJSON :>+                             Get '[JSON] BatchGetAssetsHistoryResponse++-- | Batch gets the update history of assets that overlap a time window. For+-- RESOURCE content, this API outputs history with asset in both non-delete+-- or deleted status. For IAM_POLICY content, this API outputs history when+-- the asset and its attached IAM POLICY both exist. This can create gaps+-- in the output history.+--+-- /See:/ 'organizationsBatchGetAssetsHistory' smart constructor.+data OrganizationsBatchGetAssetsHistory = OrganizationsBatchGetAssetsHistory'+    { _obgahParent                  :: !Text+    , _obgahXgafv                   :: !(Maybe Xgafv)+    , _obgahReadTimeWindowEndTime   :: !(Maybe DateTime')+    , _obgahUploadProtocol          :: !(Maybe Text)+    , _obgahAccessToken             :: !(Maybe Text)+    , _obgahUploadType              :: !(Maybe Text)+    , _obgahAssetNames              :: !(Maybe [Text])+    , _obgahReadTimeWindowStartTime :: !(Maybe DateTime')+    , _obgahContentType             :: !(Maybe Text)+    , _obgahCallback                :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OrganizationsBatchGetAssetsHistory' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'obgahParent'+--+-- * 'obgahXgafv'+--+-- * 'obgahReadTimeWindowEndTime'+--+-- * 'obgahUploadProtocol'+--+-- * 'obgahAccessToken'+--+-- * 'obgahUploadType'+--+-- * 'obgahAssetNames'+--+-- * 'obgahReadTimeWindowStartTime'+--+-- * 'obgahContentType'+--+-- * 'obgahCallback'+organizationsBatchGetAssetsHistory+    :: Text -- ^ 'obgahParent'+    -> OrganizationsBatchGetAssetsHistory+organizationsBatchGetAssetsHistory pObgahParent_ =+    OrganizationsBatchGetAssetsHistory'+    { _obgahParent = pObgahParent_+    , _obgahXgafv = Nothing+    , _obgahReadTimeWindowEndTime = Nothing+    , _obgahUploadProtocol = Nothing+    , _obgahAccessToken = Nothing+    , _obgahUploadType = Nothing+    , _obgahAssetNames = Nothing+    , _obgahReadTimeWindowStartTime = Nothing+    , _obgahContentType = Nothing+    , _obgahCallback = Nothing+    }++-- | Required. The relative name of the root asset. It can only be an+-- organization number (such as \"organizations\/123\"), a project ID (such+-- as \"projects\/my-project-id\")\", or a project number (such as+-- \"projects\/12345\").+obgahParent :: Lens' OrganizationsBatchGetAssetsHistory Text+obgahParent+  = lens _obgahParent (\ s a -> s{_obgahParent = a})++-- | V1 error format.+obgahXgafv :: Lens' OrganizationsBatchGetAssetsHistory (Maybe Xgafv)+obgahXgafv+  = lens _obgahXgafv (\ s a -> s{_obgahXgafv = a})++-- | End time of the time window (inclusive). Current timestamp if not+-- specified.+obgahReadTimeWindowEndTime :: Lens' OrganizationsBatchGetAssetsHistory (Maybe UTCTime)+obgahReadTimeWindowEndTime+  = lens _obgahReadTimeWindowEndTime+      (\ s a -> s{_obgahReadTimeWindowEndTime = a})+      . mapping _DateTime++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+obgahUploadProtocol :: Lens' OrganizationsBatchGetAssetsHistory (Maybe Text)+obgahUploadProtocol+  = lens _obgahUploadProtocol+      (\ s a -> s{_obgahUploadProtocol = a})++-- | OAuth access token.+obgahAccessToken :: Lens' OrganizationsBatchGetAssetsHistory (Maybe Text)+obgahAccessToken+  = lens _obgahAccessToken+      (\ s a -> s{_obgahAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+obgahUploadType :: Lens' OrganizationsBatchGetAssetsHistory (Maybe Text)+obgahUploadType+  = lens _obgahUploadType+      (\ s a -> s{_obgahUploadType = a})++-- | A list of the full names of the assets. For example:+-- \`\/\/compute.googleapis.com\/projects\/my_project_123\/zones\/zone1\/instances\/instance1\`.+-- See [Resource+-- Names](https:\/\/cloud.google.com\/apis\/design\/resource_names#full_resource_name)+-- for more info. The request becomes a no-op if the asset name list is+-- empty, and the max size of the asset name list is 100 in one request.+obgahAssetNames :: Lens' OrganizationsBatchGetAssetsHistory [Text]+obgahAssetNames+  = lens _obgahAssetNames+      (\ s a -> s{_obgahAssetNames = a})+      . _Default+      . _Coerce++-- | Start time of the time window (exclusive).+obgahReadTimeWindowStartTime :: Lens' OrganizationsBatchGetAssetsHistory (Maybe UTCTime)+obgahReadTimeWindowStartTime+  = lens _obgahReadTimeWindowStartTime+      (\ s a -> s{_obgahReadTimeWindowStartTime = a})+      . mapping _DateTime++-- | Required. The content type.+obgahContentType :: Lens' OrganizationsBatchGetAssetsHistory (Maybe Text)+obgahContentType+  = lens _obgahContentType+      (\ s a -> s{_obgahContentType = a})++-- | JSONP+obgahCallback :: Lens' OrganizationsBatchGetAssetsHistory (Maybe Text)+obgahCallback+  = lens _obgahCallback+      (\ s a -> s{_obgahCallback = a})++instance GoogleRequest+         OrganizationsBatchGetAssetsHistory where+        type Rs OrganizationsBatchGetAssetsHistory =+             BatchGetAssetsHistoryResponse+        type Scopes OrganizationsBatchGetAssetsHistory =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient OrganizationsBatchGetAssetsHistory'{..}+          = go _obgahParent _obgahXgafv+              _obgahReadTimeWindowEndTime+              _obgahUploadProtocol+              _obgahAccessToken+              _obgahUploadType+              (_obgahAssetNames ^. _Default)+              _obgahReadTimeWindowStartTime+              _obgahContentType+              _obgahCallback+              (Just AltJSON)+              cloudAssetService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy OrganizationsBatchGetAssetsHistoryResource)+                      mempty
+ gen/Network/Google/Resource/CloudAsset/Organizations/ExportAssets.hs view
@@ -0,0 +1,169 @@+{-# 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.CloudAsset.Organizations.ExportAssets+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Exports assets with time and resource types to a given Cloud Storage+-- location. The output format is newline-delimited JSON. This API+-- implements the google.longrunning.Operation API allowing you to keep+-- track of the export.+--+-- /See:/ <https://console.cloud.google.com/apis/api/cloudasset.googleapis.com/overview Cloud Asset API Reference> for @cloudasset.organizations.exportAssets@.+module Network.Google.Resource.CloudAsset.Organizations.ExportAssets+    (+    -- * REST Resource+      OrganizationsExportAssetsResource++    -- * Creating a Request+    , organizationsExportAssets+    , OrganizationsExportAssets++    -- * Request Lenses+    , oeaParent+    , oeaXgafv+    , oeaUploadProtocol+    , oeaAccessToken+    , oeaUploadType+    , oeaPayload+    , oeaCallback+    ) where++import           Network.Google.CloudAsset.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudasset.organizations.exportAssets@ method which the+-- 'OrganizationsExportAssets' request conforms to.+type OrganizationsExportAssetsResource =+     "v1beta1" :>+       CaptureMode "parent" "exportAssets" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] ExportAssetsRequest :>+                       Post '[JSON] Operation++-- | Exports assets with time and resource types to a given Cloud Storage+-- location. The output format is newline-delimited JSON. This API+-- implements the google.longrunning.Operation API allowing you to keep+-- track of the export.+--+-- /See:/ 'organizationsExportAssets' smart constructor.+data OrganizationsExportAssets = OrganizationsExportAssets'+    { _oeaParent         :: !Text+    , _oeaXgafv          :: !(Maybe Xgafv)+    , _oeaUploadProtocol :: !(Maybe Text)+    , _oeaAccessToken    :: !(Maybe Text)+    , _oeaUploadType     :: !(Maybe Text)+    , _oeaPayload        :: !ExportAssetsRequest+    , _oeaCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OrganizationsExportAssets' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oeaParent'+--+-- * 'oeaXgafv'+--+-- * 'oeaUploadProtocol'+--+-- * 'oeaAccessToken'+--+-- * 'oeaUploadType'+--+-- * 'oeaPayload'+--+-- * 'oeaCallback'+organizationsExportAssets+    :: Text -- ^ 'oeaParent'+    -> ExportAssetsRequest -- ^ 'oeaPayload'+    -> OrganizationsExportAssets+organizationsExportAssets pOeaParent_ pOeaPayload_ =+    OrganizationsExportAssets'+    { _oeaParent = pOeaParent_+    , _oeaXgafv = Nothing+    , _oeaUploadProtocol = Nothing+    , _oeaAccessToken = Nothing+    , _oeaUploadType = Nothing+    , _oeaPayload = pOeaPayload_+    , _oeaCallback = Nothing+    }++-- | Required. The relative name of the root asset. This can only be an+-- organization number (such as \"organizations\/123\"), a project ID (such+-- as \"projects\/my-project-id\"), or a project number (such as+-- \"projects\/12345\").+oeaParent :: Lens' OrganizationsExportAssets Text+oeaParent+  = lens _oeaParent (\ s a -> s{_oeaParent = a})++-- | V1 error format.+oeaXgafv :: Lens' OrganizationsExportAssets (Maybe Xgafv)+oeaXgafv = lens _oeaXgafv (\ s a -> s{_oeaXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+oeaUploadProtocol :: Lens' OrganizationsExportAssets (Maybe Text)+oeaUploadProtocol+  = lens _oeaUploadProtocol+      (\ s a -> s{_oeaUploadProtocol = a})++-- | OAuth access token.+oeaAccessToken :: Lens' OrganizationsExportAssets (Maybe Text)+oeaAccessToken+  = lens _oeaAccessToken+      (\ s a -> s{_oeaAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+oeaUploadType :: Lens' OrganizationsExportAssets (Maybe Text)+oeaUploadType+  = lens _oeaUploadType+      (\ s a -> s{_oeaUploadType = a})++-- | Multipart request metadata.+oeaPayload :: Lens' OrganizationsExportAssets ExportAssetsRequest+oeaPayload+  = lens _oeaPayload (\ s a -> s{_oeaPayload = a})++-- | JSONP+oeaCallback :: Lens' OrganizationsExportAssets (Maybe Text)+oeaCallback+  = lens _oeaCallback (\ s a -> s{_oeaCallback = a})++instance GoogleRequest OrganizationsExportAssets+         where+        type Rs OrganizationsExportAssets = Operation+        type Scopes OrganizationsExportAssets =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient OrganizationsExportAssets'{..}+          = go _oeaParent _oeaXgafv _oeaUploadProtocol+              _oeaAccessToken+              _oeaUploadType+              _oeaCallback+              (Just AltJSON)+              _oeaPayload+              cloudAssetService+          where go+                  = buildClient+                      (Proxy :: Proxy OrganizationsExportAssetsResource)+                      mempty
+ gen/Network/Google/Resource/CloudAsset/Organizations/Operations/Get.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.CloudAsset.Organizations.Operations.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the latest state of a long-running operation. Clients can use this+-- method to poll the operation result at intervals as recommended by the+-- API service.+--+-- /See:/ <https://console.cloud.google.com/apis/api/cloudasset.googleapis.com/overview Cloud Asset API Reference> for @cloudasset.organizations.operations.get@.+module Network.Google.Resource.CloudAsset.Organizations.Operations.Get+    (+    -- * REST Resource+      OrganizationsOperationsGetResource++    -- * Creating a Request+    , organizationsOperationsGet+    , OrganizationsOperationsGet++    -- * Request Lenses+    , oogXgafv+    , oogUploadProtocol+    , oogAccessToken+    , oogUploadType+    , oogName+    , oogCallback+    ) where++import           Network.Google.CloudAsset.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudasset.organizations.operations.get@ method which the+-- 'OrganizationsOperationsGet' request conforms to.+type OrganizationsOperationsGetResource =+     "v1beta1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Operation++-- | Gets the latest state of a long-running operation. Clients can use this+-- method to poll the operation result at intervals as recommended by the+-- API service.+--+-- /See:/ 'organizationsOperationsGet' smart constructor.+data OrganizationsOperationsGet = OrganizationsOperationsGet'+    { _oogXgafv          :: !(Maybe Xgafv)+    , _oogUploadProtocol :: !(Maybe Text)+    , _oogAccessToken    :: !(Maybe Text)+    , _oogUploadType     :: !(Maybe Text)+    , _oogName           :: !Text+    , _oogCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OrganizationsOperationsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oogXgafv'+--+-- * 'oogUploadProtocol'+--+-- * 'oogAccessToken'+--+-- * 'oogUploadType'+--+-- * 'oogName'+--+-- * 'oogCallback'+organizationsOperationsGet+    :: Text -- ^ 'oogName'+    -> OrganizationsOperationsGet+organizationsOperationsGet pOogName_ =+    OrganizationsOperationsGet'+    { _oogXgafv = Nothing+    , _oogUploadProtocol = Nothing+    , _oogAccessToken = Nothing+    , _oogUploadType = Nothing+    , _oogName = pOogName_+    , _oogCallback = Nothing+    }++-- | V1 error format.+oogXgafv :: Lens' OrganizationsOperationsGet (Maybe Xgafv)+oogXgafv = lens _oogXgafv (\ s a -> s{_oogXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+oogUploadProtocol :: Lens' OrganizationsOperationsGet (Maybe Text)+oogUploadProtocol+  = lens _oogUploadProtocol+      (\ s a -> s{_oogUploadProtocol = a})++-- | OAuth access token.+oogAccessToken :: Lens' OrganizationsOperationsGet (Maybe Text)+oogAccessToken+  = lens _oogAccessToken+      (\ s a -> s{_oogAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+oogUploadType :: Lens' OrganizationsOperationsGet (Maybe Text)+oogUploadType+  = lens _oogUploadType+      (\ s a -> s{_oogUploadType = a})++-- | The name of the operation resource.+oogName :: Lens' OrganizationsOperationsGet Text+oogName = lens _oogName (\ s a -> s{_oogName = a})++-- | JSONP+oogCallback :: Lens' OrganizationsOperationsGet (Maybe Text)+oogCallback+  = lens _oogCallback (\ s a -> s{_oogCallback = a})++instance GoogleRequest OrganizationsOperationsGet+         where+        type Rs OrganizationsOperationsGet = Operation+        type Scopes OrganizationsOperationsGet =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient OrganizationsOperationsGet'{..}+          = go _oogName _oogXgafv _oogUploadProtocol+              _oogAccessToken+              _oogUploadType+              _oogCallback+              (Just AltJSON)+              cloudAssetService+          where go+                  = buildClient+                      (Proxy :: Proxy OrganizationsOperationsGetResource)+                      mempty
+ gen/Network/Google/Resource/CloudAsset/Projects/BatchGetAssetsHistory.hs view
@@ -0,0 +1,225 @@+{-# 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.CloudAsset.Projects.BatchGetAssetsHistory+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Batch gets the update history of assets that overlap a time window. For+-- RESOURCE content, this API outputs history with asset in both non-delete+-- or deleted status. For IAM_POLICY content, this API outputs history when+-- the asset and its attached IAM POLICY both exist. This can create gaps+-- in the output history.+--+-- /See:/ <https://console.cloud.google.com/apis/api/cloudasset.googleapis.com/overview Cloud Asset API Reference> for @cloudasset.projects.batchGetAssetsHistory@.+module Network.Google.Resource.CloudAsset.Projects.BatchGetAssetsHistory+    (+    -- * REST Resource+      ProjectsBatchGetAssetsHistoryResource++    -- * Creating a Request+    , projectsBatchGetAssetsHistory+    , ProjectsBatchGetAssetsHistory++    -- * Request Lenses+    , pbgahParent+    , pbgahXgafv+    , pbgahReadTimeWindowEndTime+    , pbgahUploadProtocol+    , pbgahAccessToken+    , pbgahUploadType+    , pbgahAssetNames+    , pbgahReadTimeWindowStartTime+    , pbgahContentType+    , pbgahCallback+    ) where++import           Network.Google.CloudAsset.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudasset.projects.batchGetAssetsHistory@ method which the+-- 'ProjectsBatchGetAssetsHistory' request conforms to.+type ProjectsBatchGetAssetsHistoryResource =+     "v1beta1" :>+       CaptureMode "parent" "batchGetAssetsHistory" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "readTimeWindow.endTime" DateTime' :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParams "assetNames" Text :>+                     QueryParam "readTimeWindow.startTime" DateTime' :>+                       QueryParam "contentType" Text :>+                         QueryParam "callback" Text :>+                           QueryParam "alt" AltJSON :>+                             Get '[JSON] BatchGetAssetsHistoryResponse++-- | Batch gets the update history of assets that overlap a time window. For+-- RESOURCE content, this API outputs history with asset in both non-delete+-- or deleted status. For IAM_POLICY content, this API outputs history when+-- the asset and its attached IAM POLICY both exist. This can create gaps+-- in the output history.+--+-- /See:/ 'projectsBatchGetAssetsHistory' smart constructor.+data ProjectsBatchGetAssetsHistory = ProjectsBatchGetAssetsHistory'+    { _pbgahParent                  :: !Text+    , _pbgahXgafv                   :: !(Maybe Xgafv)+    , _pbgahReadTimeWindowEndTime   :: !(Maybe DateTime')+    , _pbgahUploadProtocol          :: !(Maybe Text)+    , _pbgahAccessToken             :: !(Maybe Text)+    , _pbgahUploadType              :: !(Maybe Text)+    , _pbgahAssetNames              :: !(Maybe [Text])+    , _pbgahReadTimeWindowStartTime :: !(Maybe DateTime')+    , _pbgahContentType             :: !(Maybe Text)+    , _pbgahCallback                :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsBatchGetAssetsHistory' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pbgahParent'+--+-- * 'pbgahXgafv'+--+-- * 'pbgahReadTimeWindowEndTime'+--+-- * 'pbgahUploadProtocol'+--+-- * 'pbgahAccessToken'+--+-- * 'pbgahUploadType'+--+-- * 'pbgahAssetNames'+--+-- * 'pbgahReadTimeWindowStartTime'+--+-- * 'pbgahContentType'+--+-- * 'pbgahCallback'+projectsBatchGetAssetsHistory+    :: Text -- ^ 'pbgahParent'+    -> ProjectsBatchGetAssetsHistory+projectsBatchGetAssetsHistory pPbgahParent_ =+    ProjectsBatchGetAssetsHistory'+    { _pbgahParent = pPbgahParent_+    , _pbgahXgafv = Nothing+    , _pbgahReadTimeWindowEndTime = Nothing+    , _pbgahUploadProtocol = Nothing+    , _pbgahAccessToken = Nothing+    , _pbgahUploadType = Nothing+    , _pbgahAssetNames = Nothing+    , _pbgahReadTimeWindowStartTime = Nothing+    , _pbgahContentType = Nothing+    , _pbgahCallback = Nothing+    }++-- | Required. The relative name of the root asset. It can only be an+-- organization number (such as \"organizations\/123\"), a project ID (such+-- as \"projects\/my-project-id\")\", or a project number (such as+-- \"projects\/12345\").+pbgahParent :: Lens' ProjectsBatchGetAssetsHistory Text+pbgahParent+  = lens _pbgahParent (\ s a -> s{_pbgahParent = a})++-- | V1 error format.+pbgahXgafv :: Lens' ProjectsBatchGetAssetsHistory (Maybe Xgafv)+pbgahXgafv+  = lens _pbgahXgafv (\ s a -> s{_pbgahXgafv = a})++-- | End time of the time window (inclusive). Current timestamp if not+-- specified.+pbgahReadTimeWindowEndTime :: Lens' ProjectsBatchGetAssetsHistory (Maybe UTCTime)+pbgahReadTimeWindowEndTime+  = lens _pbgahReadTimeWindowEndTime+      (\ s a -> s{_pbgahReadTimeWindowEndTime = a})+      . mapping _DateTime++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pbgahUploadProtocol :: Lens' ProjectsBatchGetAssetsHistory (Maybe Text)+pbgahUploadProtocol+  = lens _pbgahUploadProtocol+      (\ s a -> s{_pbgahUploadProtocol = a})++-- | OAuth access token.+pbgahAccessToken :: Lens' ProjectsBatchGetAssetsHistory (Maybe Text)+pbgahAccessToken+  = lens _pbgahAccessToken+      (\ s a -> s{_pbgahAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pbgahUploadType :: Lens' ProjectsBatchGetAssetsHistory (Maybe Text)+pbgahUploadType+  = lens _pbgahUploadType+      (\ s a -> s{_pbgahUploadType = a})++-- | A list of the full names of the assets. For example:+-- \`\/\/compute.googleapis.com\/projects\/my_project_123\/zones\/zone1\/instances\/instance1\`.+-- See [Resource+-- Names](https:\/\/cloud.google.com\/apis\/design\/resource_names#full_resource_name)+-- for more info. The request becomes a no-op if the asset name list is+-- empty, and the max size of the asset name list is 100 in one request.+pbgahAssetNames :: Lens' ProjectsBatchGetAssetsHistory [Text]+pbgahAssetNames+  = lens _pbgahAssetNames+      (\ s a -> s{_pbgahAssetNames = a})+      . _Default+      . _Coerce++-- | Start time of the time window (exclusive).+pbgahReadTimeWindowStartTime :: Lens' ProjectsBatchGetAssetsHistory (Maybe UTCTime)+pbgahReadTimeWindowStartTime+  = lens _pbgahReadTimeWindowStartTime+      (\ s a -> s{_pbgahReadTimeWindowStartTime = a})+      . mapping _DateTime++-- | Required. The content type.+pbgahContentType :: Lens' ProjectsBatchGetAssetsHistory (Maybe Text)+pbgahContentType+  = lens _pbgahContentType+      (\ s a -> s{_pbgahContentType = a})++-- | JSONP+pbgahCallback :: Lens' ProjectsBatchGetAssetsHistory (Maybe Text)+pbgahCallback+  = lens _pbgahCallback+      (\ s a -> s{_pbgahCallback = a})++instance GoogleRequest ProjectsBatchGetAssetsHistory+         where+        type Rs ProjectsBatchGetAssetsHistory =+             BatchGetAssetsHistoryResponse+        type Scopes ProjectsBatchGetAssetsHistory =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsBatchGetAssetsHistory'{..}+          = go _pbgahParent _pbgahXgafv+              _pbgahReadTimeWindowEndTime+              _pbgahUploadProtocol+              _pbgahAccessToken+              _pbgahUploadType+              (_pbgahAssetNames ^. _Default)+              _pbgahReadTimeWindowStartTime+              _pbgahContentType+              _pbgahCallback+              (Just AltJSON)+              cloudAssetService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsBatchGetAssetsHistoryResource)+                      mempty
+ gen/Network/Google/Resource/CloudAsset/Projects/ExportAssets.hs view
@@ -0,0 +1,168 @@+{-# 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.CloudAsset.Projects.ExportAssets+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Exports assets with time and resource types to a given Cloud Storage+-- location. The output format is newline-delimited JSON. This API+-- implements the google.longrunning.Operation API allowing you to keep+-- track of the export.+--+-- /See:/ <https://console.cloud.google.com/apis/api/cloudasset.googleapis.com/overview Cloud Asset API Reference> for @cloudasset.projects.exportAssets@.+module Network.Google.Resource.CloudAsset.Projects.ExportAssets+    (+    -- * REST Resource+      ProjectsExportAssetsResource++    -- * Creating a Request+    , projectsExportAssets+    , ProjectsExportAssets++    -- * Request Lenses+    , peaParent+    , peaXgafv+    , peaUploadProtocol+    , peaAccessToken+    , peaUploadType+    , peaPayload+    , peaCallback+    ) where++import           Network.Google.CloudAsset.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudasset.projects.exportAssets@ method which the+-- 'ProjectsExportAssets' request conforms to.+type ProjectsExportAssetsResource =+     "v1beta1" :>+       CaptureMode "parent" "exportAssets" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] ExportAssetsRequest :>+                       Post '[JSON] Operation++-- | Exports assets with time and resource types to a given Cloud Storage+-- location. The output format is newline-delimited JSON. This API+-- implements the google.longrunning.Operation API allowing you to keep+-- track of the export.+--+-- /See:/ 'projectsExportAssets' smart constructor.+data ProjectsExportAssets = ProjectsExportAssets'+    { _peaParent         :: !Text+    , _peaXgafv          :: !(Maybe Xgafv)+    , _peaUploadProtocol :: !(Maybe Text)+    , _peaAccessToken    :: !(Maybe Text)+    , _peaUploadType     :: !(Maybe Text)+    , _peaPayload        :: !ExportAssetsRequest+    , _peaCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsExportAssets' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'peaParent'+--+-- * 'peaXgafv'+--+-- * 'peaUploadProtocol'+--+-- * 'peaAccessToken'+--+-- * 'peaUploadType'+--+-- * 'peaPayload'+--+-- * 'peaCallback'+projectsExportAssets+    :: Text -- ^ 'peaParent'+    -> ExportAssetsRequest -- ^ 'peaPayload'+    -> ProjectsExportAssets+projectsExportAssets pPeaParent_ pPeaPayload_ =+    ProjectsExportAssets'+    { _peaParent = pPeaParent_+    , _peaXgafv = Nothing+    , _peaUploadProtocol = Nothing+    , _peaAccessToken = Nothing+    , _peaUploadType = Nothing+    , _peaPayload = pPeaPayload_+    , _peaCallback = Nothing+    }++-- | Required. The relative name of the root asset. This can only be an+-- organization number (such as \"organizations\/123\"), a project ID (such+-- as \"projects\/my-project-id\"), or a project number (such as+-- \"projects\/12345\").+peaParent :: Lens' ProjectsExportAssets Text+peaParent+  = lens _peaParent (\ s a -> s{_peaParent = a})++-- | V1 error format.+peaXgafv :: Lens' ProjectsExportAssets (Maybe Xgafv)+peaXgafv = lens _peaXgafv (\ s a -> s{_peaXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+peaUploadProtocol :: Lens' ProjectsExportAssets (Maybe Text)+peaUploadProtocol+  = lens _peaUploadProtocol+      (\ s a -> s{_peaUploadProtocol = a})++-- | OAuth access token.+peaAccessToken :: Lens' ProjectsExportAssets (Maybe Text)+peaAccessToken+  = lens _peaAccessToken+      (\ s a -> s{_peaAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+peaUploadType :: Lens' ProjectsExportAssets (Maybe Text)+peaUploadType+  = lens _peaUploadType+      (\ s a -> s{_peaUploadType = a})++-- | Multipart request metadata.+peaPayload :: Lens' ProjectsExportAssets ExportAssetsRequest+peaPayload+  = lens _peaPayload (\ s a -> s{_peaPayload = a})++-- | JSONP+peaCallback :: Lens' ProjectsExportAssets (Maybe Text)+peaCallback+  = lens _peaCallback (\ s a -> s{_peaCallback = a})++instance GoogleRequest ProjectsExportAssets where+        type Rs ProjectsExportAssets = Operation+        type Scopes ProjectsExportAssets =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsExportAssets'{..}+          = go _peaParent _peaXgafv _peaUploadProtocol+              _peaAccessToken+              _peaUploadType+              _peaCallback+              (Just AltJSON)+              _peaPayload+              cloudAssetService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsExportAssetsResource)+                      mempty
+ gen/Network/Google/Resource/CloudAsset/Projects/Operations/Get.hs view
@@ -0,0 +1,148 @@+{-# 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.CloudAsset.Projects.Operations.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the latest state of a long-running operation. Clients can use this+-- method to poll the operation result at intervals as recommended by the+-- API service.+--+-- /See:/ <https://console.cloud.google.com/apis/api/cloudasset.googleapis.com/overview Cloud Asset API Reference> for @cloudasset.projects.operations.get@.+module Network.Google.Resource.CloudAsset.Projects.Operations.Get+    (+    -- * REST Resource+      ProjectsOperationsGetResource++    -- * Creating a Request+    , projectsOperationsGet+    , ProjectsOperationsGet++    -- * Request Lenses+    , pogXgafv+    , pogUploadProtocol+    , pogAccessToken+    , pogUploadType+    , pogName+    , pogCallback+    ) where++import           Network.Google.CloudAsset.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudasset.projects.operations.get@ method which the+-- 'ProjectsOperationsGet' request conforms to.+type ProjectsOperationsGetResource =+     "v1beta1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Operation++-- | Gets the latest state of a long-running operation. Clients can use this+-- method to poll the operation result at intervals as recommended by the+-- API service.+--+-- /See:/ 'projectsOperationsGet' smart constructor.+data ProjectsOperationsGet = ProjectsOperationsGet'+    { _pogXgafv          :: !(Maybe Xgafv)+    , _pogUploadProtocol :: !(Maybe Text)+    , _pogAccessToken    :: !(Maybe Text)+    , _pogUploadType     :: !(Maybe Text)+    , _pogName           :: !Text+    , _pogCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsOperationsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pogXgafv'+--+-- * 'pogUploadProtocol'+--+-- * 'pogAccessToken'+--+-- * 'pogUploadType'+--+-- * 'pogName'+--+-- * 'pogCallback'+projectsOperationsGet+    :: Text -- ^ 'pogName'+    -> ProjectsOperationsGet+projectsOperationsGet pPogName_ =+    ProjectsOperationsGet'+    { _pogXgafv = Nothing+    , _pogUploadProtocol = Nothing+    , _pogAccessToken = Nothing+    , _pogUploadType = Nothing+    , _pogName = pPogName_+    , _pogCallback = Nothing+    }++-- | V1 error format.+pogXgafv :: Lens' ProjectsOperationsGet (Maybe Xgafv)+pogXgafv = lens _pogXgafv (\ s a -> s{_pogXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pogUploadProtocol :: Lens' ProjectsOperationsGet (Maybe Text)+pogUploadProtocol+  = lens _pogUploadProtocol+      (\ s a -> s{_pogUploadProtocol = a})++-- | OAuth access token.+pogAccessToken :: Lens' ProjectsOperationsGet (Maybe Text)+pogAccessToken+  = lens _pogAccessToken+      (\ s a -> s{_pogAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pogUploadType :: Lens' ProjectsOperationsGet (Maybe Text)+pogUploadType+  = lens _pogUploadType+      (\ s a -> s{_pogUploadType = a})++-- | The name of the operation resource.+pogName :: Lens' ProjectsOperationsGet Text+pogName = lens _pogName (\ s a -> s{_pogName = a})++-- | JSONP+pogCallback :: Lens' ProjectsOperationsGet (Maybe Text)+pogCallback+  = lens _pogCallback (\ s a -> s{_pogCallback = a})++instance GoogleRequest ProjectsOperationsGet where+        type Rs ProjectsOperationsGet = Operation+        type Scopes ProjectsOperationsGet =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsOperationsGet'{..}+          = go _pogName _pogXgafv _pogUploadProtocol+              _pogAccessToken+              _pogUploadType+              _pogCallback+              (Just AltJSON)+              cloudAssetService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsOperationsGetResource)+                      mempty
+ gogol-cloudasset.cabal view
@@ -0,0 +1,52 @@+name:                  gogol-cloudasset+version:               0.4.0+synopsis:              Google Cloud Asset SDK.+homepage:              https://github.com/brendanhay/gogol+bug-reports:           https://github.com/brendanhay/gogol/issues+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2015-2016 Brendan Hay+category:              Network, Google, Cloud+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md src/.gitkeep++description:+    The cloud asset API manages the history and inventory of cloud+    resources.+    .+    /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 @v1beta1@+    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.CloudAsset+        , Network.Google.CloudAsset.Types+        , Network.Google.Resource.CloudAsset.Organizations.BatchGetAssetsHistory+        , Network.Google.Resource.CloudAsset.Organizations.ExportAssets+        , Network.Google.Resource.CloudAsset.Organizations.Operations.Get+        , Network.Google.Resource.CloudAsset.Projects.BatchGetAssetsHistory+        , Network.Google.Resource.CloudAsset.Projects.ExportAssets+        , Network.Google.Resource.CloudAsset.Projects.Operations.Get++    other-modules:+          Network.Google.CloudAsset.Types.Product+        , Network.Google.CloudAsset.Types.Sum++    build-depends:+          gogol-core == 0.4.0.*+        , base       >= 4.7 && < 5
+ src/.gitkeep view