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