packages feed

gogol-containeranalysis (empty) → 0.4.0

raw patch · 33 files changed

+11432/−0 lines, 33 filesdep +basedep +gogol-coresetup-changed

Dependencies added: base, gogol-core

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,28 @@+# gogol-containeranalysis++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.3.0`+++## Description++A client library for the Google Container Analysis.+++## 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-containeranalysis` 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/ContainerAnalysis.hs view
@@ -0,0 +1,738 @@+{-# LANGUAGE DataKinds         #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators     #-}++{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module      : Network.Google.ContainerAnalysis+-- 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)+--+-- An implementation of the Grafeas API, which stores, and enables querying+-- and retrieval of critical metadata about all of your software artifacts.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference>+module Network.Google.ContainerAnalysis+    (+    -- * Service Configuration+      containerAnalysisService++    -- * OAuth Scopes+    , cloudPlatformScope++    -- * API Declaration+    , ContainerAnalysisAPI++    -- * Resources++    -- ** containeranalysis.projects.notes.batchCreate+    , module Network.Google.Resource.ContainerAnalysis.Projects.Notes.BatchCreate++    -- ** containeranalysis.projects.notes.create+    , module Network.Google.Resource.ContainerAnalysis.Projects.Notes.Create++    -- ** containeranalysis.projects.notes.delete+    , module Network.Google.Resource.ContainerAnalysis.Projects.Notes.Delete++    -- ** containeranalysis.projects.notes.get+    , module Network.Google.Resource.ContainerAnalysis.Projects.Notes.Get++    -- ** containeranalysis.projects.notes.getIamPolicy+    , module Network.Google.Resource.ContainerAnalysis.Projects.Notes.GetIAMPolicy++    -- ** containeranalysis.projects.notes.list+    , module Network.Google.Resource.ContainerAnalysis.Projects.Notes.List++    -- ** containeranalysis.projects.notes.occurrences.list+    , module Network.Google.Resource.ContainerAnalysis.Projects.Notes.Occurrences.List++    -- ** containeranalysis.projects.notes.patch+    , module Network.Google.Resource.ContainerAnalysis.Projects.Notes.Patch++    -- ** containeranalysis.projects.notes.setIamPolicy+    , module Network.Google.Resource.ContainerAnalysis.Projects.Notes.SetIAMPolicy++    -- ** containeranalysis.projects.notes.testIamPermissions+    , module Network.Google.Resource.ContainerAnalysis.Projects.Notes.TestIAMPermissions++    -- ** containeranalysis.projects.occurrences.batchCreate+    , module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.BatchCreate++    -- ** containeranalysis.projects.occurrences.create+    , module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.Create++    -- ** containeranalysis.projects.occurrences.delete+    , module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.Delete++    -- ** containeranalysis.projects.occurrences.get+    , module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.Get++    -- ** containeranalysis.projects.occurrences.getIamPolicy+    , module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.GetIAMPolicy++    -- ** containeranalysis.projects.occurrences.getNotes+    , module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.GetNotes++    -- ** containeranalysis.projects.occurrences.getVulnerabilitySummary+    , module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.GetVulnerabilitySummary++    -- ** containeranalysis.projects.occurrences.list+    , module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.List++    -- ** containeranalysis.projects.occurrences.patch+    , module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.Patch++    -- ** containeranalysis.projects.occurrences.setIamPolicy+    , module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.SetIAMPolicy++    -- ** containeranalysis.projects.occurrences.testIamPermissions+    , module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.TestIAMPermissions++    -- ** containeranalysis.projects.scanConfigs.get+    , module Network.Google.Resource.ContainerAnalysis.Projects.ScanConfigs.Get++    -- ** containeranalysis.projects.scanConfigs.list+    , module Network.Google.Resource.ContainerAnalysis.Projects.ScanConfigs.List++    -- ** containeranalysis.projects.scanConfigs.update+    , module Network.Google.Resource.ContainerAnalysis.Projects.ScanConfigs.Update++    -- * Types++    -- ** LayerDirective+    , LayerDirective (..)++    -- ** DiscoveredAnalysisStatus+    , DiscoveredAnalysisStatus (..)++    -- ** Installation+    , Installation+    , installation+    , iLocation+    , iName++    -- ** Vulnerability+    , Vulnerability+    , vulnerability+    , vCvssScore+    , vSeverity+    , vDetails++    -- ** GrafeasV1beta1VulnerabilityDetailsSeverity+    , GrafeasV1beta1VulnerabilityDetailsSeverity (..)++    -- ** Status+    , Status+    , status+    , sDetails+    , sCode+    , sMessage++    -- ** VulnerabilityOccurrencesSummary+    , VulnerabilityOccurrencesSummary+    , vulnerabilityOccurrencesSummary+    , vosCounts++    -- ** OccurrenceKind+    , OccurrenceKind (..)++    -- ** BuildProvenance+    , BuildProvenance+    , buildProvenance+    , bpCreator+    , bpSourceProvenance+    , bpCommands+    , bpTriggerId+    , bpStartTime+    , bpBuilderVersion+    , bpEndTime+    , bpId+    , bpProjectId+    , bpBuiltArtifacts+    , bpBuildOptions+    , bpCreateTime+    , bpLogsURI++    -- ** AuditConfig+    , AuditConfig+    , auditConfig+    , acService+    , acAuditLogConfigs++    -- ** Occurrence+    , Occurrence+    , occurrence+    , oInstallation+    , oVulnerability+    , oDerivedImage+    , oKind+    , oBuild+    , oAttestation+    , oUpdateTime+    , oName+    , oNoteName+    , oRemediation+    , oResource+    , oDiscovered+    , oCreateTime+    , oDeployment++    -- ** GrafeasV1beta1VulnerabilityDetails+    , GrafeasV1beta1VulnerabilityDetails+    , grafeasV1beta1VulnerabilityDetails+    , gvvdLongDescription+    , gvvdRelatedURLs+    , gvvdCvssScore+    , gvvdPackageIssue+    , gvvdSeverity+    , gvvdShortDescription+    , gvvdType++    -- ** VulnerabilitySeverity+    , VulnerabilitySeverity (..)++    -- ** SourceFileHashes+    , SourceFileHashes+    , sourceFileHashes+    , sfhAddtional++    -- ** Expr+    , Expr+    , expr+    , eLocation+    , eExpression+    , eTitle+    , eDescription++    -- ** Command+    , Command+    , command+    , cDir+    , cArgs+    , cEnv+    , cWaitFor+    , cName+    , cId++    -- ** GetIAMPolicyRequest+    , GetIAMPolicyRequest+    , getIAMPolicyRequest++    -- ** Discovery+    , Discovery+    , discovery+    , dAnalysisKind++    -- ** Hash+    , Hash+    , hash+    , hValue+    , hType++    -- ** Basis+    , Basis+    , basis+    , bFingerprint+    , bResourceURL++    -- ** BatchCreateNotesRequest+    , BatchCreateNotesRequest+    , batchCreateNotesRequest+    , bcnrNotes++    -- ** SourceContext+    , SourceContext+    , sourceContext+    , scCloudRepo+    , scGerrit+    , scGit+    , scLabels++    -- ** Distribution+    , Distribution+    , distribution+    , dURL+    , dMaintainer+    , dArchitecture+    , dCpeURI+    , dDescription+    , dLatestVersion++    -- ** BatchCreateOccurrencesRequest+    , BatchCreateOccurrencesRequest+    , batchCreateOccurrencesRequest+    , bcorOccurrences++    -- ** ListOccurrencesResponse+    , ListOccurrencesResponse+    , listOccurrencesResponse+    , lorOccurrences+    , lorNextPageToken++    -- ** Location+    , Location+    , location+    , lPath+    , lVersion+    , lCpeURI++    -- ** Empty+    , Empty+    , empty++    -- ** GerritSourceContext+    , GerritSourceContext+    , gerritSourceContext+    , gscGerritProject+    , gscRevisionId+    , gscHostURI+    , gscAliasContext++    -- ** RepoId+    , RepoId+    , repoId+    , riUid+    , riProjectRepoId++    -- ** DiscoveredContinuousAnalysis+    , DiscoveredContinuousAnalysis (..)++    -- ** ListNoteOccurrencesResponse+    , ListNoteOccurrencesResponse+    , listNoteOccurrencesResponse+    , lnorOccurrences+    , lnorNextPageToken++    -- ** NoteKind+    , NoteKind (..)++    -- ** Note+    , Note+    , note+    , nVulnerability+    , nLongDescription+    , nAttestationAuthority+    , nDiscovery+    , nKind+    , nRelatedNoteNames+    , nBuild+    , nDeployable+    , nRelatedURL+    , nUpdateTime+    , nShortDescription+    , nName+    , nBaseImage+    , nPackage+    , nExpirationTime+    , nCreateTime++    -- ** BatchCreateNotesResponse+    , BatchCreateNotesResponse+    , batchCreateNotesResponse+    , bNotes++    -- ** ProjectRepoId+    , ProjectRepoId+    , projectRepoId+    , priRepoName+    , priProjectId++    -- ** Fingerprint+    , Fingerprint+    , fingerprint+    , fV2Name+    , fV2Blob+    , fV1Name++    -- ** Hint+    , Hint+    , hint+    , hHumanReadableName++    -- ** PackageIssue+    , PackageIssue+    , packageIssue+    , piAffectedLocation+    , piFixedLocation+    , piSeverityName++    -- ** StatusDetailsItem+    , StatusDetailsItem+    , statusDetailsItem+    , sdiAddtional++    -- ** Build+    , Build+    , build+    , bSignature+    , bBuilderVersion++    -- ** Attestation+    , Attestation+    , attestation+    , aPgpSignedAttestation++    -- ** DeploymentPlatform+    , DeploymentPlatform (..)++    -- ** Artifact+    , Artifact+    , artifact+    , aChecksum+    , aNames+    , aId++    -- ** SetIAMPolicyRequest+    , SetIAMPolicyRequest+    , setIAMPolicyRequest+    , siprUpdateMask+    , siprPolicy++    -- ** BuildProvenanceBuildOptions+    , BuildProvenanceBuildOptions+    , buildProvenanceBuildOptions+    , bpboAddtional++    -- ** Deployable+    , Deployable+    , deployable+    , dResourceURI++    -- ** GrafeasV1beta1DiscoveryDetails+    , GrafeasV1beta1DiscoveryDetails+    , grafeasV1beta1DiscoveryDetails+    , gvddDiscovered++    -- ** VulnerabilityLocation+    , VulnerabilityLocation+    , vulnerabilityLocation+    , vlVersion+    , vlPackage+    , vlCpeURI++    -- ** FixableTotalByDigest+    , FixableTotalByDigest+    , fixableTotalByDigest+    , ftbdSeverity+    , ftbdFixableCount+    , ftbdResource+    , ftbdTotalCount++    -- ** RelatedURL+    , RelatedURL+    , relatedURL+    , ruURL+    , ruLabel++    -- ** GrafeasV1beta1ImageDetails+    , GrafeasV1beta1ImageDetails+    , grafeasV1beta1ImageDetails+    , gvidDerivedImage++    -- ** BatchCreateOccurrencesResponse+    , BatchCreateOccurrencesResponse+    , batchCreateOccurrencesResponse+    , bOccurrences++    -- ** SourceContextLabels+    , SourceContextLabels+    , sourceContextLabels+    , sclAddtional++    -- ** DistributionArchitecture+    , DistributionArchitecture (..)++    -- ** ListScanConfigsResponse+    , ListScanConfigsResponse+    , listScanConfigsResponse+    , lscrNextPageToken+    , lscrScanConfigs++    -- ** FixableTotalByDigestSeverity+    , FixableTotalByDigestSeverity (..)++    -- ** AuditLogConfigLogType+    , AuditLogConfigLogType (..)++    -- ** Version+    , Version+    , version+    , vKind+    , vName+    , vRevision+    , vEpoch++    -- ** FileHashes+    , FileHashes+    , fileHashes+    , fhFileHash++    -- ** Resource+    , Resource+    , resource+    , rContentHash+    , rURI+    , rName++    -- ** GrafeasV1beta1DeploymentDetails+    , GrafeasV1beta1DeploymentDetails+    , grafeasV1beta1DeploymentDetails+    , gvddDeployment++    -- ** GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata+    , GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata+    , googleDevtoolsContaineranalysisV1alpha1OperationMetadata+    , gdcvomEndTime+    , gdcvomCreateTime++    -- ** PgpSignedAttestationContentType+    , PgpSignedAttestationContentType (..)++    -- ** Xgafv+    , Xgafv (..)++    -- ** Details+    , Details+    , details+    , dAttestation++    -- ** Package+    , Package+    , package+    , pDistribution+    , pName++    -- ** ListNotesResponse+    , ListNotesResponse+    , listNotesResponse+    , lnrNextPageToken+    , lnrNotes++    -- ** BuildSignature+    , BuildSignature+    , buildSignature+    , bsSignature+    , bsKeyType+    , bsKeyId+    , bsPublicKey++    -- ** TestIAMPermissionsRequest+    , TestIAMPermissionsRequest+    , testIAMPermissionsRequest+    , tiprPermissions++    -- ** VersionKind+    , VersionKind (..)++    -- ** HashType+    , HashType (..)++    -- ** Discovered+    , Discovered+    , discovered+    , dLastAnalysisTime+    , dAnalysisStatusError+    , dAnalysisStatus+    , dContinuousAnalysis++    -- ** BuildSignatureKeyType+    , BuildSignatureKeyType (..)++    -- ** Derived+    , Derived+    , derived+    , dBaseResourceURL+    , dFingerprint+    , dDistance+    , dLayerInfo++    -- ** GrafeasV1beta1BuildDetails+    , GrafeasV1beta1BuildDetails+    , grafeasV1beta1BuildDetails+    , gvbdProvenanceBytes+    , gvbdProvenance++    -- ** Source+    , Source+    , source+    , sContext+    , sAdditionalContexts+    , sArtifactStorageSourceURI+    , sFileHashes++    -- ** ScanConfig+    , ScanConfig+    , scanConfig+    , scEnabled+    , scUpdateTime+    , scName+    , scDescription+    , scCreateTime++    -- ** GitSourceContext+    , GitSourceContext+    , gitSourceContext+    , gURL+    , gRevisionId++    -- ** TestIAMPermissionsResponse+    , TestIAMPermissionsResponse+    , testIAMPermissionsResponse+    , tiamprPermissions++    -- ** Policy+    , Policy+    , policy+    , pAuditConfigs+    , pEtag+    , pVersion+    , pBindings++    -- ** DiscoveryAnalysisKind+    , DiscoveryAnalysisKind (..)++    -- ** Layer+    , Layer+    , layer+    , lDirective+    , lArguments++    -- ** CloudRepoSourceContext+    , CloudRepoSourceContext+    , cloudRepoSourceContext+    , crscRepoId+    , crscRevisionId+    , crscAliasContext++    -- ** AuditLogConfig+    , AuditLogConfig+    , auditLogConfig+    , alcLogType+    , alcExemptedMembers++    -- ** PgpSignedAttestation+    , PgpSignedAttestation+    , pgpSignedAttestation+    , psaSignature+    , psaPgpKeyId+    , psaContentType++    -- ** BatchCreateNotesRequestNotes+    , BatchCreateNotesRequestNotes+    , batchCreateNotesRequestNotes+    , bcnrnAddtional++    -- ** AliasContext+    , AliasContext+    , aliasContext+    , acKind+    , acName++    -- ** AliasContextKind+    , AliasContextKind (..)++    -- ** Binding+    , Binding+    , binding+    , bMembers+    , bRole+    , bCondition++    -- ** Detail+    , Detail+    , detail+    , detMinAffectedVersion+    , detPackageType+    , detIsObsolete+    , detFixedLocation+    , detSeverityName+    , detMaxAffectedVersion+    , detPackage+    , detCpeURI+    , detDescription++    -- ** Authority+    , Authority+    , authority+    , aHint++    -- ** GrafeasV1beta1PackageDetails+    , GrafeasV1beta1PackageDetails+    , grafeasV1beta1PackageDetails+    , gvpdInstallation++    -- ** Deployment+    , Deployment+    , deployment+    , depResourceURI+    , depPlatform+    , depConfig+    , depUndeployTime+    , depDeployTime+    , depAddress+    , depUserEmail+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude+import           Network.Google.Resource.ContainerAnalysis.Projects.Notes.BatchCreate+import           Network.Google.Resource.ContainerAnalysis.Projects.Notes.Create+import           Network.Google.Resource.ContainerAnalysis.Projects.Notes.Delete+import           Network.Google.Resource.ContainerAnalysis.Projects.Notes.Get+import           Network.Google.Resource.ContainerAnalysis.Projects.Notes.GetIAMPolicy+import           Network.Google.Resource.ContainerAnalysis.Projects.Notes.List+import           Network.Google.Resource.ContainerAnalysis.Projects.Notes.Occurrences.List+import           Network.Google.Resource.ContainerAnalysis.Projects.Notes.Patch+import           Network.Google.Resource.ContainerAnalysis.Projects.Notes.SetIAMPolicy+import           Network.Google.Resource.ContainerAnalysis.Projects.Notes.TestIAMPermissions+import           Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.BatchCreate+import           Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.Create+import           Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.Delete+import           Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.Get+import           Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.GetIAMPolicy+import           Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.GetNotes+import           Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.GetVulnerabilitySummary+import           Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.List+import           Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.Patch+import           Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.SetIAMPolicy+import           Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.TestIAMPermissions+import           Network.Google.Resource.ContainerAnalysis.Projects.ScanConfigs.Get+import           Network.Google.Resource.ContainerAnalysis.Projects.ScanConfigs.List+import           Network.Google.Resource.ContainerAnalysis.Projects.ScanConfigs.Update++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Container Analysis API service.+type ContainerAnalysisAPI =+     ProjectsOccurrencesListResource :<|>+       ProjectsOccurrencesGetNotesResource+       :<|> ProjectsOccurrencesGetIAMPolicyResource+       :<|> ProjectsOccurrencesPatchResource+       :<|> ProjectsOccurrencesGetResource+       :<|>+       ProjectsOccurrencesGetVulnerabilitySummaryResource+       :<|> ProjectsOccurrencesCreateResource+       :<|> ProjectsOccurrencesSetIAMPolicyResource+       :<|> ProjectsOccurrencesBatchCreateResource+       :<|> ProjectsOccurrencesTestIAMPermissionsResource+       :<|> ProjectsOccurrencesDeleteResource+       :<|> ProjectsScanConfigsListResource+       :<|> ProjectsScanConfigsGetResource+       :<|> ProjectsScanConfigsUpdateResource+       :<|> ProjectsNotesOccurrencesListResource+       :<|> ProjectsNotesListResource+       :<|> ProjectsNotesGetIAMPolicyResource+       :<|> ProjectsNotesPatchResource+       :<|> ProjectsNotesGetResource+       :<|> ProjectsNotesCreateResource+       :<|> ProjectsNotesSetIAMPolicyResource+       :<|> ProjectsNotesBatchCreateResource+       :<|> ProjectsNotesTestIAMPermissionsResource+       :<|> ProjectsNotesDeleteResource
+ gen/Network/Google/ContainerAnalysis/Types.hs view
@@ -0,0 +1,612 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.ContainerAnalysis.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.ContainerAnalysis.Types+    (+    -- * Service Configuration+      containerAnalysisService++    -- * OAuth Scopes+    , cloudPlatformScope++    -- * LayerDirective+    , LayerDirective (..)++    -- * DiscoveredAnalysisStatus+    , DiscoveredAnalysisStatus (..)++    -- * Installation+    , Installation+    , installation+    , iLocation+    , iName++    -- * Vulnerability+    , Vulnerability+    , vulnerability+    , vCvssScore+    , vSeverity+    , vDetails++    -- * GrafeasV1beta1VulnerabilityDetailsSeverity+    , GrafeasV1beta1VulnerabilityDetailsSeverity (..)++    -- * Status+    , Status+    , status+    , sDetails+    , sCode+    , sMessage++    -- * VulnerabilityOccurrencesSummary+    , VulnerabilityOccurrencesSummary+    , vulnerabilityOccurrencesSummary+    , vosCounts++    -- * OccurrenceKind+    , OccurrenceKind (..)++    -- * BuildProvenance+    , BuildProvenance+    , buildProvenance+    , bpCreator+    , bpSourceProvenance+    , bpCommands+    , bpTriggerId+    , bpStartTime+    , bpBuilderVersion+    , bpEndTime+    , bpId+    , bpProjectId+    , bpBuiltArtifacts+    , bpBuildOptions+    , bpCreateTime+    , bpLogsURI++    -- * AuditConfig+    , AuditConfig+    , auditConfig+    , acService+    , acAuditLogConfigs++    -- * Occurrence+    , Occurrence+    , occurrence+    , oInstallation+    , oVulnerability+    , oDerivedImage+    , oKind+    , oBuild+    , oAttestation+    , oUpdateTime+    , oName+    , oNoteName+    , oRemediation+    , oResource+    , oDiscovered+    , oCreateTime+    , oDeployment++    -- * GrafeasV1beta1VulnerabilityDetails+    , GrafeasV1beta1VulnerabilityDetails+    , grafeasV1beta1VulnerabilityDetails+    , gvvdLongDescription+    , gvvdRelatedURLs+    , gvvdCvssScore+    , gvvdPackageIssue+    , gvvdSeverity+    , gvvdShortDescription+    , gvvdType++    -- * VulnerabilitySeverity+    , VulnerabilitySeverity (..)++    -- * SourceFileHashes+    , SourceFileHashes+    , sourceFileHashes+    , sfhAddtional++    -- * Expr+    , Expr+    , expr+    , eLocation+    , eExpression+    , eTitle+    , eDescription++    -- * Command+    , Command+    , command+    , cDir+    , cArgs+    , cEnv+    , cWaitFor+    , cName+    , cId++    -- * GetIAMPolicyRequest+    , GetIAMPolicyRequest+    , getIAMPolicyRequest++    -- * Discovery+    , Discovery+    , discovery+    , dAnalysisKind++    -- * Hash+    , Hash+    , hash+    , hValue+    , hType++    -- * Basis+    , Basis+    , basis+    , bFingerprint+    , bResourceURL++    -- * BatchCreateNotesRequest+    , BatchCreateNotesRequest+    , batchCreateNotesRequest+    , bcnrNotes++    -- * SourceContext+    , SourceContext+    , sourceContext+    , scCloudRepo+    , scGerrit+    , scGit+    , scLabels++    -- * Distribution+    , Distribution+    , distribution+    , dURL+    , dMaintainer+    , dArchitecture+    , dCpeURI+    , dDescription+    , dLatestVersion++    -- * BatchCreateOccurrencesRequest+    , BatchCreateOccurrencesRequest+    , batchCreateOccurrencesRequest+    , bcorOccurrences++    -- * ListOccurrencesResponse+    , ListOccurrencesResponse+    , listOccurrencesResponse+    , lorOccurrences+    , lorNextPageToken++    -- * Location+    , Location+    , location+    , lPath+    , lVersion+    , lCpeURI++    -- * Empty+    , Empty+    , empty++    -- * GerritSourceContext+    , GerritSourceContext+    , gerritSourceContext+    , gscGerritProject+    , gscRevisionId+    , gscHostURI+    , gscAliasContext++    -- * RepoId+    , RepoId+    , repoId+    , riUid+    , riProjectRepoId++    -- * DiscoveredContinuousAnalysis+    , DiscoveredContinuousAnalysis (..)++    -- * ListNoteOccurrencesResponse+    , ListNoteOccurrencesResponse+    , listNoteOccurrencesResponse+    , lnorOccurrences+    , lnorNextPageToken++    -- * NoteKind+    , NoteKind (..)++    -- * Note+    , Note+    , note+    , nVulnerability+    , nLongDescription+    , nAttestationAuthority+    , nDiscovery+    , nKind+    , nRelatedNoteNames+    , nBuild+    , nDeployable+    , nRelatedURL+    , nUpdateTime+    , nShortDescription+    , nName+    , nBaseImage+    , nPackage+    , nExpirationTime+    , nCreateTime++    -- * BatchCreateNotesResponse+    , BatchCreateNotesResponse+    , batchCreateNotesResponse+    , bNotes++    -- * ProjectRepoId+    , ProjectRepoId+    , projectRepoId+    , priRepoName+    , priProjectId++    -- * Fingerprint+    , Fingerprint+    , fingerprint+    , fV2Name+    , fV2Blob+    , fV1Name++    -- * Hint+    , Hint+    , hint+    , hHumanReadableName++    -- * PackageIssue+    , PackageIssue+    , packageIssue+    , piAffectedLocation+    , piFixedLocation+    , piSeverityName++    -- * StatusDetailsItem+    , StatusDetailsItem+    , statusDetailsItem+    , sdiAddtional++    -- * Build+    , Build+    , build+    , bSignature+    , bBuilderVersion++    -- * Attestation+    , Attestation+    , attestation+    , aPgpSignedAttestation++    -- * DeploymentPlatform+    , DeploymentPlatform (..)++    -- * Artifact+    , Artifact+    , artifact+    , aChecksum+    , aNames+    , aId++    -- * SetIAMPolicyRequest+    , SetIAMPolicyRequest+    , setIAMPolicyRequest+    , siprUpdateMask+    , siprPolicy++    -- * BuildProvenanceBuildOptions+    , BuildProvenanceBuildOptions+    , buildProvenanceBuildOptions+    , bpboAddtional++    -- * Deployable+    , Deployable+    , deployable+    , dResourceURI++    -- * GrafeasV1beta1DiscoveryDetails+    , GrafeasV1beta1DiscoveryDetails+    , grafeasV1beta1DiscoveryDetails+    , gvddDiscovered++    -- * VulnerabilityLocation+    , VulnerabilityLocation+    , vulnerabilityLocation+    , vlVersion+    , vlPackage+    , vlCpeURI++    -- * FixableTotalByDigest+    , FixableTotalByDigest+    , fixableTotalByDigest+    , ftbdSeverity+    , ftbdFixableCount+    , ftbdResource+    , ftbdTotalCount++    -- * RelatedURL+    , RelatedURL+    , relatedURL+    , ruURL+    , ruLabel++    -- * GrafeasV1beta1ImageDetails+    , GrafeasV1beta1ImageDetails+    , grafeasV1beta1ImageDetails+    , gvidDerivedImage++    -- * BatchCreateOccurrencesResponse+    , BatchCreateOccurrencesResponse+    , batchCreateOccurrencesResponse+    , bOccurrences++    -- * SourceContextLabels+    , SourceContextLabels+    , sourceContextLabels+    , sclAddtional++    -- * DistributionArchitecture+    , DistributionArchitecture (..)++    -- * ListScanConfigsResponse+    , ListScanConfigsResponse+    , listScanConfigsResponse+    , lscrNextPageToken+    , lscrScanConfigs++    -- * FixableTotalByDigestSeverity+    , FixableTotalByDigestSeverity (..)++    -- * AuditLogConfigLogType+    , AuditLogConfigLogType (..)++    -- * Version+    , Version+    , version+    , vKind+    , vName+    , vRevision+    , vEpoch++    -- * FileHashes+    , FileHashes+    , fileHashes+    , fhFileHash++    -- * Resource+    , Resource+    , resource+    , rContentHash+    , rURI+    , rName++    -- * GrafeasV1beta1DeploymentDetails+    , GrafeasV1beta1DeploymentDetails+    , grafeasV1beta1DeploymentDetails+    , gvddDeployment++    -- * GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata+    , GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata+    , googleDevtoolsContaineranalysisV1alpha1OperationMetadata+    , gdcvomEndTime+    , gdcvomCreateTime++    -- * PgpSignedAttestationContentType+    , PgpSignedAttestationContentType (..)++    -- * Xgafv+    , Xgafv (..)++    -- * Details+    , Details+    , details+    , dAttestation++    -- * Package+    , Package+    , package+    , pDistribution+    , pName++    -- * ListNotesResponse+    , ListNotesResponse+    , listNotesResponse+    , lnrNextPageToken+    , lnrNotes++    -- * BuildSignature+    , BuildSignature+    , buildSignature+    , bsSignature+    , bsKeyType+    , bsKeyId+    , bsPublicKey++    -- * TestIAMPermissionsRequest+    , TestIAMPermissionsRequest+    , testIAMPermissionsRequest+    , tiprPermissions++    -- * VersionKind+    , VersionKind (..)++    -- * HashType+    , HashType (..)++    -- * Discovered+    , Discovered+    , discovered+    , dLastAnalysisTime+    , dAnalysisStatusError+    , dAnalysisStatus+    , dContinuousAnalysis++    -- * BuildSignatureKeyType+    , BuildSignatureKeyType (..)++    -- * Derived+    , Derived+    , derived+    , dBaseResourceURL+    , dFingerprint+    , dDistance+    , dLayerInfo++    -- * GrafeasV1beta1BuildDetails+    , GrafeasV1beta1BuildDetails+    , grafeasV1beta1BuildDetails+    , gvbdProvenanceBytes+    , gvbdProvenance++    -- * Source+    , Source+    , source+    , sContext+    , sAdditionalContexts+    , sArtifactStorageSourceURI+    , sFileHashes++    -- * ScanConfig+    , ScanConfig+    , scanConfig+    , scEnabled+    , scUpdateTime+    , scName+    , scDescription+    , scCreateTime++    -- * GitSourceContext+    , GitSourceContext+    , gitSourceContext+    , gURL+    , gRevisionId++    -- * TestIAMPermissionsResponse+    , TestIAMPermissionsResponse+    , testIAMPermissionsResponse+    , tiamprPermissions++    -- * Policy+    , Policy+    , policy+    , pAuditConfigs+    , pEtag+    , pVersion+    , pBindings++    -- * DiscoveryAnalysisKind+    , DiscoveryAnalysisKind (..)++    -- * Layer+    , Layer+    , layer+    , lDirective+    , lArguments++    -- * CloudRepoSourceContext+    , CloudRepoSourceContext+    , cloudRepoSourceContext+    , crscRepoId+    , crscRevisionId+    , crscAliasContext++    -- * AuditLogConfig+    , AuditLogConfig+    , auditLogConfig+    , alcLogType+    , alcExemptedMembers++    -- * PgpSignedAttestation+    , PgpSignedAttestation+    , pgpSignedAttestation+    , psaSignature+    , psaPgpKeyId+    , psaContentType++    -- * BatchCreateNotesRequestNotes+    , BatchCreateNotesRequestNotes+    , batchCreateNotesRequestNotes+    , bcnrnAddtional++    -- * AliasContext+    , AliasContext+    , aliasContext+    , acKind+    , acName++    -- * AliasContextKind+    , AliasContextKind (..)++    -- * Binding+    , Binding+    , binding+    , bMembers+    , bRole+    , bCondition++    -- * Detail+    , Detail+    , detail+    , detMinAffectedVersion+    , detPackageType+    , detIsObsolete+    , detFixedLocation+    , detSeverityName+    , detMaxAffectedVersion+    , detPackage+    , detCpeURI+    , detDescription++    -- * Authority+    , Authority+    , authority+    , aHint++    -- * GrafeasV1beta1PackageDetails+    , GrafeasV1beta1PackageDetails+    , grafeasV1beta1PackageDetails+    , gvpdInstallation++    -- * Deployment+    , Deployment+    , deployment+    , depResourceURI+    , depPlatform+    , depConfig+    , depUndeployTime+    , depDeployTime+    , depAddress+    , depUserEmail+    ) where++import           Network.Google.ContainerAnalysis.Types.Product+import           Network.Google.ContainerAnalysis.Types.Sum+import           Network.Google.Prelude++-- | Default request referring to version 'v1beta1' of the Container Analysis API. This contains the host and root path used as a starting point for constructing service requests.+containerAnalysisService :: ServiceConfig+containerAnalysisService+  = defaultService+      (ServiceId "containeranalysis:v1beta1")+      "containeranalysis.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/ContainerAnalysis/Types/Product.hs view
@@ -0,0 +1,4722 @@+{-# 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.ContainerAnalysis.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.ContainerAnalysis.Types.Product where++import           Network.Google.ContainerAnalysis.Types.Sum+import           Network.Google.Prelude++-- | This represents how a particular software package may be installed on a+-- system.+--+-- /See:/ 'installation' smart constructor.+data Installation = Installation'+    { _iLocation :: !(Maybe [Location])+    , _iName     :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Installation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iLocation'+--+-- * 'iName'+installation+    :: Installation+installation =+    Installation'+    { _iLocation = Nothing+    , _iName = Nothing+    }++-- | Required. All of the places within the filesystem versions of this+-- package have been found.+iLocation :: Lens' Installation [Location]+iLocation+  = lens _iLocation (\ s a -> s{_iLocation = a}) .+      _Default+      . _Coerce++-- | Output only. The name of the installed package.+iName :: Lens' Installation (Maybe Text)+iName = lens _iName (\ s a -> s{_iName = a})++instance FromJSON Installation where+        parseJSON+          = withObject "Installation"+              (\ o ->+                 Installation' <$>+                   (o .:? "location" .!= mempty) <*> (o .:? "name"))++instance ToJSON Installation where+        toJSON Installation'{..}+          = object+              (catMaybes+                 [("location" .=) <$> _iLocation,+                  ("name" .=) <$> _iName])++-- | Vulnerability provides metadata about a security vulnerability in a+-- Note.+--+-- /See:/ 'vulnerability' smart constructor.+data Vulnerability = Vulnerability'+    { _vCvssScore :: !(Maybe (Textual Double))+    , _vSeverity  :: !(Maybe VulnerabilitySeverity)+    , _vDetails   :: !(Maybe [Detail])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Vulnerability' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vCvssScore'+--+-- * 'vSeverity'+--+-- * 'vDetails'+vulnerability+    :: Vulnerability+vulnerability =+    Vulnerability'+    { _vCvssScore = Nothing+    , _vSeverity = Nothing+    , _vDetails = Nothing+    }++-- | The CVSS score for this vulnerability.+vCvssScore :: Lens' Vulnerability (Maybe Double)+vCvssScore+  = lens _vCvssScore (\ s a -> s{_vCvssScore = a}) .+      mapping _Coerce++-- | Note provider assigned impact of the vulnerability.+vSeverity :: Lens' Vulnerability (Maybe VulnerabilitySeverity)+vSeverity+  = lens _vSeverity (\ s a -> s{_vSeverity = a})++-- | All information about the package to specifically identify this+-- vulnerability. One entry per (version range and cpe_uri) the package+-- vulnerability has manifested in.+vDetails :: Lens' Vulnerability [Detail]+vDetails+  = lens _vDetails (\ s a -> s{_vDetails = a}) .+      _Default+      . _Coerce++instance FromJSON Vulnerability where+        parseJSON+          = withObject "Vulnerability"+              (\ o ->+                 Vulnerability' <$>+                   (o .:? "cvssScore") <*> (o .:? "severity") <*>+                     (o .:? "details" .!= mempty))++instance ToJSON Vulnerability where+        toJSON Vulnerability'{..}+          = object+              (catMaybes+                 [("cvssScore" .=) <$> _vCvssScore,+                  ("severity" .=) <$> _vSeverity,+                  ("details" .=) <$> _vDetails])++-- | 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])++-- | A summary of how many vulnerability occurrences there are per resource+-- and severity type.+--+-- /See:/ 'vulnerabilityOccurrencesSummary' smart constructor.+newtype VulnerabilityOccurrencesSummary = VulnerabilityOccurrencesSummary'+    { _vosCounts :: Maybe [FixableTotalByDigest]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VulnerabilityOccurrencesSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vosCounts'+vulnerabilityOccurrencesSummary+    :: VulnerabilityOccurrencesSummary+vulnerabilityOccurrencesSummary =+    VulnerabilityOccurrencesSummary'+    { _vosCounts = Nothing+    }++-- | A listing by resource of the number of fixable and total+-- vulnerabilities.+vosCounts :: Lens' VulnerabilityOccurrencesSummary [FixableTotalByDigest]+vosCounts+  = lens _vosCounts (\ s a -> s{_vosCounts = a}) .+      _Default+      . _Coerce++instance FromJSON VulnerabilityOccurrencesSummary+         where+        parseJSON+          = withObject "VulnerabilityOccurrencesSummary"+              (\ o ->+                 VulnerabilityOccurrencesSummary' <$>+                   (o .:? "counts" .!= mempty))++instance ToJSON VulnerabilityOccurrencesSummary where+        toJSON VulnerabilityOccurrencesSummary'{..}+          = object (catMaybes [("counts" .=) <$> _vosCounts])++-- | Provenance of a build. Contains all information needed to verify the+-- full details about the build from source to completion.+--+-- /See:/ 'buildProvenance' smart constructor.+data BuildProvenance = BuildProvenance'+    { _bpCreator          :: !(Maybe Text)+    , _bpSourceProvenance :: !(Maybe Source)+    , _bpCommands         :: !(Maybe [Command])+    , _bpTriggerId        :: !(Maybe Text)+    , _bpStartTime        :: !(Maybe DateTime')+    , _bpBuilderVersion   :: !(Maybe Text)+    , _bpEndTime          :: !(Maybe DateTime')+    , _bpId               :: !(Maybe Text)+    , _bpProjectId        :: !(Maybe Text)+    , _bpBuiltArtifacts   :: !(Maybe [Artifact])+    , _bpBuildOptions     :: !(Maybe BuildProvenanceBuildOptions)+    , _bpCreateTime       :: !(Maybe DateTime')+    , _bpLogsURI          :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BuildProvenance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bpCreator'+--+-- * 'bpSourceProvenance'+--+-- * 'bpCommands'+--+-- * 'bpTriggerId'+--+-- * 'bpStartTime'+--+-- * 'bpBuilderVersion'+--+-- * 'bpEndTime'+--+-- * 'bpId'+--+-- * 'bpProjectId'+--+-- * 'bpBuiltArtifacts'+--+-- * 'bpBuildOptions'+--+-- * 'bpCreateTime'+--+-- * 'bpLogsURI'+buildProvenance+    :: BuildProvenance+buildProvenance =+    BuildProvenance'+    { _bpCreator = Nothing+    , _bpSourceProvenance = Nothing+    , _bpCommands = Nothing+    , _bpTriggerId = Nothing+    , _bpStartTime = Nothing+    , _bpBuilderVersion = Nothing+    , _bpEndTime = Nothing+    , _bpId = Nothing+    , _bpProjectId = Nothing+    , _bpBuiltArtifacts = Nothing+    , _bpBuildOptions = Nothing+    , _bpCreateTime = Nothing+    , _bpLogsURI = Nothing+    }++-- | E-mail address of the user who initiated this build. Note that this was+-- the user\'s e-mail address at the time the build was initiated; this+-- address may not represent the same end-user for all time.+bpCreator :: Lens' BuildProvenance (Maybe Text)+bpCreator+  = lens _bpCreator (\ s a -> s{_bpCreator = a})++-- | Details of the Source input to the build.+bpSourceProvenance :: Lens' BuildProvenance (Maybe Source)+bpSourceProvenance+  = lens _bpSourceProvenance+      (\ s a -> s{_bpSourceProvenance = a})++-- | Commands requested by the build.+bpCommands :: Lens' BuildProvenance [Command]+bpCommands+  = lens _bpCommands (\ s a -> s{_bpCommands = a}) .+      _Default+      . _Coerce++-- | Trigger identifier if the build was triggered automatically; empty if+-- not.+bpTriggerId :: Lens' BuildProvenance (Maybe Text)+bpTriggerId+  = lens _bpTriggerId (\ s a -> s{_bpTriggerId = a})++-- | Time at which execution of the build was started.+bpStartTime :: Lens' BuildProvenance (Maybe UTCTime)+bpStartTime+  = lens _bpStartTime (\ s a -> s{_bpStartTime = a}) .+      mapping _DateTime++-- | Version string of the builder at the time this build was executed.+bpBuilderVersion :: Lens' BuildProvenance (Maybe Text)+bpBuilderVersion+  = lens _bpBuilderVersion+      (\ s a -> s{_bpBuilderVersion = a})++-- | Time at which execution of the build was finished.+bpEndTime :: Lens' BuildProvenance (Maybe UTCTime)+bpEndTime+  = lens _bpEndTime (\ s a -> s{_bpEndTime = a}) .+      mapping _DateTime++-- | Required. Unique identifier of the build.+bpId :: Lens' BuildProvenance (Maybe Text)+bpId = lens _bpId (\ s a -> s{_bpId = a})++-- | ID of the project.+bpProjectId :: Lens' BuildProvenance (Maybe Text)+bpProjectId+  = lens _bpProjectId (\ s a -> s{_bpProjectId = a})++-- | Output of the build.+bpBuiltArtifacts :: Lens' BuildProvenance [Artifact]+bpBuiltArtifacts+  = lens _bpBuiltArtifacts+      (\ s a -> s{_bpBuiltArtifacts = a})+      . _Default+      . _Coerce++-- | Special options applied to this build. This is a catch-all field where+-- build providers can enter any desired additional details.+bpBuildOptions :: Lens' BuildProvenance (Maybe BuildProvenanceBuildOptions)+bpBuildOptions+  = lens _bpBuildOptions+      (\ s a -> s{_bpBuildOptions = a})++-- | Time at which the build was created.+bpCreateTime :: Lens' BuildProvenance (Maybe UTCTime)+bpCreateTime+  = lens _bpCreateTime (\ s a -> s{_bpCreateTime = a})+      . mapping _DateTime++-- | URI where any logs for this provenance were written.+bpLogsURI :: Lens' BuildProvenance (Maybe Text)+bpLogsURI+  = lens _bpLogsURI (\ s a -> s{_bpLogsURI = a})++instance FromJSON BuildProvenance where+        parseJSON+          = withObject "BuildProvenance"+              (\ o ->+                 BuildProvenance' <$>+                   (o .:? "creator") <*> (o .:? "sourceProvenance") <*>+                     (o .:? "commands" .!= mempty)+                     <*> (o .:? "triggerId")+                     <*> (o .:? "startTime")+                     <*> (o .:? "builderVersion")+                     <*> (o .:? "endTime")+                     <*> (o .:? "id")+                     <*> (o .:? "projectId")+                     <*> (o .:? "builtArtifacts" .!= mempty)+                     <*> (o .:? "buildOptions")+                     <*> (o .:? "createTime")+                     <*> (o .:? "logsUri"))++instance ToJSON BuildProvenance where+        toJSON BuildProvenance'{..}+          = object+              (catMaybes+                 [("creator" .=) <$> _bpCreator,+                  ("sourceProvenance" .=) <$> _bpSourceProvenance,+                  ("commands" .=) <$> _bpCommands,+                  ("triggerId" .=) <$> _bpTriggerId,+                  ("startTime" .=) <$> _bpStartTime,+                  ("builderVersion" .=) <$> _bpBuilderVersion,+                  ("endTime" .=) <$> _bpEndTime, ("id" .=) <$> _bpId,+                  ("projectId" .=) <$> _bpProjectId,+                  ("builtArtifacts" .=) <$> _bpBuiltArtifacts,+                  ("buildOptions" .=) <$> _bpBuildOptions,+                  ("createTime" .=) <$> _bpCreateTime,+                  ("logsUri" .=) <$> _bpLogsURI])++-- | 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])++-- | An instance of an analysis type that has been found on a resource.+--+-- /See:/ 'occurrence' smart constructor.+data Occurrence = Occurrence'+    { _oInstallation  :: !(Maybe GrafeasV1beta1PackageDetails)+    , _oVulnerability :: !(Maybe GrafeasV1beta1VulnerabilityDetails)+    , _oDerivedImage  :: !(Maybe GrafeasV1beta1ImageDetails)+    , _oKind          :: !(Maybe OccurrenceKind)+    , _oBuild         :: !(Maybe GrafeasV1beta1BuildDetails)+    , _oAttestation   :: !(Maybe Details)+    , _oUpdateTime    :: !(Maybe DateTime')+    , _oName          :: !(Maybe Text)+    , _oNoteName      :: !(Maybe Text)+    , _oRemediation   :: !(Maybe Text)+    , _oResource      :: !(Maybe Resource)+    , _oDiscovered    :: !(Maybe GrafeasV1beta1DiscoveryDetails)+    , _oCreateTime    :: !(Maybe DateTime')+    , _oDeployment    :: !(Maybe GrafeasV1beta1DeploymentDetails)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Occurrence' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oInstallation'+--+-- * 'oVulnerability'+--+-- * 'oDerivedImage'+--+-- * 'oKind'+--+-- * 'oBuild'+--+-- * 'oAttestation'+--+-- * 'oUpdateTime'+--+-- * 'oName'+--+-- * 'oNoteName'+--+-- * 'oRemediation'+--+-- * 'oResource'+--+-- * 'oDiscovered'+--+-- * 'oCreateTime'+--+-- * 'oDeployment'+occurrence+    :: Occurrence+occurrence =+    Occurrence'+    { _oInstallation = Nothing+    , _oVulnerability = Nothing+    , _oDerivedImage = Nothing+    , _oKind = Nothing+    , _oBuild = Nothing+    , _oAttestation = Nothing+    , _oUpdateTime = Nothing+    , _oName = Nothing+    , _oNoteName = Nothing+    , _oRemediation = Nothing+    , _oResource = Nothing+    , _oDiscovered = Nothing+    , _oCreateTime = Nothing+    , _oDeployment = Nothing+    }++-- | Describes the installation of a package on the linked resource.+oInstallation :: Lens' Occurrence (Maybe GrafeasV1beta1PackageDetails)+oInstallation+  = lens _oInstallation+      (\ s a -> s{_oInstallation = a})++-- | Describes a security vulnerability.+oVulnerability :: Lens' Occurrence (Maybe GrafeasV1beta1VulnerabilityDetails)+oVulnerability+  = lens _oVulnerability+      (\ s a -> s{_oVulnerability = a})++-- | Describes how this resource derives from the basis in the associated+-- note.+oDerivedImage :: Lens' Occurrence (Maybe GrafeasV1beta1ImageDetails)+oDerivedImage+  = lens _oDerivedImage+      (\ s a -> s{_oDerivedImage = a})++-- | Output only. This explicitly denotes which of the occurrence details are+-- specified. This field can be used as a filter in list requests.+oKind :: Lens' Occurrence (Maybe OccurrenceKind)+oKind = lens _oKind (\ s a -> s{_oKind = a})++-- | Describes a verifiable build.+oBuild :: Lens' Occurrence (Maybe GrafeasV1beta1BuildDetails)+oBuild = lens _oBuild (\ s a -> s{_oBuild = a})++-- | Describes an attestation of an artifact.+oAttestation :: Lens' Occurrence (Maybe Details)+oAttestation+  = lens _oAttestation (\ s a -> s{_oAttestation = a})++-- | Output only. The time this occurrence was last updated.+oUpdateTime :: Lens' Occurrence (Maybe UTCTime)+oUpdateTime+  = lens _oUpdateTime (\ s a -> s{_oUpdateTime = a}) .+      mapping _DateTime++-- | Output only. The name of the occurrence in the form of+-- \`projects\/[PROJECT_ID]\/occurrences\/[OCCURRENCE_ID]\`.+oName :: Lens' Occurrence (Maybe Text)+oName = lens _oName (\ s a -> s{_oName = a})++-- | Required. Immutable. The analysis note associated with this occurrence,+-- in the form of \`projects\/[PROVIDER_ID]\/notes\/[NOTE_ID]\`. This field+-- can be used as a filter in list requests.+oNoteName :: Lens' Occurrence (Maybe Text)+oNoteName+  = lens _oNoteName (\ s a -> s{_oNoteName = a})++-- | A description of actions that can be taken to remedy the note.+oRemediation :: Lens' Occurrence (Maybe Text)+oRemediation+  = lens _oRemediation (\ s a -> s{_oRemediation = a})++-- | Required. Immutable. The resource for which the occurrence applies.+oResource :: Lens' Occurrence (Maybe Resource)+oResource+  = lens _oResource (\ s a -> s{_oResource = a})++-- | Describes when a resource was discovered.+oDiscovered :: Lens' Occurrence (Maybe GrafeasV1beta1DiscoveryDetails)+oDiscovered+  = lens _oDiscovered (\ s a -> s{_oDiscovered = a})++-- | Output only. The time this occurrence was created.+oCreateTime :: Lens' Occurrence (Maybe UTCTime)+oCreateTime+  = lens _oCreateTime (\ s a -> s{_oCreateTime = a}) .+      mapping _DateTime++-- | Describes the deployment of an artifact on a runtime.+oDeployment :: Lens' Occurrence (Maybe GrafeasV1beta1DeploymentDetails)+oDeployment+  = lens _oDeployment (\ s a -> s{_oDeployment = a})++instance FromJSON Occurrence where+        parseJSON+          = withObject "Occurrence"+              (\ o ->+                 Occurrence' <$>+                   (o .:? "installation") <*> (o .:? "vulnerability")+                     <*> (o .:? "derivedImage")+                     <*> (o .:? "kind")+                     <*> (o .:? "build")+                     <*> (o .:? "attestation")+                     <*> (o .:? "updateTime")+                     <*> (o .:? "name")+                     <*> (o .:? "noteName")+                     <*> (o .:? "remediation")+                     <*> (o .:? "resource")+                     <*> (o .:? "discovered")+                     <*> (o .:? "createTime")+                     <*> (o .:? "deployment"))++instance ToJSON Occurrence where+        toJSON Occurrence'{..}+          = object+              (catMaybes+                 [("installation" .=) <$> _oInstallation,+                  ("vulnerability" .=) <$> _oVulnerability,+                  ("derivedImage" .=) <$> _oDerivedImage,+                  ("kind" .=) <$> _oKind, ("build" .=) <$> _oBuild,+                  ("attestation" .=) <$> _oAttestation,+                  ("updateTime" .=) <$> _oUpdateTime,+                  ("name" .=) <$> _oName,+                  ("noteName" .=) <$> _oNoteName,+                  ("remediation" .=) <$> _oRemediation,+                  ("resource" .=) <$> _oResource,+                  ("discovered" .=) <$> _oDiscovered,+                  ("createTime" .=) <$> _oCreateTime,+                  ("deployment" .=) <$> _oDeployment])++-- | Details of a vulnerability Occurrence.+--+-- /See:/ 'grafeasV1beta1VulnerabilityDetails' smart constructor.+data GrafeasV1beta1VulnerabilityDetails = GrafeasV1beta1VulnerabilityDetails'+    { _gvvdLongDescription  :: !(Maybe Text)+    , _gvvdRelatedURLs      :: !(Maybe [RelatedURL])+    , _gvvdCvssScore        :: !(Maybe (Textual Double))+    , _gvvdPackageIssue     :: !(Maybe [PackageIssue])+    , _gvvdSeverity         :: !(Maybe GrafeasV1beta1VulnerabilityDetailsSeverity)+    , _gvvdShortDescription :: !(Maybe Text)+    , _gvvdType             :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GrafeasV1beta1VulnerabilityDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gvvdLongDescription'+--+-- * 'gvvdRelatedURLs'+--+-- * 'gvvdCvssScore'+--+-- * 'gvvdPackageIssue'+--+-- * 'gvvdSeverity'+--+-- * 'gvvdShortDescription'+--+-- * 'gvvdType'+grafeasV1beta1VulnerabilityDetails+    :: GrafeasV1beta1VulnerabilityDetails+grafeasV1beta1VulnerabilityDetails =+    GrafeasV1beta1VulnerabilityDetails'+    { _gvvdLongDescription = Nothing+    , _gvvdRelatedURLs = Nothing+    , _gvvdCvssScore = Nothing+    , _gvvdPackageIssue = Nothing+    , _gvvdSeverity = Nothing+    , _gvvdShortDescription = Nothing+    , _gvvdType = Nothing+    }++-- | Output only. A detailed description of this vulnerability.+gvvdLongDescription :: Lens' GrafeasV1beta1VulnerabilityDetails (Maybe Text)+gvvdLongDescription+  = lens _gvvdLongDescription+      (\ s a -> s{_gvvdLongDescription = a})++-- | Output only. URLs related to this vulnerability.+gvvdRelatedURLs :: Lens' GrafeasV1beta1VulnerabilityDetails [RelatedURL]+gvvdRelatedURLs+  = lens _gvvdRelatedURLs+      (\ s a -> s{_gvvdRelatedURLs = a})+      . _Default+      . _Coerce++-- | Output only. The CVSS score of this vulnerability. CVSS score is on a+-- scale of 0-10 where 0 indicates low severity and 10 indicates high+-- severity.+gvvdCvssScore :: Lens' GrafeasV1beta1VulnerabilityDetails (Maybe Double)+gvvdCvssScore+  = lens _gvvdCvssScore+      (\ s a -> s{_gvvdCvssScore = a})+      . mapping _Coerce++-- | Required. The set of affected locations and their fixes (if available)+-- within the associated resource.+gvvdPackageIssue :: Lens' GrafeasV1beta1VulnerabilityDetails [PackageIssue]+gvvdPackageIssue+  = lens _gvvdPackageIssue+      (\ s a -> s{_gvvdPackageIssue = a})+      . _Default+      . _Coerce++-- | Output only. The note provider assigned Severity of the vulnerability.+gvvdSeverity :: Lens' GrafeasV1beta1VulnerabilityDetails (Maybe GrafeasV1beta1VulnerabilityDetailsSeverity)+gvvdSeverity+  = lens _gvvdSeverity (\ s a -> s{_gvvdSeverity = a})++-- | Output only. A one sentence description of this vulnerability.+gvvdShortDescription :: Lens' GrafeasV1beta1VulnerabilityDetails (Maybe Text)+gvvdShortDescription+  = lens _gvvdShortDescription+      (\ s a -> s{_gvvdShortDescription = a})++-- | The type of package; whether native or non native(ruby gems, node.js+-- packages etc)+gvvdType :: Lens' GrafeasV1beta1VulnerabilityDetails (Maybe Text)+gvvdType = lens _gvvdType (\ s a -> s{_gvvdType = a})++instance FromJSON GrafeasV1beta1VulnerabilityDetails+         where+        parseJSON+          = withObject "GrafeasV1beta1VulnerabilityDetails"+              (\ o ->+                 GrafeasV1beta1VulnerabilityDetails' <$>+                   (o .:? "longDescription") <*>+                     (o .:? "relatedUrls" .!= mempty)+                     <*> (o .:? "cvssScore")+                     <*> (o .:? "packageIssue" .!= mempty)+                     <*> (o .:? "severity")+                     <*> (o .:? "shortDescription")+                     <*> (o .:? "type"))++instance ToJSON GrafeasV1beta1VulnerabilityDetails+         where+        toJSON GrafeasV1beta1VulnerabilityDetails'{..}+          = object+              (catMaybes+                 [("longDescription" .=) <$> _gvvdLongDescription,+                  ("relatedUrls" .=) <$> _gvvdRelatedURLs,+                  ("cvssScore" .=) <$> _gvvdCvssScore,+                  ("packageIssue" .=) <$> _gvvdPackageIssue,+                  ("severity" .=) <$> _gvvdSeverity,+                  ("shortDescription" .=) <$> _gvvdShortDescription,+                  ("type" .=) <$> _gvvdType])++-- | Hash(es) of the build source, which can be used to verify that the+-- original source integrity was maintained in the build. The keys to this+-- map are file paths used as build source and the values contain the hash+-- values for those files. If the build source came in a single package+-- such as a gzipped tarfile (.tar.gz), the FileHash will be for the single+-- path to that file.+--+-- /See:/ 'sourceFileHashes' smart constructor.+newtype SourceFileHashes = SourceFileHashes'+    { _sfhAddtional :: HashMap Text FileHashes+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SourceFileHashes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sfhAddtional'+sourceFileHashes+    :: HashMap Text FileHashes -- ^ 'sfhAddtional'+    -> SourceFileHashes+sourceFileHashes pSfhAddtional_ =+    SourceFileHashes'+    { _sfhAddtional = _Coerce # pSfhAddtional_+    }++sfhAddtional :: Lens' SourceFileHashes (HashMap Text FileHashes)+sfhAddtional+  = lens _sfhAddtional (\ s a -> s{_sfhAddtional = a})+      . _Coerce++instance FromJSON SourceFileHashes where+        parseJSON+          = withObject "SourceFileHashes"+              (\ o -> SourceFileHashes' <$> (parseJSONObject o))++instance ToJSON SourceFileHashes where+        toJSON = toJSON . _sfhAddtional++-- | 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])++-- | Command describes a step performed as part of the build pipeline.+--+-- /See:/ 'command' smart constructor.+data Command = Command'+    { _cDir     :: !(Maybe Text)+    , _cArgs    :: !(Maybe [Text])+    , _cEnv     :: !(Maybe [Text])+    , _cWaitFor :: !(Maybe [Text])+    , _cName    :: !(Maybe Text)+    , _cId      :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Command' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cDir'+--+-- * 'cArgs'+--+-- * 'cEnv'+--+-- * 'cWaitFor'+--+-- * 'cName'+--+-- * 'cId'+command+    :: Command+command =+    Command'+    { _cDir = Nothing+    , _cArgs = Nothing+    , _cEnv = Nothing+    , _cWaitFor = Nothing+    , _cName = Nothing+    , _cId = Nothing+    }++-- | Working directory (relative to project source root) used when running+-- this command.+cDir :: Lens' Command (Maybe Text)+cDir = lens _cDir (\ s a -> s{_cDir = a})++-- | Command-line arguments used when executing this command.+cArgs :: Lens' Command [Text]+cArgs+  = lens _cArgs (\ s a -> s{_cArgs = a}) . _Default .+      _Coerce++-- | Environment variables set before running this command.+cEnv :: Lens' Command [Text]+cEnv+  = lens _cEnv (\ s a -> s{_cEnv = a}) . _Default .+      _Coerce++-- | The ID(s) of the command(s) that this command depends on.+cWaitFor :: Lens' Command [Text]+cWaitFor+  = lens _cWaitFor (\ s a -> s{_cWaitFor = a}) .+      _Default+      . _Coerce++-- | Required. Name of the command, as presented on the command line, or if+-- the command is packaged as a Docker container, as presented to \`docker+-- pull\`.+cName :: Lens' Command (Maybe Text)+cName = lens _cName (\ s a -> s{_cName = a})++-- | Optional unique identifier for this command, used in wait_for to+-- reference this command as a dependency.+cId :: Lens' Command (Maybe Text)+cId = lens _cId (\ s a -> s{_cId = a})++instance FromJSON Command where+        parseJSON+          = withObject "Command"+              (\ o ->+                 Command' <$>+                   (o .:? "dir") <*> (o .:? "args" .!= mempty) <*>+                     (o .:? "env" .!= mempty)+                     <*> (o .:? "waitFor" .!= mempty)+                     <*> (o .:? "name")+                     <*> (o .:? "id"))++instance ToJSON Command where+        toJSON Command'{..}+          = object+              (catMaybes+                 [("dir" .=) <$> _cDir, ("args" .=) <$> _cArgs,+                  ("env" .=) <$> _cEnv, ("waitFor" .=) <$> _cWaitFor,+                  ("name" .=) <$> _cName, ("id" .=) <$> _cId])++-- | Request message for \`GetIamPolicy\` method.+--+-- /See:/ 'getIAMPolicyRequest' smart constructor.+data GetIAMPolicyRequest =+    GetIAMPolicyRequest'+    deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetIAMPolicyRequest' with the minimum fields required to make a request.+--+getIAMPolicyRequest+    :: GetIAMPolicyRequest+getIAMPolicyRequest = GetIAMPolicyRequest'++instance FromJSON GetIAMPolicyRequest where+        parseJSON+          = withObject "GetIAMPolicyRequest"+              (\ o -> pure GetIAMPolicyRequest')++instance ToJSON GetIAMPolicyRequest where+        toJSON = const emptyObject++-- | A note that indicates a type of analysis a provider would perform. This+-- note exists in a provider\'s project. A \`Discovery\` occurrence is+-- created in a consumer\'s project at the start of analysis.+--+-- /See:/ 'discovery' smart constructor.+newtype Discovery = Discovery'+    { _dAnalysisKind :: Maybe DiscoveryAnalysisKind+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Discovery' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dAnalysisKind'+discovery+    :: Discovery+discovery =+    Discovery'+    { _dAnalysisKind = Nothing+    }++-- | Required. Immutable. The kind of analysis that is handled by this+-- discovery.+dAnalysisKind :: Lens' Discovery (Maybe DiscoveryAnalysisKind)+dAnalysisKind+  = lens _dAnalysisKind+      (\ s a -> s{_dAnalysisKind = a})++instance FromJSON Discovery where+        parseJSON+          = withObject "Discovery"+              (\ o -> Discovery' <$> (o .:? "analysisKind"))++instance ToJSON Discovery where+        toJSON Discovery'{..}+          = object+              (catMaybes [("analysisKind" .=) <$> _dAnalysisKind])++-- | Container message for hash values.+--+-- /See:/ 'hash' smart constructor.+data Hash = Hash'+    { _hValue :: !(Maybe Bytes)+    , _hType  :: !(Maybe HashType)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Hash' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hValue'+--+-- * 'hType'+hash+    :: Hash+hash =+    Hash'+    { _hValue = Nothing+    , _hType = Nothing+    }++-- | Required. The hash value.+hValue :: Lens' Hash (Maybe ByteString)+hValue+  = lens _hValue (\ s a -> s{_hValue = a}) .+      mapping _Bytes++-- | Required. The type of hash that was performed.+hType :: Lens' Hash (Maybe HashType)+hType = lens _hType (\ s a -> s{_hType = a})++instance FromJSON Hash where+        parseJSON+          = withObject "Hash"+              (\ o -> Hash' <$> (o .:? "value") <*> (o .:? "type"))++instance ToJSON Hash where+        toJSON Hash'{..}+          = object+              (catMaybes+                 [("value" .=) <$> _hValue, ("type" .=) <$> _hType])++-- | Basis describes the base image portion (Note) of the DockerImage+-- relationship. Linked occurrences are derived from this or an equivalent+-- image via: FROM Or an equivalent reference, e.g. a tag of the+-- resource_url.+--+-- /See:/ 'basis' smart constructor.+data Basis = Basis'+    { _bFingerprint :: !(Maybe Fingerprint)+    , _bResourceURL :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Basis' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bFingerprint'+--+-- * 'bResourceURL'+basis+    :: Basis+basis =+    Basis'+    { _bFingerprint = Nothing+    , _bResourceURL = Nothing+    }++-- | Required. Immutable. The fingerprint of the base image.+bFingerprint :: Lens' Basis (Maybe Fingerprint)+bFingerprint+  = lens _bFingerprint (\ s a -> s{_bFingerprint = a})++-- | Required. Immutable. The resource_url for the resource representing the+-- basis of associated occurrence images.+bResourceURL :: Lens' Basis (Maybe Text)+bResourceURL+  = lens _bResourceURL (\ s a -> s{_bResourceURL = a})++instance FromJSON Basis where+        parseJSON+          = withObject "Basis"+              (\ o ->+                 Basis' <$>+                   (o .:? "fingerprint") <*> (o .:? "resourceUrl"))++instance ToJSON Basis where+        toJSON Basis'{..}+          = object+              (catMaybes+                 [("fingerprint" .=) <$> _bFingerprint,+                  ("resourceUrl" .=) <$> _bResourceURL])++-- | Request to create notes in batch.+--+-- /See:/ 'batchCreateNotesRequest' smart constructor.+newtype BatchCreateNotesRequest = BatchCreateNotesRequest'+    { _bcnrNotes :: Maybe BatchCreateNotesRequestNotes+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchCreateNotesRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bcnrNotes'+batchCreateNotesRequest+    :: BatchCreateNotesRequest+batchCreateNotesRequest =+    BatchCreateNotesRequest'+    { _bcnrNotes = Nothing+    }++-- | The notes to create. Max allowed length is 1000.+bcnrNotes :: Lens' BatchCreateNotesRequest (Maybe BatchCreateNotesRequestNotes)+bcnrNotes+  = lens _bcnrNotes (\ s a -> s{_bcnrNotes = a})++instance FromJSON BatchCreateNotesRequest where+        parseJSON+          = withObject "BatchCreateNotesRequest"+              (\ o -> BatchCreateNotesRequest' <$> (o .:? "notes"))++instance ToJSON BatchCreateNotesRequest where+        toJSON BatchCreateNotesRequest'{..}+          = object (catMaybes [("notes" .=) <$> _bcnrNotes])++-- | A SourceContext is a reference to a tree of files. A SourceContext+-- together with a path point to a unique revision of a single file or+-- directory.+--+-- /See:/ 'sourceContext' smart constructor.+data SourceContext = SourceContext'+    { _scCloudRepo :: !(Maybe CloudRepoSourceContext)+    , _scGerrit    :: !(Maybe GerritSourceContext)+    , _scGit       :: !(Maybe GitSourceContext)+    , _scLabels    :: !(Maybe SourceContextLabels)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SourceContext' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scCloudRepo'+--+-- * 'scGerrit'+--+-- * 'scGit'+--+-- * 'scLabels'+sourceContext+    :: SourceContext+sourceContext =+    SourceContext'+    { _scCloudRepo = Nothing+    , _scGerrit = Nothing+    , _scGit = Nothing+    , _scLabels = Nothing+    }++-- | A SourceContext referring to a revision in a Google Cloud Source Repo.+scCloudRepo :: Lens' SourceContext (Maybe CloudRepoSourceContext)+scCloudRepo+  = lens _scCloudRepo (\ s a -> s{_scCloudRepo = a})++-- | A SourceContext referring to a Gerrit project.+scGerrit :: Lens' SourceContext (Maybe GerritSourceContext)+scGerrit = lens _scGerrit (\ s a -> s{_scGerrit = a})++-- | A SourceContext referring to any third party Git repo (e.g., GitHub).+scGit :: Lens' SourceContext (Maybe GitSourceContext)+scGit = lens _scGit (\ s a -> s{_scGit = a})++-- | Labels with user defined metadata.+scLabels :: Lens' SourceContext (Maybe SourceContextLabels)+scLabels = lens _scLabels (\ s a -> s{_scLabels = a})++instance FromJSON SourceContext where+        parseJSON+          = withObject "SourceContext"+              (\ o ->+                 SourceContext' <$>+                   (o .:? "cloudRepo") <*> (o .:? "gerrit") <*>+                     (o .:? "git")+                     <*> (o .:? "labels"))++instance ToJSON SourceContext where+        toJSON SourceContext'{..}+          = object+              (catMaybes+                 [("cloudRepo" .=) <$> _scCloudRepo,+                  ("gerrit" .=) <$> _scGerrit, ("git" .=) <$> _scGit,+                  ("labels" .=) <$> _scLabels])++-- | This represents a particular channel of distribution for a given+-- package. E.g., Debian\'s jessie-backports dpkg mirror.+--+-- /See:/ 'distribution' smart constructor.+data Distribution = Distribution'+    { _dURL           :: !(Maybe Text)+    , _dMaintainer    :: !(Maybe Text)+    , _dArchitecture  :: !(Maybe DistributionArchitecture)+    , _dCpeURI        :: !(Maybe Text)+    , _dDescription   :: !(Maybe Text)+    , _dLatestVersion :: !(Maybe Version)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Distribution' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dURL'+--+-- * 'dMaintainer'+--+-- * 'dArchitecture'+--+-- * 'dCpeURI'+--+-- * 'dDescription'+--+-- * 'dLatestVersion'+distribution+    :: Distribution+distribution =+    Distribution'+    { _dURL = Nothing+    , _dMaintainer = Nothing+    , _dArchitecture = Nothing+    , _dCpeURI = Nothing+    , _dDescription = Nothing+    , _dLatestVersion = Nothing+    }++-- | The distribution channel-specific homepage for this package.+dURL :: Lens' Distribution (Maybe Text)+dURL = lens _dURL (\ s a -> s{_dURL = a})++-- | A freeform string denoting the maintainer of this package.+dMaintainer :: Lens' Distribution (Maybe Text)+dMaintainer+  = lens _dMaintainer (\ s a -> s{_dMaintainer = a})++-- | The CPU architecture for which packages in this distribution channel+-- were built.+dArchitecture :: Lens' Distribution (Maybe DistributionArchitecture)+dArchitecture+  = lens _dArchitecture+      (\ s a -> s{_dArchitecture = a})++-- | Required. The cpe_uri in [CPE+-- format](https:\/\/cpe.mitre.org\/specification\/) denoting the package+-- manager version distributing a package.+dCpeURI :: Lens' Distribution (Maybe Text)+dCpeURI = lens _dCpeURI (\ s a -> s{_dCpeURI = a})++-- | The distribution channel-specific description of this package.+dDescription :: Lens' Distribution (Maybe Text)+dDescription+  = lens _dDescription (\ s a -> s{_dDescription = a})++-- | The latest available version of this package in this distribution+-- channel.+dLatestVersion :: Lens' Distribution (Maybe Version)+dLatestVersion+  = lens _dLatestVersion+      (\ s a -> s{_dLatestVersion = a})++instance FromJSON Distribution where+        parseJSON+          = withObject "Distribution"+              (\ o ->+                 Distribution' <$>+                   (o .:? "url") <*> (o .:? "maintainer") <*>+                     (o .:? "architecture")+                     <*> (o .:? "cpeUri")+                     <*> (o .:? "description")+                     <*> (o .:? "latestVersion"))++instance ToJSON Distribution where+        toJSON Distribution'{..}+          = object+              (catMaybes+                 [("url" .=) <$> _dURL,+                  ("maintainer" .=) <$> _dMaintainer,+                  ("architecture" .=) <$> _dArchitecture,+                  ("cpeUri" .=) <$> _dCpeURI,+                  ("description" .=) <$> _dDescription,+                  ("latestVersion" .=) <$> _dLatestVersion])++-- | Request to create occurrences in batch.+--+-- /See:/ 'batchCreateOccurrencesRequest' smart constructor.+newtype BatchCreateOccurrencesRequest = BatchCreateOccurrencesRequest'+    { _bcorOccurrences :: Maybe [Occurrence]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchCreateOccurrencesRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bcorOccurrences'+batchCreateOccurrencesRequest+    :: BatchCreateOccurrencesRequest+batchCreateOccurrencesRequest =+    BatchCreateOccurrencesRequest'+    { _bcorOccurrences = Nothing+    }++-- | The occurrences to create. Max allowed length is 1000.+bcorOccurrences :: Lens' BatchCreateOccurrencesRequest [Occurrence]+bcorOccurrences+  = lens _bcorOccurrences+      (\ s a -> s{_bcorOccurrences = a})+      . _Default+      . _Coerce++instance FromJSON BatchCreateOccurrencesRequest where+        parseJSON+          = withObject "BatchCreateOccurrencesRequest"+              (\ o ->+                 BatchCreateOccurrencesRequest' <$>+                   (o .:? "occurrences" .!= mempty))++instance ToJSON BatchCreateOccurrencesRequest where+        toJSON BatchCreateOccurrencesRequest'{..}+          = object+              (catMaybes [("occurrences" .=) <$> _bcorOccurrences])++-- | Response for listing occurrences.+--+-- /See:/ 'listOccurrencesResponse' smart constructor.+data ListOccurrencesResponse = ListOccurrencesResponse'+    { _lorOccurrences   :: !(Maybe [Occurrence])+    , _lorNextPageToken :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListOccurrencesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lorOccurrences'+--+-- * 'lorNextPageToken'+listOccurrencesResponse+    :: ListOccurrencesResponse+listOccurrencesResponse =+    ListOccurrencesResponse'+    { _lorOccurrences = Nothing+    , _lorNextPageToken = Nothing+    }++-- | The occurrences requested.+lorOccurrences :: Lens' ListOccurrencesResponse [Occurrence]+lorOccurrences+  = lens _lorOccurrences+      (\ s a -> s{_lorOccurrences = a})+      . _Default+      . _Coerce++-- | The next pagination token in the list response. It should be used as+-- \`page_token\` for the following request. An empty value means no more+-- results.+lorNextPageToken :: Lens' ListOccurrencesResponse (Maybe Text)+lorNextPageToken+  = lens _lorNextPageToken+      (\ s a -> s{_lorNextPageToken = a})++instance FromJSON ListOccurrencesResponse where+        parseJSON+          = withObject "ListOccurrencesResponse"+              (\ o ->+                 ListOccurrencesResponse' <$>+                   (o .:? "occurrences" .!= mempty) <*>+                     (o .:? "nextPageToken"))++instance ToJSON ListOccurrencesResponse where+        toJSON ListOccurrencesResponse'{..}+          = object+              (catMaybes+                 [("occurrences" .=) <$> _lorOccurrences,+                  ("nextPageToken" .=) <$> _lorNextPageToken])++-- | An occurrence of a particular package installation found within a+-- system\'s filesystem. E.g., glibc was found in+-- \`\/var\/lib\/dpkg\/status\`.+--+-- /See:/ 'location' smart constructor.+data Location = Location'+    { _lPath    :: !(Maybe Text)+    , _lVersion :: !(Maybe Version)+    , _lCpeURI  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Location' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lPath'+--+-- * 'lVersion'+--+-- * 'lCpeURI'+location+    :: Location+location =+    Location'+    { _lPath = Nothing+    , _lVersion = Nothing+    , _lCpeURI = Nothing+    }++-- | The path from which we gathered that this package\/version is installed.+lPath :: Lens' Location (Maybe Text)+lPath = lens _lPath (\ s a -> s{_lPath = a})++-- | The version installed at this location.+lVersion :: Lens' Location (Maybe Version)+lVersion = lens _lVersion (\ s a -> s{_lVersion = a})++-- | Required. The CPE URI in [CPE+-- format](https:\/\/cpe.mitre.org\/specification\/) denoting the package+-- manager version distributing a package.+lCpeURI :: Lens' Location (Maybe Text)+lCpeURI = lens _lCpeURI (\ s a -> s{_lCpeURI = a})++instance FromJSON Location where+        parseJSON+          = withObject "Location"+              (\ o ->+                 Location' <$>+                   (o .:? "path") <*> (o .:? "version") <*>+                     (o .:? "cpeUri"))++instance ToJSON Location where+        toJSON Location'{..}+          = object+              (catMaybes+                 [("path" .=) <$> _lPath,+                  ("version" .=) <$> _lVersion,+                  ("cpeUri" .=) <$> _lCpeURI])++-- | A generic empty message that you can re-use to avoid defining duplicated+-- empty messages in your APIs. A typical example is to use it as the+-- request or the response type of an API method. For instance: service Foo+-- { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The+-- JSON representation for \`Empty\` is empty JSON object \`{}\`.+--+-- /See:/ 'empty' smart constructor.+data Empty =+    Empty'+    deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Empty' with the minimum fields required to make a request.+--+empty+    :: Empty+empty = Empty'++instance FromJSON Empty where+        parseJSON = withObject "Empty" (\ o -> pure Empty')++instance ToJSON Empty where+        toJSON = const emptyObject++-- | A SourceContext referring to a Gerrit project.+--+-- /See:/ 'gerritSourceContext' smart constructor.+data GerritSourceContext = GerritSourceContext'+    { _gscGerritProject :: !(Maybe Text)+    , _gscRevisionId    :: !(Maybe Text)+    , _gscHostURI       :: !(Maybe Text)+    , _gscAliasContext  :: !(Maybe AliasContext)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GerritSourceContext' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gscGerritProject'+--+-- * 'gscRevisionId'+--+-- * 'gscHostURI'+--+-- * 'gscAliasContext'+gerritSourceContext+    :: GerritSourceContext+gerritSourceContext =+    GerritSourceContext'+    { _gscGerritProject = Nothing+    , _gscRevisionId = Nothing+    , _gscHostURI = Nothing+    , _gscAliasContext = Nothing+    }++-- | The full project name within the host. Projects may be nested, so+-- \"project\/subproject\" is a valid project name. The \"repo name\" is+-- the hostURI\/project.+gscGerritProject :: Lens' GerritSourceContext (Maybe Text)+gscGerritProject+  = lens _gscGerritProject+      (\ s a -> s{_gscGerritProject = a})++-- | A revision (commit) ID.+gscRevisionId :: Lens' GerritSourceContext (Maybe Text)+gscRevisionId+  = lens _gscRevisionId+      (\ s a -> s{_gscRevisionId = a})++-- | The URI of a running Gerrit instance.+gscHostURI :: Lens' GerritSourceContext (Maybe Text)+gscHostURI+  = lens _gscHostURI (\ s a -> s{_gscHostURI = a})++-- | An alias, which may be a branch or tag.+gscAliasContext :: Lens' GerritSourceContext (Maybe AliasContext)+gscAliasContext+  = lens _gscAliasContext+      (\ s a -> s{_gscAliasContext = a})++instance FromJSON GerritSourceContext where+        parseJSON+          = withObject "GerritSourceContext"+              (\ o ->+                 GerritSourceContext' <$>+                   (o .:? "gerritProject") <*> (o .:? "revisionId") <*>+                     (o .:? "hostUri")+                     <*> (o .:? "aliasContext"))++instance ToJSON GerritSourceContext where+        toJSON GerritSourceContext'{..}+          = object+              (catMaybes+                 [("gerritProject" .=) <$> _gscGerritProject,+                  ("revisionId" .=) <$> _gscRevisionId,+                  ("hostUri" .=) <$> _gscHostURI,+                  ("aliasContext" .=) <$> _gscAliasContext])++-- | A unique identifier for a Cloud Repo.+--+-- /See:/ 'repoId' smart constructor.+data RepoId = RepoId'+    { _riUid           :: !(Maybe Text)+    , _riProjectRepoId :: !(Maybe ProjectRepoId)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RepoId' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'riUid'+--+-- * 'riProjectRepoId'+repoId+    :: RepoId+repoId =+    RepoId'+    { _riUid = Nothing+    , _riProjectRepoId = Nothing+    }++-- | A server-assigned, globally unique identifier.+riUid :: Lens' RepoId (Maybe Text)+riUid = lens _riUid (\ s a -> s{_riUid = a})++-- | A combination of a project ID and a repo name.+riProjectRepoId :: Lens' RepoId (Maybe ProjectRepoId)+riProjectRepoId+  = lens _riProjectRepoId+      (\ s a -> s{_riProjectRepoId = a})++instance FromJSON RepoId where+        parseJSON+          = withObject "RepoId"+              (\ o ->+                 RepoId' <$>+                   (o .:? "uid") <*> (o .:? "projectRepoId"))++instance ToJSON RepoId where+        toJSON RepoId'{..}+          = object+              (catMaybes+                 [("uid" .=) <$> _riUid,+                  ("projectRepoId" .=) <$> _riProjectRepoId])++-- | Response for listing occurrences for a note.+--+-- /See:/ 'listNoteOccurrencesResponse' smart constructor.+data ListNoteOccurrencesResponse = ListNoteOccurrencesResponse'+    { _lnorOccurrences   :: !(Maybe [Occurrence])+    , _lnorNextPageToken :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListNoteOccurrencesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lnorOccurrences'+--+-- * 'lnorNextPageToken'+listNoteOccurrencesResponse+    :: ListNoteOccurrencesResponse+listNoteOccurrencesResponse =+    ListNoteOccurrencesResponse'+    { _lnorOccurrences = Nothing+    , _lnorNextPageToken = Nothing+    }++-- | The occurrences attached to the specified note.+lnorOccurrences :: Lens' ListNoteOccurrencesResponse [Occurrence]+lnorOccurrences+  = lens _lnorOccurrences+      (\ s a -> s{_lnorOccurrences = a})+      . _Default+      . _Coerce++-- | Token to provide to skip to a particular spot in the list.+lnorNextPageToken :: Lens' ListNoteOccurrencesResponse (Maybe Text)+lnorNextPageToken+  = lens _lnorNextPageToken+      (\ s a -> s{_lnorNextPageToken = a})++instance FromJSON ListNoteOccurrencesResponse where+        parseJSON+          = withObject "ListNoteOccurrencesResponse"+              (\ o ->+                 ListNoteOccurrencesResponse' <$>+                   (o .:? "occurrences" .!= mempty) <*>+                     (o .:? "nextPageToken"))++instance ToJSON ListNoteOccurrencesResponse where+        toJSON ListNoteOccurrencesResponse'{..}+          = object+              (catMaybes+                 [("occurrences" .=) <$> _lnorOccurrences,+                  ("nextPageToken" .=) <$> _lnorNextPageToken])++-- | A type of analysis that can be done for a resource.+--+-- /See:/ 'note' smart constructor.+data Note = Note'+    { _nVulnerability        :: !(Maybe Vulnerability)+    , _nLongDescription      :: !(Maybe Text)+    , _nAttestationAuthority :: !(Maybe Authority)+    , _nDiscovery            :: !(Maybe Discovery)+    , _nKind                 :: !(Maybe NoteKind)+    , _nRelatedNoteNames     :: !(Maybe [Text])+    , _nBuild                :: !(Maybe Build)+    , _nDeployable           :: !(Maybe Deployable)+    , _nRelatedURL           :: !(Maybe [RelatedURL])+    , _nUpdateTime           :: !(Maybe DateTime')+    , _nShortDescription     :: !(Maybe Text)+    , _nName                 :: !(Maybe Text)+    , _nBaseImage            :: !(Maybe Basis)+    , _nPackage              :: !(Maybe Package)+    , _nExpirationTime       :: !(Maybe DateTime')+    , _nCreateTime           :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Note' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nVulnerability'+--+-- * 'nLongDescription'+--+-- * 'nAttestationAuthority'+--+-- * 'nDiscovery'+--+-- * 'nKind'+--+-- * 'nRelatedNoteNames'+--+-- * 'nBuild'+--+-- * 'nDeployable'+--+-- * 'nRelatedURL'+--+-- * 'nUpdateTime'+--+-- * 'nShortDescription'+--+-- * 'nName'+--+-- * 'nBaseImage'+--+-- * 'nPackage'+--+-- * 'nExpirationTime'+--+-- * 'nCreateTime'+note+    :: Note+note =+    Note'+    { _nVulnerability = Nothing+    , _nLongDescription = Nothing+    , _nAttestationAuthority = Nothing+    , _nDiscovery = Nothing+    , _nKind = Nothing+    , _nRelatedNoteNames = Nothing+    , _nBuild = Nothing+    , _nDeployable = Nothing+    , _nRelatedURL = Nothing+    , _nUpdateTime = Nothing+    , _nShortDescription = Nothing+    , _nName = Nothing+    , _nBaseImage = Nothing+    , _nPackage = Nothing+    , _nExpirationTime = Nothing+    , _nCreateTime = Nothing+    }++-- | A note describing a package vulnerability.+nVulnerability :: Lens' Note (Maybe Vulnerability)+nVulnerability+  = lens _nVulnerability+      (\ s a -> s{_nVulnerability = a})++-- | A detailed description of this note.+nLongDescription :: Lens' Note (Maybe Text)+nLongDescription+  = lens _nLongDescription+      (\ s a -> s{_nLongDescription = a})++-- | A note describing an attestation role.+nAttestationAuthority :: Lens' Note (Maybe Authority)+nAttestationAuthority+  = lens _nAttestationAuthority+      (\ s a -> s{_nAttestationAuthority = a})++-- | A note describing the initial analysis of a resource.+nDiscovery :: Lens' Note (Maybe Discovery)+nDiscovery+  = lens _nDiscovery (\ s a -> s{_nDiscovery = a})++-- | Output only. The type of analysis. This field can be used as a filter in+-- list requests.+nKind :: Lens' Note (Maybe NoteKind)+nKind = lens _nKind (\ s a -> s{_nKind = a})++-- | Other notes related to this note.+nRelatedNoteNames :: Lens' Note [Text]+nRelatedNoteNames+  = lens _nRelatedNoteNames+      (\ s a -> s{_nRelatedNoteNames = a})+      . _Default+      . _Coerce++-- | A note describing build provenance for a verifiable build.+nBuild :: Lens' Note (Maybe Build)+nBuild = lens _nBuild (\ s a -> s{_nBuild = a})++-- | A note describing something that can be deployed.+nDeployable :: Lens' Note (Maybe Deployable)+nDeployable+  = lens _nDeployable (\ s a -> s{_nDeployable = a})++-- | URLs associated with this note.+nRelatedURL :: Lens' Note [RelatedURL]+nRelatedURL+  = lens _nRelatedURL (\ s a -> s{_nRelatedURL = a}) .+      _Default+      . _Coerce++-- | Output only. The time this note was last updated. This field can be used+-- as a filter in list requests.+nUpdateTime :: Lens' Note (Maybe UTCTime)+nUpdateTime+  = lens _nUpdateTime (\ s a -> s{_nUpdateTime = a}) .+      mapping _DateTime++-- | A one sentence description of this note.+nShortDescription :: Lens' Note (Maybe Text)+nShortDescription+  = lens _nShortDescription+      (\ s a -> s{_nShortDescription = a})++-- | Output only. The name of the note in the form of+-- \`projects\/[PROVIDER_ID]\/notes\/[NOTE_ID]\`.+nName :: Lens' Note (Maybe Text)+nName = lens _nName (\ s a -> s{_nName = a})++-- | A note describing a base image.+nBaseImage :: Lens' Note (Maybe Basis)+nBaseImage+  = lens _nBaseImage (\ s a -> s{_nBaseImage = a})++-- | A note describing a package hosted by various package managers.+nPackage :: Lens' Note (Maybe Package)+nPackage = lens _nPackage (\ s a -> s{_nPackage = a})++-- | Time of expiration for this note. Empty if note does not expire.+nExpirationTime :: Lens' Note (Maybe UTCTime)+nExpirationTime+  = lens _nExpirationTime+      (\ s a -> s{_nExpirationTime = a})+      . mapping _DateTime++-- | Output only. The time this note was created. This field can be used as a+-- filter in list requests.+nCreateTime :: Lens' Note (Maybe UTCTime)+nCreateTime+  = lens _nCreateTime (\ s a -> s{_nCreateTime = a}) .+      mapping _DateTime++instance FromJSON Note where+        parseJSON+          = withObject "Note"+              (\ o ->+                 Note' <$>+                   (o .:? "vulnerability") <*> (o .:? "longDescription")+                     <*> (o .:? "attestationAuthority")+                     <*> (o .:? "discovery")+                     <*> (o .:? "kind")+                     <*> (o .:? "relatedNoteNames" .!= mempty)+                     <*> (o .:? "build")+                     <*> (o .:? "deployable")+                     <*> (o .:? "relatedUrl" .!= mempty)+                     <*> (o .:? "updateTime")+                     <*> (o .:? "shortDescription")+                     <*> (o .:? "name")+                     <*> (o .:? "baseImage")+                     <*> (o .:? "package")+                     <*> (o .:? "expirationTime")+                     <*> (o .:? "createTime"))++instance ToJSON Note where+        toJSON Note'{..}+          = object+              (catMaybes+                 [("vulnerability" .=) <$> _nVulnerability,+                  ("longDescription" .=) <$> _nLongDescription,+                  ("attestationAuthority" .=) <$>+                    _nAttestationAuthority,+                  ("discovery" .=) <$> _nDiscovery,+                  ("kind" .=) <$> _nKind,+                  ("relatedNoteNames" .=) <$> _nRelatedNoteNames,+                  ("build" .=) <$> _nBuild,+                  ("deployable" .=) <$> _nDeployable,+                  ("relatedUrl" .=) <$> _nRelatedURL,+                  ("updateTime" .=) <$> _nUpdateTime,+                  ("shortDescription" .=) <$> _nShortDescription,+                  ("name" .=) <$> _nName,+                  ("baseImage" .=) <$> _nBaseImage,+                  ("package" .=) <$> _nPackage,+                  ("expirationTime" .=) <$> _nExpirationTime,+                  ("createTime" .=) <$> _nCreateTime])++-- | Response for creating notes in batch.+--+-- /See:/ 'batchCreateNotesResponse' smart constructor.+newtype BatchCreateNotesResponse = BatchCreateNotesResponse'+    { _bNotes :: Maybe [Note]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchCreateNotesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bNotes'+batchCreateNotesResponse+    :: BatchCreateNotesResponse+batchCreateNotesResponse =+    BatchCreateNotesResponse'+    { _bNotes = Nothing+    }++-- | The notes that were created.+bNotes :: Lens' BatchCreateNotesResponse [Note]+bNotes+  = lens _bNotes (\ s a -> s{_bNotes = a}) . _Default .+      _Coerce++instance FromJSON BatchCreateNotesResponse where+        parseJSON+          = withObject "BatchCreateNotesResponse"+              (\ o ->+                 BatchCreateNotesResponse' <$>+                   (o .:? "notes" .!= mempty))++instance ToJSON BatchCreateNotesResponse where+        toJSON BatchCreateNotesResponse'{..}+          = object (catMaybes [("notes" .=) <$> _bNotes])++-- | Selects a repo using a Google Cloud Platform project ID (e.g.,+-- winged-cargo-31) and a repo name within that project.+--+-- /See:/ 'projectRepoId' smart constructor.+data ProjectRepoId = ProjectRepoId'+    { _priRepoName  :: !(Maybe Text)+    , _priProjectId :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectRepoId' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'priRepoName'+--+-- * 'priProjectId'+projectRepoId+    :: ProjectRepoId+projectRepoId =+    ProjectRepoId'+    { _priRepoName = Nothing+    , _priProjectId = Nothing+    }++-- | The name of the repo. Leave empty for the default repo.+priRepoName :: Lens' ProjectRepoId (Maybe Text)+priRepoName+  = lens _priRepoName (\ s a -> s{_priRepoName = a})++-- | The ID of the project.+priProjectId :: Lens' ProjectRepoId (Maybe Text)+priProjectId+  = lens _priProjectId (\ s a -> s{_priProjectId = a})++instance FromJSON ProjectRepoId where+        parseJSON+          = withObject "ProjectRepoId"+              (\ o ->+                 ProjectRepoId' <$>+                   (o .:? "repoName") <*> (o .:? "projectId"))++instance ToJSON ProjectRepoId where+        toJSON ProjectRepoId'{..}+          = object+              (catMaybes+                 [("repoName" .=) <$> _priRepoName,+                  ("projectId" .=) <$> _priProjectId])++-- | A set of properties that uniquely identify a given Docker image.+--+-- /See:/ 'fingerprint' smart constructor.+data Fingerprint = Fingerprint'+    { _fV2Name :: !(Maybe Text)+    , _fV2Blob :: !(Maybe [Text])+    , _fV1Name :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Fingerprint' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fV2Name'+--+-- * 'fV2Blob'+--+-- * 'fV1Name'+fingerprint+    :: Fingerprint+fingerprint =+    Fingerprint'+    { _fV2Name = Nothing+    , _fV2Blob = Nothing+    , _fV1Name = Nothing+    }++-- | Output only. The name of the image\'s v2 blobs computed via: [bottom] :=+-- v2_blobbottom := sha256(v2_blob[N] + \" \" + v2_name[N+1]) Only the name+-- of the final blob is kept.+fV2Name :: Lens' Fingerprint (Maybe Text)+fV2Name = lens _fV2Name (\ s a -> s{_fV2Name = a})++-- | Required. The ordered list of v2 blobs that represent a given image.+fV2Blob :: Lens' Fingerprint [Text]+fV2Blob+  = lens _fV2Blob (\ s a -> s{_fV2Blob = a}) . _Default+      . _Coerce++-- | Required. The layer ID of the final layer in the Docker image\'s v1+-- representation.+fV1Name :: Lens' Fingerprint (Maybe Text)+fV1Name = lens _fV1Name (\ s a -> s{_fV1Name = a})++instance FromJSON Fingerprint where+        parseJSON+          = withObject "Fingerprint"+              (\ o ->+                 Fingerprint' <$>+                   (o .:? "v2Name") <*> (o .:? "v2Blob" .!= mempty) <*>+                     (o .:? "v1Name"))++instance ToJSON Fingerprint where+        toJSON Fingerprint'{..}+          = object+              (catMaybes+                 [("v2Name" .=) <$> _fV2Name,+                  ("v2Blob" .=) <$> _fV2Blob,+                  ("v1Name" .=) <$> _fV1Name])++-- | This submessage provides human-readable hints about the purpose of the+-- authority. Because the name of a note acts as its resource reference, it+-- is important to disambiguate the canonical name of the Note (which might+-- be a UUID for security purposes) from \"readable\" names more suitable+-- for debug output. Note that these hints should not be used to look up+-- authorities in security sensitive contexts, such as when looking up+-- attestations to verify.+--+-- /See:/ 'hint' smart constructor.+newtype Hint = Hint'+    { _hHumanReadableName :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Hint' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hHumanReadableName'+hint+    :: Hint+hint =+    Hint'+    { _hHumanReadableName = Nothing+    }++-- | Required. The human readable name of this attestation authority, for+-- example \"qa\".+hHumanReadableName :: Lens' Hint (Maybe Text)+hHumanReadableName+  = lens _hHumanReadableName+      (\ s a -> s{_hHumanReadableName = a})++instance FromJSON Hint where+        parseJSON+          = withObject "Hint"+              (\ o -> Hint' <$> (o .:? "humanReadableName"))++instance ToJSON Hint where+        toJSON Hint'{..}+          = object+              (catMaybes+                 [("humanReadableName" .=) <$> _hHumanReadableName])++-- | This message wraps a location affected by a vulnerability and its+-- associated fix (if one is available).+--+-- /See:/ 'packageIssue' smart constructor.+data PackageIssue = PackageIssue'+    { _piAffectedLocation :: !(Maybe VulnerabilityLocation)+    , _piFixedLocation    :: !(Maybe VulnerabilityLocation)+    , _piSeverityName     :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PackageIssue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'piAffectedLocation'+--+-- * 'piFixedLocation'+--+-- * 'piSeverityName'+packageIssue+    :: PackageIssue+packageIssue =+    PackageIssue'+    { _piAffectedLocation = Nothing+    , _piFixedLocation = Nothing+    , _piSeverityName = Nothing+    }++-- | Required. The location of the vulnerability.+piAffectedLocation :: Lens' PackageIssue (Maybe VulnerabilityLocation)+piAffectedLocation+  = lens _piAffectedLocation+      (\ s a -> s{_piAffectedLocation = a})++-- | The location of the available fix for vulnerability.+piFixedLocation :: Lens' PackageIssue (Maybe VulnerabilityLocation)+piFixedLocation+  = lens _piFixedLocation+      (\ s a -> s{_piFixedLocation = a})++-- | The severity (e.g., distro assigned severity) for this vulnerability.+piSeverityName :: Lens' PackageIssue (Maybe Text)+piSeverityName+  = lens _piSeverityName+      (\ s a -> s{_piSeverityName = a})++instance FromJSON PackageIssue where+        parseJSON+          = withObject "PackageIssue"+              (\ o ->+                 PackageIssue' <$>+                   (o .:? "affectedLocation") <*>+                     (o .:? "fixedLocation")+                     <*> (o .:? "severityName"))++instance ToJSON PackageIssue where+        toJSON PackageIssue'{..}+          = object+              (catMaybes+                 [("affectedLocation" .=) <$> _piAffectedLocation,+                  ("fixedLocation" .=) <$> _piFixedLocation,+                  ("severityName" .=) <$> _piSeverityName])++--+-- /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++-- | Note holding the version of the provider\'s builder and the signature of+-- the provenance message in the build details occurrence.+--+-- /See:/ 'build' smart constructor.+data Build = Build'+    { _bSignature      :: !(Maybe BuildSignature)+    , _bBuilderVersion :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Build' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bSignature'+--+-- * 'bBuilderVersion'+build+    :: Build+build =+    Build'+    { _bSignature = Nothing+    , _bBuilderVersion = Nothing+    }++-- | Signature of the build in occurrences pointing to this build note+-- containing build details.+bSignature :: Lens' Build (Maybe BuildSignature)+bSignature+  = lens _bSignature (\ s a -> s{_bSignature = a})++-- | Required. Immutable. Version of the builder which produced this build.+bBuilderVersion :: Lens' Build (Maybe Text)+bBuilderVersion+  = lens _bBuilderVersion+      (\ s a -> s{_bBuilderVersion = a})++instance FromJSON Build where+        parseJSON+          = withObject "Build"+              (\ o ->+                 Build' <$>+                   (o .:? "signature") <*> (o .:? "builderVersion"))++instance ToJSON Build where+        toJSON Build'{..}+          = object+              (catMaybes+                 [("signature" .=) <$> _bSignature,+                  ("builderVersion" .=) <$> _bBuilderVersion])++-- | Occurrence that represents a single \"attestation\". The authenticity of+-- an attestation can be verified using the attached signature. If the+-- verifier trusts the public key of the signer, then verifying the+-- signature is sufficient to establish trust. In this circumstance, the+-- authority to which this attestation is attached is primarily useful for+-- look-up (how to find this attestation if you already know the authority+-- and artifact to be verified) and intent (which authority was this+-- attestation intended to sign for).+--+-- /See:/ 'attestation' smart constructor.+newtype Attestation = Attestation'+    { _aPgpSignedAttestation :: Maybe PgpSignedAttestation+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Attestation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aPgpSignedAttestation'+attestation+    :: Attestation+attestation =+    Attestation'+    { _aPgpSignedAttestation = Nothing+    }++-- | A PGP signed attestation.+aPgpSignedAttestation :: Lens' Attestation (Maybe PgpSignedAttestation)+aPgpSignedAttestation+  = lens _aPgpSignedAttestation+      (\ s a -> s{_aPgpSignedAttestation = a})++instance FromJSON Attestation where+        parseJSON+          = withObject "Attestation"+              (\ o ->+                 Attestation' <$> (o .:? "pgpSignedAttestation"))++instance ToJSON Attestation where+        toJSON Attestation'{..}+          = object+              (catMaybes+                 [("pgpSignedAttestation" .=) <$>+                    _aPgpSignedAttestation])++-- | Artifact describes a build product.+--+-- /See:/ 'artifact' smart constructor.+data Artifact = Artifact'+    { _aChecksum :: !(Maybe Text)+    , _aNames    :: !(Maybe [Text])+    , _aId       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Artifact' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aChecksum'+--+-- * 'aNames'+--+-- * 'aId'+artifact+    :: Artifact+artifact =+    Artifact'+    { _aChecksum = Nothing+    , _aNames = Nothing+    , _aId = Nothing+    }++-- | Hash or checksum value of a binary, or Docker Registry 2.0 digest of a+-- container.+aChecksum :: Lens' Artifact (Maybe Text)+aChecksum+  = lens _aChecksum (\ s a -> s{_aChecksum = a})++-- | Related artifact names. This may be the path to a binary or jar file, or+-- in the case of a container build, the name used to push the container+-- image to Google Container Registry, as presented to \`docker push\`.+-- Note that a single Artifact ID can have multiple names, for example if+-- two tags are applied to one image.+aNames :: Lens' Artifact [Text]+aNames+  = lens _aNames (\ s a -> s{_aNames = a}) . _Default .+      _Coerce++-- | Artifact ID, if any; for container images, this will be a URL by digest+-- like \`gcr.io\/projectID\/imagename\'sha256:123456\`.+aId :: Lens' Artifact (Maybe Text)+aId = lens _aId (\ s a -> s{_aId = a})++instance FromJSON Artifact where+        parseJSON+          = withObject "Artifact"+              (\ o ->+                 Artifact' <$>+                   (o .:? "checksum") <*> (o .:? "names" .!= mempty) <*>+                     (o .:? "id"))++instance ToJSON Artifact where+        toJSON Artifact'{..}+          = object+              (catMaybes+                 [("checksum" .=) <$> _aChecksum,+                  ("names" .=) <$> _aNames, ("id" .=) <$> _aId])++-- | Request message for \`SetIamPolicy\` method.+--+-- /See:/ 'setIAMPolicyRequest' smart constructor.+data SetIAMPolicyRequest = SetIAMPolicyRequest'+    { _siprUpdateMask :: !(Maybe GFieldMask)+    , _siprPolicy     :: !(Maybe Policy)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SetIAMPolicyRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'siprUpdateMask'+--+-- * 'siprPolicy'+setIAMPolicyRequest+    :: SetIAMPolicyRequest+setIAMPolicyRequest =+    SetIAMPolicyRequest'+    { _siprUpdateMask = Nothing+    , _siprPolicy = Nothing+    }++-- | OPTIONAL: A FieldMask specifying which fields of the policy to modify.+-- Only the fields in the mask will be modified. If no mask is provided,+-- the following default mask is used: paths: \"bindings, etag\" This field+-- is only used by Cloud IAM.+siprUpdateMask :: Lens' SetIAMPolicyRequest (Maybe GFieldMask)+siprUpdateMask+  = lens _siprUpdateMask+      (\ s a -> s{_siprUpdateMask = a})++-- | REQUIRED: The complete policy to be applied to the \`resource\`. The+-- size of the policy is limited to a few 10s of KB. An empty policy is a+-- valid policy but certain Cloud Platform services (such as Projects)+-- might reject them.+siprPolicy :: Lens' SetIAMPolicyRequest (Maybe Policy)+siprPolicy+  = lens _siprPolicy (\ s a -> s{_siprPolicy = a})++instance FromJSON SetIAMPolicyRequest where+        parseJSON+          = withObject "SetIAMPolicyRequest"+              (\ o ->+                 SetIAMPolicyRequest' <$>+                   (o .:? "updateMask") <*> (o .:? "policy"))++instance ToJSON SetIAMPolicyRequest where+        toJSON SetIAMPolicyRequest'{..}+          = object+              (catMaybes+                 [("updateMask" .=) <$> _siprUpdateMask,+                  ("policy" .=) <$> _siprPolicy])++-- | Special options applied to this build. This is a catch-all field where+-- build providers can enter any desired additional details.+--+-- /See:/ 'buildProvenanceBuildOptions' smart constructor.+newtype BuildProvenanceBuildOptions = BuildProvenanceBuildOptions'+    { _bpboAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BuildProvenanceBuildOptions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bpboAddtional'+buildProvenanceBuildOptions+    :: HashMap Text Text -- ^ 'bpboAddtional'+    -> BuildProvenanceBuildOptions+buildProvenanceBuildOptions pBpboAddtional_ =+    BuildProvenanceBuildOptions'+    { _bpboAddtional = _Coerce # pBpboAddtional_+    }++bpboAddtional :: Lens' BuildProvenanceBuildOptions (HashMap Text Text)+bpboAddtional+  = lens _bpboAddtional+      (\ s a -> s{_bpboAddtional = a})+      . _Coerce++instance FromJSON BuildProvenanceBuildOptions where+        parseJSON+          = withObject "BuildProvenanceBuildOptions"+              (\ o ->+                 BuildProvenanceBuildOptions' <$> (parseJSONObject o))++instance ToJSON BuildProvenanceBuildOptions where+        toJSON = toJSON . _bpboAddtional++-- | An artifact that can be deployed in some runtime.+--+-- /See:/ 'deployable' smart constructor.+newtype Deployable = Deployable'+    { _dResourceURI :: Maybe [Text]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Deployable' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dResourceURI'+deployable+    :: Deployable+deployable =+    Deployable'+    { _dResourceURI = Nothing+    }++-- | Required. Resource URI for the artifact being deployed.+dResourceURI :: Lens' Deployable [Text]+dResourceURI+  = lens _dResourceURI (\ s a -> s{_dResourceURI = a})+      . _Default+      . _Coerce++instance FromJSON Deployable where+        parseJSON+          = withObject "Deployable"+              (\ o ->+                 Deployable' <$> (o .:? "resourceUri" .!= mempty))++instance ToJSON Deployable where+        toJSON Deployable'{..}+          = object+              (catMaybes [("resourceUri" .=) <$> _dResourceURI])++-- | Details of a discovery occurrence.+--+-- /See:/ 'grafeasV1beta1DiscoveryDetails' smart constructor.+newtype GrafeasV1beta1DiscoveryDetails = GrafeasV1beta1DiscoveryDetails'+    { _gvddDiscovered :: Maybe Discovered+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GrafeasV1beta1DiscoveryDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gvddDiscovered'+grafeasV1beta1DiscoveryDetails+    :: GrafeasV1beta1DiscoveryDetails+grafeasV1beta1DiscoveryDetails =+    GrafeasV1beta1DiscoveryDetails'+    { _gvddDiscovered = Nothing+    }++-- | Required. Analysis status for the discovered resource.+gvddDiscovered :: Lens' GrafeasV1beta1DiscoveryDetails (Maybe Discovered)+gvddDiscovered+  = lens _gvddDiscovered+      (\ s a -> s{_gvddDiscovered = a})++instance FromJSON GrafeasV1beta1DiscoveryDetails+         where+        parseJSON+          = withObject "GrafeasV1beta1DiscoveryDetails"+              (\ o ->+                 GrafeasV1beta1DiscoveryDetails' <$>+                   (o .:? "discovered"))++instance ToJSON GrafeasV1beta1DiscoveryDetails where+        toJSON GrafeasV1beta1DiscoveryDetails'{..}+          = object+              (catMaybes [("discovered" .=) <$> _gvddDiscovered])++-- | The location of the vulnerability.+--+-- /See:/ 'vulnerabilityLocation' smart constructor.+data VulnerabilityLocation = VulnerabilityLocation'+    { _vlVersion :: !(Maybe Version)+    , _vlPackage :: !(Maybe Text)+    , _vlCpeURI  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VulnerabilityLocation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vlVersion'+--+-- * 'vlPackage'+--+-- * 'vlCpeURI'+vulnerabilityLocation+    :: VulnerabilityLocation+vulnerabilityLocation =+    VulnerabilityLocation'+    { _vlVersion = Nothing+    , _vlPackage = Nothing+    , _vlCpeURI = Nothing+    }++-- | Required. The version of the package being described.+vlVersion :: Lens' VulnerabilityLocation (Maybe Version)+vlVersion+  = lens _vlVersion (\ s a -> s{_vlVersion = a})++-- | Required. The package being described.+vlPackage :: Lens' VulnerabilityLocation (Maybe Text)+vlPackage+  = lens _vlPackage (\ s a -> s{_vlPackage = a})++-- | Required. The CPE URI in [cpe+-- format](https:\/\/cpe.mitre.org\/specification\/) format. Examples+-- include distro or storage location for vulnerable jar.+vlCpeURI :: Lens' VulnerabilityLocation (Maybe Text)+vlCpeURI = lens _vlCpeURI (\ s a -> s{_vlCpeURI = a})++instance FromJSON VulnerabilityLocation where+        parseJSON+          = withObject "VulnerabilityLocation"+              (\ o ->+                 VulnerabilityLocation' <$>+                   (o .:? "version") <*> (o .:? "package") <*>+                     (o .:? "cpeUri"))++instance ToJSON VulnerabilityLocation where+        toJSON VulnerabilityLocation'{..}+          = object+              (catMaybes+                 [("version" .=) <$> _vlVersion,+                  ("package" .=) <$> _vlPackage,+                  ("cpeUri" .=) <$> _vlCpeURI])++-- | Per resource and severity counts of fixable and total vulnerabilites.+--+-- /See:/ 'fixableTotalByDigest' smart constructor.+data FixableTotalByDigest = FixableTotalByDigest'+    { _ftbdSeverity     :: !(Maybe FixableTotalByDigestSeverity)+    , _ftbdFixableCount :: !(Maybe (Textual Int64))+    , _ftbdResource     :: !(Maybe Resource)+    , _ftbdTotalCount   :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FixableTotalByDigest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ftbdSeverity'+--+-- * 'ftbdFixableCount'+--+-- * 'ftbdResource'+--+-- * 'ftbdTotalCount'+fixableTotalByDigest+    :: FixableTotalByDigest+fixableTotalByDigest =+    FixableTotalByDigest'+    { _ftbdSeverity = Nothing+    , _ftbdFixableCount = Nothing+    , _ftbdResource = Nothing+    , _ftbdTotalCount = Nothing+    }++-- | The severity for this count. SEVERITY_UNSPECIFIED indicates total across+-- all severities.+ftbdSeverity :: Lens' FixableTotalByDigest (Maybe FixableTotalByDigestSeverity)+ftbdSeverity+  = lens _ftbdSeverity (\ s a -> s{_ftbdSeverity = a})++-- | The number of fixable vulnerabilities associated with this resource.+ftbdFixableCount :: Lens' FixableTotalByDigest (Maybe Int64)+ftbdFixableCount+  = lens _ftbdFixableCount+      (\ s a -> s{_ftbdFixableCount = a})+      . mapping _Coerce++-- | The affected resource.+ftbdResource :: Lens' FixableTotalByDigest (Maybe Resource)+ftbdResource+  = lens _ftbdResource (\ s a -> s{_ftbdResource = a})++-- | The total number of vulnerabilities associated with this resource.+ftbdTotalCount :: Lens' FixableTotalByDigest (Maybe Int64)+ftbdTotalCount+  = lens _ftbdTotalCount+      (\ s a -> s{_ftbdTotalCount = a})+      . mapping _Coerce++instance FromJSON FixableTotalByDigest where+        parseJSON+          = withObject "FixableTotalByDigest"+              (\ o ->+                 FixableTotalByDigest' <$>+                   (o .:? "severity") <*> (o .:? "fixableCount") <*>+                     (o .:? "resource")+                     <*> (o .:? "totalCount"))++instance ToJSON FixableTotalByDigest where+        toJSON FixableTotalByDigest'{..}+          = object+              (catMaybes+                 [("severity" .=) <$> _ftbdSeverity,+                  ("fixableCount" .=) <$> _ftbdFixableCount,+                  ("resource" .=) <$> _ftbdResource,+                  ("totalCount" .=) <$> _ftbdTotalCount])++-- | Metadata for any related URL information.+--+-- /See:/ 'relatedURL' smart constructor.+data RelatedURL = RelatedURL'+    { _ruURL   :: !(Maybe Text)+    , _ruLabel :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RelatedURL' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ruURL'+--+-- * 'ruLabel'+relatedURL+    :: RelatedURL+relatedURL =+    RelatedURL'+    { _ruURL = Nothing+    , _ruLabel = Nothing+    }++-- | Specific URL associated with the resource.+ruURL :: Lens' RelatedURL (Maybe Text)+ruURL = lens _ruURL (\ s a -> s{_ruURL = a})++-- | Label to describe usage of the URL.+ruLabel :: Lens' RelatedURL (Maybe Text)+ruLabel = lens _ruLabel (\ s a -> s{_ruLabel = a})++instance FromJSON RelatedURL where+        parseJSON+          = withObject "RelatedURL"+              (\ o ->+                 RelatedURL' <$> (o .:? "url") <*> (o .:? "label"))++instance ToJSON RelatedURL where+        toJSON RelatedURL'{..}+          = object+              (catMaybes+                 [("url" .=) <$> _ruURL, ("label" .=) <$> _ruLabel])++-- | Details of an image occurrence.+--+-- /See:/ 'grafeasV1beta1ImageDetails' smart constructor.+newtype GrafeasV1beta1ImageDetails = GrafeasV1beta1ImageDetails'+    { _gvidDerivedImage :: Maybe Derived+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GrafeasV1beta1ImageDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gvidDerivedImage'+grafeasV1beta1ImageDetails+    :: GrafeasV1beta1ImageDetails+grafeasV1beta1ImageDetails =+    GrafeasV1beta1ImageDetails'+    { _gvidDerivedImage = Nothing+    }++-- | Required. Immutable. The child image derived from the base image.+gvidDerivedImage :: Lens' GrafeasV1beta1ImageDetails (Maybe Derived)+gvidDerivedImage+  = lens _gvidDerivedImage+      (\ s a -> s{_gvidDerivedImage = a})++instance FromJSON GrafeasV1beta1ImageDetails where+        parseJSON+          = withObject "GrafeasV1beta1ImageDetails"+              (\ o ->+                 GrafeasV1beta1ImageDetails' <$>+                   (o .:? "derivedImage"))++instance ToJSON GrafeasV1beta1ImageDetails where+        toJSON GrafeasV1beta1ImageDetails'{..}+          = object+              (catMaybes+                 [("derivedImage" .=) <$> _gvidDerivedImage])++-- | Response for creating occurrences in batch.+--+-- /See:/ 'batchCreateOccurrencesResponse' smart constructor.+newtype BatchCreateOccurrencesResponse = BatchCreateOccurrencesResponse'+    { _bOccurrences :: Maybe [Occurrence]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchCreateOccurrencesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bOccurrences'+batchCreateOccurrencesResponse+    :: BatchCreateOccurrencesResponse+batchCreateOccurrencesResponse =+    BatchCreateOccurrencesResponse'+    { _bOccurrences = Nothing+    }++-- | The occurrences that were created.+bOccurrences :: Lens' BatchCreateOccurrencesResponse [Occurrence]+bOccurrences+  = lens _bOccurrences (\ s a -> s{_bOccurrences = a})+      . _Default+      . _Coerce++instance FromJSON BatchCreateOccurrencesResponse+         where+        parseJSON+          = withObject "BatchCreateOccurrencesResponse"+              (\ o ->+                 BatchCreateOccurrencesResponse' <$>+                   (o .:? "occurrences" .!= mempty))++instance ToJSON BatchCreateOccurrencesResponse where+        toJSON BatchCreateOccurrencesResponse'{..}+          = object+              (catMaybes [("occurrences" .=) <$> _bOccurrences])++-- | Labels with user defined metadata.+--+-- /See:/ 'sourceContextLabels' smart constructor.+newtype SourceContextLabels = SourceContextLabels'+    { _sclAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SourceContextLabels' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sclAddtional'+sourceContextLabels+    :: HashMap Text Text -- ^ 'sclAddtional'+    -> SourceContextLabels+sourceContextLabels pSclAddtional_ =+    SourceContextLabels'+    { _sclAddtional = _Coerce # pSclAddtional_+    }++sclAddtional :: Lens' SourceContextLabels (HashMap Text Text)+sclAddtional+  = lens _sclAddtional (\ s a -> s{_sclAddtional = a})+      . _Coerce++instance FromJSON SourceContextLabels where+        parseJSON+          = withObject "SourceContextLabels"+              (\ o -> SourceContextLabels' <$> (parseJSONObject o))++instance ToJSON SourceContextLabels where+        toJSON = toJSON . _sclAddtional++-- | Response for listing scan configurations.+--+-- /See:/ 'listScanConfigsResponse' smart constructor.+data ListScanConfigsResponse = ListScanConfigsResponse'+    { _lscrNextPageToken :: !(Maybe Text)+    , _lscrScanConfigs   :: !(Maybe [ScanConfig])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListScanConfigsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lscrNextPageToken'+--+-- * 'lscrScanConfigs'+listScanConfigsResponse+    :: ListScanConfigsResponse+listScanConfigsResponse =+    ListScanConfigsResponse'+    { _lscrNextPageToken = Nothing+    , _lscrScanConfigs = Nothing+    }++-- | The next pagination token in the list response. It should be used as+-- \`page_token\` for the following request. An empty value means no more+-- results.+lscrNextPageToken :: Lens' ListScanConfigsResponse (Maybe Text)+lscrNextPageToken+  = lens _lscrNextPageToken+      (\ s a -> s{_lscrNextPageToken = a})++-- | The scan configurations requested.+lscrScanConfigs :: Lens' ListScanConfigsResponse [ScanConfig]+lscrScanConfigs+  = lens _lscrScanConfigs+      (\ s a -> s{_lscrScanConfigs = a})+      . _Default+      . _Coerce++instance FromJSON ListScanConfigsResponse where+        parseJSON+          = withObject "ListScanConfigsResponse"+              (\ o ->+                 ListScanConfigsResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "scanConfigs" .!= mempty))++instance ToJSON ListScanConfigsResponse where+        toJSON ListScanConfigsResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _lscrNextPageToken,+                  ("scanConfigs" .=) <$> _lscrScanConfigs])++-- | Version contains structured information about the version of a package.+--+-- /See:/ 'version' smart constructor.+data Version = Version'+    { _vKind     :: !(Maybe VersionKind)+    , _vName     :: !(Maybe Text)+    , _vRevision :: !(Maybe Text)+    , _vEpoch    :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Version' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vKind'+--+-- * 'vName'+--+-- * 'vRevision'+--+-- * 'vEpoch'+version+    :: Version+version =+    Version'+    { _vKind = Nothing+    , _vName = Nothing+    , _vRevision = Nothing+    , _vEpoch = Nothing+    }++-- | Required. Distinguishes between sentinel MIN\/MAX versions and normal+-- versions.+vKind :: Lens' Version (Maybe VersionKind)+vKind = lens _vKind (\ s a -> s{_vKind = a})++-- | Required only when version kind is NORMAL. The main part of the version+-- name.+vName :: Lens' Version (Maybe Text)+vName = lens _vName (\ s a -> s{_vName = a})++-- | The iteration of the package build from the above version.+vRevision :: Lens' Version (Maybe Text)+vRevision+  = lens _vRevision (\ s a -> s{_vRevision = a})++-- | Used to correct mistakes in the version numbering scheme.+vEpoch :: Lens' Version (Maybe Int32)+vEpoch+  = lens _vEpoch (\ s a -> s{_vEpoch = a}) .+      mapping _Coerce++instance FromJSON Version where+        parseJSON+          = withObject "Version"+              (\ o ->+                 Version' <$>+                   (o .:? "kind") <*> (o .:? "name") <*>+                     (o .:? "revision")+                     <*> (o .:? "epoch"))++instance ToJSON Version where+        toJSON Version'{..}+          = object+              (catMaybes+                 [("kind" .=) <$> _vKind, ("name" .=) <$> _vName,+                  ("revision" .=) <$> _vRevision,+                  ("epoch" .=) <$> _vEpoch])++-- | Container message for hashes of byte content of files, used in source+-- messages to verify integrity of source input to the build.+--+-- /See:/ 'fileHashes' smart constructor.+newtype FileHashes = FileHashes'+    { _fhFileHash :: Maybe [Hash]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FileHashes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fhFileHash'+fileHashes+    :: FileHashes+fileHashes =+    FileHashes'+    { _fhFileHash = Nothing+    }++-- | Required. Collection of file hashes.+fhFileHash :: Lens' FileHashes [Hash]+fhFileHash+  = lens _fhFileHash (\ s a -> s{_fhFileHash = a}) .+      _Default+      . _Coerce++instance FromJSON FileHashes where+        parseJSON+          = withObject "FileHashes"+              (\ o ->+                 FileHashes' <$> (o .:? "fileHash" .!= mempty))++instance ToJSON FileHashes where+        toJSON FileHashes'{..}+          = object+              (catMaybes [("fileHash" .=) <$> _fhFileHash])++-- | An entity that can have metadata. For example, a Docker image.+--+-- /See:/ 'resource' smart constructor.+data Resource = Resource'+    { _rContentHash :: !(Maybe Hash)+    , _rURI         :: !(Maybe Text)+    , _rName        :: !(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:+--+-- * 'rContentHash'+--+-- * 'rURI'+--+-- * 'rName'+resource+    :: Resource+resource =+    Resource'+    { _rContentHash = Nothing+    , _rURI = Nothing+    , _rName = Nothing+    }++-- | The hash of the resource content. For example, the Docker digest.+rContentHash :: Lens' Resource (Maybe Hash)+rContentHash+  = lens _rContentHash (\ s a -> s{_rContentHash = a})++-- | Required. The unique URI of the resource. For example,+-- \`https:\/\/gcr.io\/project\/image\'sha256:foo\` for a Docker image.+rURI :: Lens' Resource (Maybe Text)+rURI = lens _rURI (\ s a -> s{_rURI = a})++-- | The name of the resource. For example, the name of a Docker image -+-- \"Debian\".+rName :: Lens' Resource (Maybe Text)+rName = lens _rName (\ s a -> s{_rName = a})++instance FromJSON Resource where+        parseJSON+          = withObject "Resource"+              (\ o ->+                 Resource' <$>+                   (o .:? "contentHash") <*> (o .:? "uri") <*>+                     (o .:? "name"))++instance ToJSON Resource where+        toJSON Resource'{..}+          = object+              (catMaybes+                 [("contentHash" .=) <$> _rContentHash,+                  ("uri" .=) <$> _rURI, ("name" .=) <$> _rName])++-- | Details of a deployment occurrence.+--+-- /See:/ 'grafeasV1beta1DeploymentDetails' smart constructor.+newtype GrafeasV1beta1DeploymentDetails = GrafeasV1beta1DeploymentDetails'+    { _gvddDeployment :: Maybe Deployment+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GrafeasV1beta1DeploymentDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gvddDeployment'+grafeasV1beta1DeploymentDetails+    :: GrafeasV1beta1DeploymentDetails+grafeasV1beta1DeploymentDetails =+    GrafeasV1beta1DeploymentDetails'+    { _gvddDeployment = Nothing+    }++-- | Required. Deployment history for the resource.+gvddDeployment :: Lens' GrafeasV1beta1DeploymentDetails (Maybe Deployment)+gvddDeployment+  = lens _gvddDeployment+      (\ s a -> s{_gvddDeployment = a})++instance FromJSON GrafeasV1beta1DeploymentDetails+         where+        parseJSON+          = withObject "GrafeasV1beta1DeploymentDetails"+              (\ o ->+                 GrafeasV1beta1DeploymentDetails' <$>+                   (o .:? "deployment"))++instance ToJSON GrafeasV1beta1DeploymentDetails where+        toJSON GrafeasV1beta1DeploymentDetails'{..}+          = object+              (catMaybes [("deployment" .=) <$> _gvddDeployment])++-- | Metadata for all operations used and required for all operations that+-- created by Container Analysis Providers+--+-- /See:/ 'googleDevtoolsContaineranalysisV1alpha1OperationMetadata' smart constructor.+data GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata = GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata'+    { _gdcvomEndTime    :: !(Maybe DateTime')+    , _gdcvomCreateTime :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdcvomEndTime'+--+-- * 'gdcvomCreateTime'+googleDevtoolsContaineranalysisV1alpha1OperationMetadata+    :: GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata+googleDevtoolsContaineranalysisV1alpha1OperationMetadata =+    GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata'+    { _gdcvomEndTime = Nothing+    , _gdcvomCreateTime = Nothing+    }++-- | Output only. The time that this operation was marked completed or+-- failed.+gdcvomEndTime :: Lens' GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata (Maybe UTCTime)+gdcvomEndTime+  = lens _gdcvomEndTime+      (\ s a -> s{_gdcvomEndTime = a})+      . mapping _DateTime++-- | Output only. The time this operation was created.+gdcvomCreateTime :: Lens' GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata (Maybe UTCTime)+gdcvomCreateTime+  = lens _gdcvomCreateTime+      (\ s a -> s{_gdcvomCreateTime = a})+      . mapping _DateTime++instance FromJSON+         GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata+         where+        parseJSON+          = withObject+              "GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata"+              (\ o ->+                 GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata'+                   <$> (o .:? "endTime") <*> (o .:? "createTime"))++instance ToJSON+         GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata+         where+        toJSON+          GoogleDevtoolsContaineranalysisV1alpha1OperationMetadata'{..}+          = object+              (catMaybes+                 [("endTime" .=) <$> _gdcvomEndTime,+                  ("createTime" .=) <$> _gdcvomCreateTime])++-- | Details of an attestation occurrence.+--+-- /See:/ 'details' smart constructor.+newtype Details = Details'+    { _dAttestation :: Maybe Attestation+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Details' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dAttestation'+details+    :: Details+details =+    Details'+    { _dAttestation = Nothing+    }++-- | Required. Attestation for the resource.+dAttestation :: Lens' Details (Maybe Attestation)+dAttestation+  = lens _dAttestation (\ s a -> s{_dAttestation = a})++instance FromJSON Details where+        parseJSON+          = withObject "Details"+              (\ o -> Details' <$> (o .:? "attestation"))++instance ToJSON Details where+        toJSON Details'{..}+          = object+              (catMaybes [("attestation" .=) <$> _dAttestation])++-- | This represents a particular package that is distributed over various+-- channels. E.g., glibc (aka libc6) is distributed by many, at various+-- versions.+--+-- /See:/ 'package' smart constructor.+data Package = Package'+    { _pDistribution :: !(Maybe [Distribution])+    , _pName         :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Package' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pDistribution'+--+-- * 'pName'+package+    :: Package+package =+    Package'+    { _pDistribution = Nothing+    , _pName = Nothing+    }++-- | The various channels by which a package is distributed.+pDistribution :: Lens' Package [Distribution]+pDistribution+  = lens _pDistribution+      (\ s a -> s{_pDistribution = a})+      . _Default+      . _Coerce++-- | Required. Immutable. The name of the package.+pName :: Lens' Package (Maybe Text)+pName = lens _pName (\ s a -> s{_pName = a})++instance FromJSON Package where+        parseJSON+          = withObject "Package"+              (\ o ->+                 Package' <$>+                   (o .:? "distribution" .!= mempty) <*> (o .:? "name"))++instance ToJSON Package where+        toJSON Package'{..}+          = object+              (catMaybes+                 [("distribution" .=) <$> _pDistribution,+                  ("name" .=) <$> _pName])++-- | Response for listing notes.+--+-- /See:/ 'listNotesResponse' smart constructor.+data ListNotesResponse = ListNotesResponse'+    { _lnrNextPageToken :: !(Maybe Text)+    , _lnrNotes         :: !(Maybe [Note])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListNotesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lnrNextPageToken'+--+-- * 'lnrNotes'+listNotesResponse+    :: ListNotesResponse+listNotesResponse =+    ListNotesResponse'+    { _lnrNextPageToken = Nothing+    , _lnrNotes = Nothing+    }++-- | The next pagination token in the list response. It should be used as+-- \`page_token\` for the following request. An empty value means no more+-- results.+lnrNextPageToken :: Lens' ListNotesResponse (Maybe Text)+lnrNextPageToken+  = lens _lnrNextPageToken+      (\ s a -> s{_lnrNextPageToken = a})++-- | The notes requested.+lnrNotes :: Lens' ListNotesResponse [Note]+lnrNotes+  = lens _lnrNotes (\ s a -> s{_lnrNotes = a}) .+      _Default+      . _Coerce++instance FromJSON ListNotesResponse where+        parseJSON+          = withObject "ListNotesResponse"+              (\ o ->+                 ListNotesResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "notes" .!= mempty))++instance ToJSON ListNotesResponse where+        toJSON ListNotesResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _lnrNextPageToken,+                  ("notes" .=) <$> _lnrNotes])++-- | Message encapsulating the signature of the verified build.+--+-- /See:/ 'buildSignature' smart constructor.+data BuildSignature = BuildSignature'+    { _bsSignature :: !(Maybe Bytes)+    , _bsKeyType   :: !(Maybe BuildSignatureKeyType)+    , _bsKeyId     :: !(Maybe Text)+    , _bsPublicKey :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BuildSignature' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bsSignature'+--+-- * 'bsKeyType'+--+-- * 'bsKeyId'+--+-- * 'bsPublicKey'+buildSignature+    :: BuildSignature+buildSignature =+    BuildSignature'+    { _bsSignature = Nothing+    , _bsKeyType = Nothing+    , _bsKeyId = Nothing+    , _bsPublicKey = Nothing+    }++-- | Required. Signature of the related \`BuildProvenance\`. In JSON, this is+-- base-64 encoded.+bsSignature :: Lens' BuildSignature (Maybe ByteString)+bsSignature+  = lens _bsSignature (\ s a -> s{_bsSignature = a}) .+      mapping _Bytes++-- | The type of the key, either stored in \`public_key\` or referenced in+-- \`key_id\`.+bsKeyType :: Lens' BuildSignature (Maybe BuildSignatureKeyType)+bsKeyType+  = lens _bsKeyType (\ s a -> s{_bsKeyType = a})++-- | An ID for the key used to sign. This could be either an ID for the key+-- stored in \`public_key\` (such as the ID or fingerprint for a PGP key,+-- or the CN for a cert), or a reference to an external key (such as a+-- reference to a key in Cloud Key Management Service).+bsKeyId :: Lens' BuildSignature (Maybe Text)+bsKeyId = lens _bsKeyId (\ s a -> s{_bsKeyId = a})++-- | Public key of the builder which can be used to verify that the related+-- findings are valid and unchanged. If \`key_type\` is empty, this+-- defaults to PEM encoded public keys. This field may be empty if+-- \`key_id\` references an external key. For Cloud Build based signatures,+-- this is a PEM encoded public key. To verify the Cloud Build signature,+-- place the contents of this field into a file (public.pem). The signature+-- field is base64-decoded into its binary representation in signature.bin,+-- and the provenance bytes from \`BuildDetails\` are base64-decoded into a+-- binary representation in signed.bin. OpenSSL can then verify the+-- signature: \`openssl sha256 -verify public.pem -signature signature.bin+-- signed.bin\`+bsPublicKey :: Lens' BuildSignature (Maybe Text)+bsPublicKey+  = lens _bsPublicKey (\ s a -> s{_bsPublicKey = a})++instance FromJSON BuildSignature where+        parseJSON+          = withObject "BuildSignature"+              (\ o ->+                 BuildSignature' <$>+                   (o .:? "signature") <*> (o .:? "keyType") <*>+                     (o .:? "keyId")+                     <*> (o .:? "publicKey"))++instance ToJSON BuildSignature where+        toJSON BuildSignature'{..}+          = object+              (catMaybes+                 [("signature" .=) <$> _bsSignature,+                  ("keyType" .=) <$> _bsKeyType,+                  ("keyId" .=) <$> _bsKeyId,+                  ("publicKey" .=) <$> _bsPublicKey])++-- | Request message for \`TestIamPermissions\` method.+--+-- /See:/ 'testIAMPermissionsRequest' smart constructor.+newtype TestIAMPermissionsRequest = TestIAMPermissionsRequest'+    { _tiprPermissions :: Maybe [Text]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TestIAMPermissionsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tiprPermissions'+testIAMPermissionsRequest+    :: TestIAMPermissionsRequest+testIAMPermissionsRequest =+    TestIAMPermissionsRequest'+    { _tiprPermissions = Nothing+    }++-- | The set of permissions to check for the \`resource\`. Permissions with+-- wildcards (such as \'*\' or \'storage.*\') are not allowed. For more+-- information see [IAM+-- Overview](https:\/\/cloud.google.com\/iam\/docs\/overview#permissions).+tiprPermissions :: Lens' TestIAMPermissionsRequest [Text]+tiprPermissions+  = lens _tiprPermissions+      (\ s a -> s{_tiprPermissions = a})+      . _Default+      . _Coerce++instance FromJSON TestIAMPermissionsRequest where+        parseJSON+          = withObject "TestIAMPermissionsRequest"+              (\ o ->+                 TestIAMPermissionsRequest' <$>+                   (o .:? "permissions" .!= mempty))++instance ToJSON TestIAMPermissionsRequest where+        toJSON TestIAMPermissionsRequest'{..}+          = object+              (catMaybes [("permissions" .=) <$> _tiprPermissions])++-- | Provides information about the analysis status of a discovered resource.+--+-- /See:/ 'discovered' smart constructor.+data Discovered = Discovered'+    { _dLastAnalysisTime    :: !(Maybe DateTime')+    , _dAnalysisStatusError :: !(Maybe Status)+    , _dAnalysisStatus      :: !(Maybe DiscoveredAnalysisStatus)+    , _dContinuousAnalysis  :: !(Maybe DiscoveredContinuousAnalysis)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Discovered' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dLastAnalysisTime'+--+-- * 'dAnalysisStatusError'+--+-- * 'dAnalysisStatus'+--+-- * 'dContinuousAnalysis'+discovered+    :: Discovered+discovered =+    Discovered'+    { _dLastAnalysisTime = Nothing+    , _dAnalysisStatusError = Nothing+    , _dAnalysisStatus = Nothing+    , _dContinuousAnalysis = Nothing+    }++-- | The last time continuous analysis was done for this resource.+-- Deprecated, do not use.+dLastAnalysisTime :: Lens' Discovered (Maybe UTCTime)+dLastAnalysisTime+  = lens _dLastAnalysisTime+      (\ s a -> s{_dLastAnalysisTime = a})+      . mapping _DateTime++-- | When an error is encountered this will contain a LocalizedMessage under+-- details to show to the user. The LocalizedMessage is output only and+-- populated by the API.+dAnalysisStatusError :: Lens' Discovered (Maybe Status)+dAnalysisStatusError+  = lens _dAnalysisStatusError+      (\ s a -> s{_dAnalysisStatusError = a})++-- | The status of discovery for the resource.+dAnalysisStatus :: Lens' Discovered (Maybe DiscoveredAnalysisStatus)+dAnalysisStatus+  = lens _dAnalysisStatus+      (\ s a -> s{_dAnalysisStatus = a})++-- | Whether the resource is continuously analyzed.+dContinuousAnalysis :: Lens' Discovered (Maybe DiscoveredContinuousAnalysis)+dContinuousAnalysis+  = lens _dContinuousAnalysis+      (\ s a -> s{_dContinuousAnalysis = a})++instance FromJSON Discovered where+        parseJSON+          = withObject "Discovered"+              (\ o ->+                 Discovered' <$>+                   (o .:? "lastAnalysisTime") <*>+                     (o .:? "analysisStatusError")+                     <*> (o .:? "analysisStatus")+                     <*> (o .:? "continuousAnalysis"))++instance ToJSON Discovered where+        toJSON Discovered'{..}+          = object+              (catMaybes+                 [("lastAnalysisTime" .=) <$> _dLastAnalysisTime,+                  ("analysisStatusError" .=) <$> _dAnalysisStatusError,+                  ("analysisStatus" .=) <$> _dAnalysisStatus,+                  ("continuousAnalysis" .=) <$> _dContinuousAnalysis])++-- | Derived describes the derived image portion (Occurrence) of the+-- DockerImage relationship. This image would be produced from a Dockerfile+-- with FROM .+--+-- /See:/ 'derived' smart constructor.+data Derived = Derived'+    { _dBaseResourceURL :: !(Maybe Text)+    , _dFingerprint     :: !(Maybe Fingerprint)+    , _dDistance        :: !(Maybe (Textual Int32))+    , _dLayerInfo       :: !(Maybe [Layer])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Derived' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dBaseResourceURL'+--+-- * 'dFingerprint'+--+-- * 'dDistance'+--+-- * 'dLayerInfo'+derived+    :: Derived+derived =+    Derived'+    { _dBaseResourceURL = Nothing+    , _dFingerprint = Nothing+    , _dDistance = Nothing+    , _dLayerInfo = Nothing+    }++-- | Output only. This contains the base image URL for the derived image+-- occurrence.+dBaseResourceURL :: Lens' Derived (Maybe Text)+dBaseResourceURL+  = lens _dBaseResourceURL+      (\ s a -> s{_dBaseResourceURL = a})++-- | Required. The fingerprint of the derived image.+dFingerprint :: Lens' Derived (Maybe Fingerprint)+dFingerprint+  = lens _dFingerprint (\ s a -> s{_dFingerprint = a})++-- | Output only. The number of layers by which this image differs from the+-- associated image basis.+dDistance :: Lens' Derived (Maybe Int32)+dDistance+  = lens _dDistance (\ s a -> s{_dDistance = a}) .+      mapping _Coerce++-- | This contains layer-specific metadata, if populated it has length+-- \"distance\" and is ordered with [distance] being the layer immediately+-- following the base image and [1] being the final layer.+dLayerInfo :: Lens' Derived [Layer]+dLayerInfo+  = lens _dLayerInfo (\ s a -> s{_dLayerInfo = a}) .+      _Default+      . _Coerce++instance FromJSON Derived where+        parseJSON+          = withObject "Derived"+              (\ o ->+                 Derived' <$>+                   (o .:? "baseResourceUrl") <*> (o .:? "fingerprint")+                     <*> (o .:? "distance")+                     <*> (o .:? "layerInfo" .!= mempty))++instance ToJSON Derived where+        toJSON Derived'{..}+          = object+              (catMaybes+                 [("baseResourceUrl" .=) <$> _dBaseResourceURL,+                  ("fingerprint" .=) <$> _dFingerprint,+                  ("distance" .=) <$> _dDistance,+                  ("layerInfo" .=) <$> _dLayerInfo])++-- | Details of a build occurrence.+--+-- /See:/ 'grafeasV1beta1BuildDetails' smart constructor.+data GrafeasV1beta1BuildDetails = GrafeasV1beta1BuildDetails'+    { _gvbdProvenanceBytes :: !(Maybe Text)+    , _gvbdProvenance      :: !(Maybe BuildProvenance)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GrafeasV1beta1BuildDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gvbdProvenanceBytes'+--+-- * 'gvbdProvenance'+grafeasV1beta1BuildDetails+    :: GrafeasV1beta1BuildDetails+grafeasV1beta1BuildDetails =+    GrafeasV1beta1BuildDetails'+    { _gvbdProvenanceBytes = Nothing+    , _gvbdProvenance = Nothing+    }++-- | Serialized JSON representation of the provenance, used in generating the+-- build signature in the corresponding build note. After verifying the+-- signature, \`provenance_bytes\` can be unmarshalled and compared to the+-- provenance to confirm that it is unchanged. A base64-encoded string+-- representation of the provenance bytes is used for the signature in+-- order to interoperate with openssl which expects this format for+-- signature verification. The serialized form is captured both to avoid+-- ambiguity in how the provenance is marshalled to json as well to prevent+-- incompatibilities with future changes.+gvbdProvenanceBytes :: Lens' GrafeasV1beta1BuildDetails (Maybe Text)+gvbdProvenanceBytes+  = lens _gvbdProvenanceBytes+      (\ s a -> s{_gvbdProvenanceBytes = a})++-- | Required. The actual provenance for the build.+gvbdProvenance :: Lens' GrafeasV1beta1BuildDetails (Maybe BuildProvenance)+gvbdProvenance+  = lens _gvbdProvenance+      (\ s a -> s{_gvbdProvenance = a})++instance FromJSON GrafeasV1beta1BuildDetails where+        parseJSON+          = withObject "GrafeasV1beta1BuildDetails"+              (\ o ->+                 GrafeasV1beta1BuildDetails' <$>+                   (o .:? "provenanceBytes") <*> (o .:? "provenance"))++instance ToJSON GrafeasV1beta1BuildDetails where+        toJSON GrafeasV1beta1BuildDetails'{..}+          = object+              (catMaybes+                 [("provenanceBytes" .=) <$> _gvbdProvenanceBytes,+                  ("provenance" .=) <$> _gvbdProvenance])++-- | Source describes the location of the source used for the build.+--+-- /See:/ 'source' smart constructor.+data Source = Source'+    { _sContext                  :: !(Maybe SourceContext)+    , _sAdditionalContexts       :: !(Maybe [SourceContext])+    , _sArtifactStorageSourceURI :: !(Maybe Text)+    , _sFileHashes               :: !(Maybe SourceFileHashes)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Source' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sContext'+--+-- * 'sAdditionalContexts'+--+-- * 'sArtifactStorageSourceURI'+--+-- * 'sFileHashes'+source+    :: Source+source =+    Source'+    { _sContext = Nothing+    , _sAdditionalContexts = Nothing+    , _sArtifactStorageSourceURI = Nothing+    , _sFileHashes = Nothing+    }++-- | If provided, the source code used for the build came from this location.+sContext :: Lens' Source (Maybe SourceContext)+sContext = lens _sContext (\ s a -> s{_sContext = a})++-- | If provided, some of the source code used for the build may be found in+-- these locations, in the case where the source repository had multiple+-- remotes or submodules. This list will not include the context specified+-- in the context field.+sAdditionalContexts :: Lens' Source [SourceContext]+sAdditionalContexts+  = lens _sAdditionalContexts+      (\ s a -> s{_sAdditionalContexts = a})+      . _Default+      . _Coerce++-- | If provided, the input binary artifacts for the build came from this+-- location.+sArtifactStorageSourceURI :: Lens' Source (Maybe Text)+sArtifactStorageSourceURI+  = lens _sArtifactStorageSourceURI+      (\ s a -> s{_sArtifactStorageSourceURI = a})++-- | Hash(es) of the build source, which can be used to verify that the+-- original source integrity was maintained in the build. The keys to this+-- map are file paths used as build source and the values contain the hash+-- values for those files. If the build source came in a single package+-- such as a gzipped tarfile (.tar.gz), the FileHash will be for the single+-- path to that file.+sFileHashes :: Lens' Source (Maybe SourceFileHashes)+sFileHashes+  = lens _sFileHashes (\ s a -> s{_sFileHashes = a})++instance FromJSON Source where+        parseJSON+          = withObject "Source"+              (\ o ->+                 Source' <$>+                   (o .:? "context") <*>+                     (o .:? "additionalContexts" .!= mempty)+                     <*> (o .:? "artifactStorageSourceUri")+                     <*> (o .:? "fileHashes"))++instance ToJSON Source where+        toJSON Source'{..}+          = object+              (catMaybes+                 [("context" .=) <$> _sContext,+                  ("additionalContexts" .=) <$> _sAdditionalContexts,+                  ("artifactStorageSourceUri" .=) <$>+                    _sArtifactStorageSourceURI,+                  ("fileHashes" .=) <$> _sFileHashes])++-- | A scan configuration specifies whether Cloud components in a project+-- have a particular type of analysis being run. For example, it can+-- configure whether vulnerability scanning is being done on Docker images+-- or not.+--+-- /See:/ 'scanConfig' smart constructor.+data ScanConfig = ScanConfig'+    { _scEnabled     :: !(Maybe Bool)+    , _scUpdateTime  :: !(Maybe DateTime')+    , _scName        :: !(Maybe Text)+    , _scDescription :: !(Maybe Text)+    , _scCreateTime  :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ScanConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scEnabled'+--+-- * 'scUpdateTime'+--+-- * 'scName'+--+-- * 'scDescription'+--+-- * 'scCreateTime'+scanConfig+    :: ScanConfig+scanConfig =+    ScanConfig'+    { _scEnabled = Nothing+    , _scUpdateTime = Nothing+    , _scName = Nothing+    , _scDescription = Nothing+    , _scCreateTime = Nothing+    }++-- | Whether the scan is enabled.+scEnabled :: Lens' ScanConfig (Maybe Bool)+scEnabled+  = lens _scEnabled (\ s a -> s{_scEnabled = a})++-- | Output only. The time this scan config was last updated.+scUpdateTime :: Lens' ScanConfig (Maybe UTCTime)+scUpdateTime+  = lens _scUpdateTime (\ s a -> s{_scUpdateTime = a})+      . mapping _DateTime++-- | Output only. The name of the scan configuration in the form of+-- \`projects\/[PROJECT_ID]\/scanConfigs\/[SCAN_CONFIG_ID]\`.+scName :: Lens' ScanConfig (Maybe Text)+scName = lens _scName (\ s a -> s{_scName = a})++-- | Output only. A human-readable description of what the scan configuration+-- does.+scDescription :: Lens' ScanConfig (Maybe Text)+scDescription+  = lens _scDescription+      (\ s a -> s{_scDescription = a})++-- | Output only. The time this scan config was created.+scCreateTime :: Lens' ScanConfig (Maybe UTCTime)+scCreateTime+  = lens _scCreateTime (\ s a -> s{_scCreateTime = a})+      . mapping _DateTime++instance FromJSON ScanConfig where+        parseJSON+          = withObject "ScanConfig"+              (\ o ->+                 ScanConfig' <$>+                   (o .:? "enabled") <*> (o .:? "updateTime") <*>+                     (o .:? "name")+                     <*> (o .:? "description")+                     <*> (o .:? "createTime"))++instance ToJSON ScanConfig where+        toJSON ScanConfig'{..}+          = object+              (catMaybes+                 [("enabled" .=) <$> _scEnabled,+                  ("updateTime" .=) <$> _scUpdateTime,+                  ("name" .=) <$> _scName,+                  ("description" .=) <$> _scDescription,+                  ("createTime" .=) <$> _scCreateTime])++-- | A GitSourceContext denotes a particular revision in a third party Git+-- repository (e.g., GitHub).+--+-- /See:/ 'gitSourceContext' smart constructor.+data GitSourceContext = GitSourceContext'+    { _gURL        :: !(Maybe Text)+    , _gRevisionId :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GitSourceContext' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gURL'+--+-- * 'gRevisionId'+gitSourceContext+    :: GitSourceContext+gitSourceContext =+    GitSourceContext'+    { _gURL = Nothing+    , _gRevisionId = Nothing+    }++-- | Git repository URL.+gURL :: Lens' GitSourceContext (Maybe Text)+gURL = lens _gURL (\ s a -> s{_gURL = a})++-- | Git commit hash.+gRevisionId :: Lens' GitSourceContext (Maybe Text)+gRevisionId+  = lens _gRevisionId (\ s a -> s{_gRevisionId = a})++instance FromJSON GitSourceContext where+        parseJSON+          = withObject "GitSourceContext"+              (\ o ->+                 GitSourceContext' <$>+                   (o .:? "url") <*> (o .:? "revisionId"))++instance ToJSON GitSourceContext where+        toJSON GitSourceContext'{..}+          = object+              (catMaybes+                 [("url" .=) <$> _gURL,+                  ("revisionId" .=) <$> _gRevisionId])++-- | Response message for \`TestIamPermissions\` method.+--+-- /See:/ 'testIAMPermissionsResponse' smart constructor.+newtype TestIAMPermissionsResponse = TestIAMPermissionsResponse'+    { _tiamprPermissions :: Maybe [Text]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TestIAMPermissionsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tiamprPermissions'+testIAMPermissionsResponse+    :: TestIAMPermissionsResponse+testIAMPermissionsResponse =+    TestIAMPermissionsResponse'+    { _tiamprPermissions = Nothing+    }++-- | A subset of \`TestPermissionsRequest.permissions\` that the caller is+-- allowed.+tiamprPermissions :: Lens' TestIAMPermissionsResponse [Text]+tiamprPermissions+  = lens _tiamprPermissions+      (\ s a -> s{_tiamprPermissions = a})+      . _Default+      . _Coerce++instance FromJSON TestIAMPermissionsResponse where+        parseJSON+          = withObject "TestIAMPermissionsResponse"+              (\ o ->+                 TestIAMPermissionsResponse' <$>+                   (o .:? "permissions" .!= mempty))++instance ToJSON TestIAMPermissionsResponse where+        toJSON TestIAMPermissionsResponse'{..}+          = object+              (catMaybes+                 [("permissions" .=) <$> _tiamprPermissions])++-- | 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])++-- | Layer holds metadata specific to a layer of a Docker image.+--+-- /See:/ 'layer' smart constructor.+data Layer = Layer'+    { _lDirective :: !(Maybe LayerDirective)+    , _lArguments :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Layer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lDirective'+--+-- * 'lArguments'+layer+    :: Layer+layer =+    Layer'+    { _lDirective = Nothing+    , _lArguments = Nothing+    }++-- | Required. The recovered Dockerfile directive used to construct this+-- layer.+lDirective :: Lens' Layer (Maybe LayerDirective)+lDirective+  = lens _lDirective (\ s a -> s{_lDirective = a})++-- | The recovered arguments to the Dockerfile directive.+lArguments :: Lens' Layer (Maybe Text)+lArguments+  = lens _lArguments (\ s a -> s{_lArguments = a})++instance FromJSON Layer where+        parseJSON+          = withObject "Layer"+              (\ o ->+                 Layer' <$>+                   (o .:? "directive") <*> (o .:? "arguments"))++instance ToJSON Layer where+        toJSON Layer'{..}+          = object+              (catMaybes+                 [("directive" .=) <$> _lDirective,+                  ("arguments" .=) <$> _lArguments])++-- | A CloudRepoSourceContext denotes a particular revision in a Google Cloud+-- Source Repo.+--+-- /See:/ 'cloudRepoSourceContext' smart constructor.+data CloudRepoSourceContext = CloudRepoSourceContext'+    { _crscRepoId       :: !(Maybe RepoId)+    , _crscRevisionId   :: !(Maybe Text)+    , _crscAliasContext :: !(Maybe AliasContext)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CloudRepoSourceContext' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crscRepoId'+--+-- * 'crscRevisionId'+--+-- * 'crscAliasContext'+cloudRepoSourceContext+    :: CloudRepoSourceContext+cloudRepoSourceContext =+    CloudRepoSourceContext'+    { _crscRepoId = Nothing+    , _crscRevisionId = Nothing+    , _crscAliasContext = Nothing+    }++-- | The ID of the repo.+crscRepoId :: Lens' CloudRepoSourceContext (Maybe RepoId)+crscRepoId+  = lens _crscRepoId (\ s a -> s{_crscRepoId = a})++-- | A revision ID.+crscRevisionId :: Lens' CloudRepoSourceContext (Maybe Text)+crscRevisionId+  = lens _crscRevisionId+      (\ s a -> s{_crscRevisionId = a})++-- | An alias, which may be a branch or tag.+crscAliasContext :: Lens' CloudRepoSourceContext (Maybe AliasContext)+crscAliasContext+  = lens _crscAliasContext+      (\ s a -> s{_crscAliasContext = a})++instance FromJSON CloudRepoSourceContext where+        parseJSON+          = withObject "CloudRepoSourceContext"+              (\ o ->+                 CloudRepoSourceContext' <$>+                   (o .:? "repoId") <*> (o .:? "revisionId") <*>+                     (o .:? "aliasContext"))++instance ToJSON CloudRepoSourceContext where+        toJSON CloudRepoSourceContext'{..}+          = object+              (catMaybes+                 [("repoId" .=) <$> _crscRepoId,+                  ("revisionId" .=) <$> _crscRevisionId,+                  ("aliasContext" .=) <$> _crscAliasContext])++-- | 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])++-- | An attestation wrapper with a PGP-compatible signature. This message+-- only supports \`ATTACHED\` signatures, where the payload that is signed+-- is included alongside the signature itself in the same file.+--+-- /See:/ 'pgpSignedAttestation' smart constructor.+data PgpSignedAttestation = PgpSignedAttestation'+    { _psaSignature   :: !(Maybe Text)+    , _psaPgpKeyId    :: !(Maybe Text)+    , _psaContentType :: !(Maybe PgpSignedAttestationContentType)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PgpSignedAttestation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'psaSignature'+--+-- * 'psaPgpKeyId'+--+-- * 'psaContentType'+pgpSignedAttestation+    :: PgpSignedAttestation+pgpSignedAttestation =+    PgpSignedAttestation'+    { _psaSignature = Nothing+    , _psaPgpKeyId = Nothing+    , _psaContentType = Nothing+    }++-- | Required. The raw content of the signature, as output by GNU Privacy+-- Guard (GPG) or equivalent. Since this message only supports attached+-- signatures, the payload that was signed must be attached. While the+-- signature format supported is dependent on the verification+-- implementation, currently only ASCII-armored (\`--armor\` to gpg),+-- non-clearsigned (\`--sign\` rather than \`--clearsign\` to gpg) are+-- supported. Concretely, \`gpg --sign --armor --output=signature.gpg+-- payload.json\` will create the signature content expected in this field+-- in \`signature.gpg\` for the \`payload.json\` attestation payload.+psaSignature :: Lens' PgpSignedAttestation (Maybe Text)+psaSignature+  = lens _psaSignature (\ s a -> s{_psaSignature = a})++-- | The cryptographic fingerprint of the key used to generate the signature,+-- as output by, e.g. \`gpg --list-keys\`. This should be the version 4,+-- full 160-bit fingerprint, expressed as a 40 character hexidecimal+-- string. See https:\/\/tools.ietf.org\/html\/rfc4880#section-12.2 for+-- details. Implementations may choose to acknowledge \"LONG\", \"SHORT\",+-- or other abbreviated key IDs, but only the full fingerprint is+-- guaranteed to work. In gpg, the full fingerprint can be retrieved from+-- the \`fpr\` field returned when calling --list-keys with --with-colons.+-- For example: \`\`\` gpg --with-colons --with-fingerprint+-- --force-v4-certs \\ --list-keys attester\'example.com+-- tru::1:1513631572:0:3:1:5 pub:......+-- fpr:::::::::24FF6481B76AC91E66A00AC657A93A81EF3AE6FB: \`\`\` Above, the+-- fingerprint is \`24FF6481B76AC91E66A00AC657A93A81EF3AE6FB\`.+psaPgpKeyId :: Lens' PgpSignedAttestation (Maybe Text)+psaPgpKeyId+  = lens _psaPgpKeyId (\ s a -> s{_psaPgpKeyId = a})++-- | Type (for example schema) of the attestation payload that was signed.+-- The verifier must ensure that the provided type is one that the verifier+-- supports, and that the attestation payload is a valid instantiation of+-- that type (for example by validating a JSON schema).+psaContentType :: Lens' PgpSignedAttestation (Maybe PgpSignedAttestationContentType)+psaContentType+  = lens _psaContentType+      (\ s a -> s{_psaContentType = a})++instance FromJSON PgpSignedAttestation where+        parseJSON+          = withObject "PgpSignedAttestation"+              (\ o ->+                 PgpSignedAttestation' <$>+                   (o .:? "signature") <*> (o .:? "pgpKeyId") <*>+                     (o .:? "contentType"))++instance ToJSON PgpSignedAttestation where+        toJSON PgpSignedAttestation'{..}+          = object+              (catMaybes+                 [("signature" .=) <$> _psaSignature,+                  ("pgpKeyId" .=) <$> _psaPgpKeyId,+                  ("contentType" .=) <$> _psaContentType])++-- | The notes to create. Max allowed length is 1000.+--+-- /See:/ 'batchCreateNotesRequestNotes' smart constructor.+newtype BatchCreateNotesRequestNotes = BatchCreateNotesRequestNotes'+    { _bcnrnAddtional :: HashMap Text Note+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BatchCreateNotesRequestNotes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bcnrnAddtional'+batchCreateNotesRequestNotes+    :: HashMap Text Note -- ^ 'bcnrnAddtional'+    -> BatchCreateNotesRequestNotes+batchCreateNotesRequestNotes pBcnrnAddtional_ =+    BatchCreateNotesRequestNotes'+    { _bcnrnAddtional = _Coerce # pBcnrnAddtional_+    }++bcnrnAddtional :: Lens' BatchCreateNotesRequestNotes (HashMap Text Note)+bcnrnAddtional+  = lens _bcnrnAddtional+      (\ s a -> s{_bcnrnAddtional = a})+      . _Coerce++instance FromJSON BatchCreateNotesRequestNotes where+        parseJSON+          = withObject "BatchCreateNotesRequestNotes"+              (\ o ->+                 BatchCreateNotesRequestNotes' <$>+                   (parseJSONObject o))++instance ToJSON BatchCreateNotesRequestNotes where+        toJSON = toJSON . _bcnrnAddtional++-- | An alias to a repo revision.+--+-- /See:/ 'aliasContext' smart constructor.+data AliasContext = AliasContext'+    { _acKind :: !(Maybe AliasContextKind)+    , _acName :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AliasContext' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'acKind'+--+-- * 'acName'+aliasContext+    :: AliasContext+aliasContext =+    AliasContext'+    { _acKind = Nothing+    , _acName = Nothing+    }++-- | The alias kind.+acKind :: Lens' AliasContext (Maybe AliasContextKind)+acKind = lens _acKind (\ s a -> s{_acKind = a})++-- | The alias name.+acName :: Lens' AliasContext (Maybe Text)+acName = lens _acName (\ s a -> s{_acName = a})++instance FromJSON AliasContext where+        parseJSON+          = withObject "AliasContext"+              (\ o ->+                 AliasContext' <$> (o .:? "kind") <*> (o .:? "name"))++instance ToJSON AliasContext where+        toJSON AliasContext'{..}+          = object+              (catMaybes+                 [("kind" .=) <$> _acKind, ("name" .=) <$> _acName])++-- | 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])++-- | Identifies all appearances of this vulnerability in the package for a+-- specific distro\/location. For example: glibc in+-- cpe:\/o:debian:debian_linux:8 for versions 2.1 - 2.2+--+-- /See:/ 'detail' smart constructor.+data Detail = Detail'+    { _detMinAffectedVersion :: !(Maybe Version)+    , _detPackageType        :: !(Maybe Text)+    , _detIsObsolete         :: !(Maybe Bool)+    , _detFixedLocation      :: !(Maybe VulnerabilityLocation)+    , _detSeverityName       :: !(Maybe Text)+    , _detMaxAffectedVersion :: !(Maybe Version)+    , _detPackage            :: !(Maybe Text)+    , _detCpeURI             :: !(Maybe Text)+    , _detDescription        :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Detail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'detMinAffectedVersion'+--+-- * 'detPackageType'+--+-- * 'detIsObsolete'+--+-- * 'detFixedLocation'+--+-- * 'detSeverityName'+--+-- * 'detMaxAffectedVersion'+--+-- * 'detPackage'+--+-- * 'detCpeURI'+--+-- * 'detDescription'+detail+    :: Detail+detail =+    Detail'+    { _detMinAffectedVersion = Nothing+    , _detPackageType = Nothing+    , _detIsObsolete = Nothing+    , _detFixedLocation = Nothing+    , _detSeverityName = Nothing+    , _detMaxAffectedVersion = Nothing+    , _detPackage = Nothing+    , _detCpeURI = Nothing+    , _detDescription = Nothing+    }++-- | The min version of the package in which the vulnerability exists.+detMinAffectedVersion :: Lens' Detail (Maybe Version)+detMinAffectedVersion+  = lens _detMinAffectedVersion+      (\ s a -> s{_detMinAffectedVersion = a})++-- | The type of package; whether native or non native(ruby gems, node.js+-- packages etc).+detPackageType :: Lens' Detail (Maybe Text)+detPackageType+  = lens _detPackageType+      (\ s a -> s{_detPackageType = a})++-- | Whether this detail is obsolete. Occurrences are expected not to point+-- to obsolete details.+detIsObsolete :: Lens' Detail (Maybe Bool)+detIsObsolete+  = lens _detIsObsolete+      (\ s a -> s{_detIsObsolete = a})++-- | The fix for this specific package version.+detFixedLocation :: Lens' Detail (Maybe VulnerabilityLocation)+detFixedLocation+  = lens _detFixedLocation+      (\ s a -> s{_detFixedLocation = a})++-- | The severity (eg: distro assigned severity) for this vulnerability.+detSeverityName :: Lens' Detail (Maybe Text)+detSeverityName+  = lens _detSeverityName+      (\ s a -> s{_detSeverityName = a})++-- | The max version of the package in which the vulnerability exists.+detMaxAffectedVersion :: Lens' Detail (Maybe Version)+detMaxAffectedVersion+  = lens _detMaxAffectedVersion+      (\ s a -> s{_detMaxAffectedVersion = a})++-- | Required. The name of the package where the vulnerability was found.+detPackage :: Lens' Detail (Maybe Text)+detPackage+  = lens _detPackage (\ s a -> s{_detPackage = a})++-- | Required. The CPE URI in [cpe+-- format](https:\/\/cpe.mitre.org\/specification\/) in which the+-- vulnerability manifests. Examples include distro or storage location for+-- vulnerable jar.+detCpeURI :: Lens' Detail (Maybe Text)+detCpeURI+  = lens _detCpeURI (\ s a -> s{_detCpeURI = a})++-- | A vendor-specific description of this note.+detDescription :: Lens' Detail (Maybe Text)+detDescription+  = lens _detDescription+      (\ s a -> s{_detDescription = a})++instance FromJSON Detail where+        parseJSON+          = withObject "Detail"+              (\ o ->+                 Detail' <$>+                   (o .:? "minAffectedVersion") <*>+                     (o .:? "packageType")+                     <*> (o .:? "isObsolete")+                     <*> (o .:? "fixedLocation")+                     <*> (o .:? "severityName")+                     <*> (o .:? "maxAffectedVersion")+                     <*> (o .:? "package")+                     <*> (o .:? "cpeUri")+                     <*> (o .:? "description"))++instance ToJSON Detail where+        toJSON Detail'{..}+          = object+              (catMaybes+                 [("minAffectedVersion" .=) <$>+                    _detMinAffectedVersion,+                  ("packageType" .=) <$> _detPackageType,+                  ("isObsolete" .=) <$> _detIsObsolete,+                  ("fixedLocation" .=) <$> _detFixedLocation,+                  ("severityName" .=) <$> _detSeverityName,+                  ("maxAffectedVersion" .=) <$> _detMaxAffectedVersion,+                  ("package" .=) <$> _detPackage,+                  ("cpeUri" .=) <$> _detCpeURI,+                  ("description" .=) <$> _detDescription])++-- | Note kind that represents a logical attestation \"role\" or+-- \"authority\". For example, an organization might have one \`Authority\`+-- for \"QA\" and one for \"build\". This note is intended to act strictly+-- as a grouping mechanism for the attached occurrences (Attestations).+-- This grouping mechanism also provides a security boundary, since IAM+-- ACLs gate the ability for a principle to attach an occurrence to a given+-- note. It also provides a single point of lookup to find all attached+-- attestation occurrences, even if they don\'t all live in the same+-- project.+--+-- /See:/ 'authority' smart constructor.+newtype Authority = Authority'+    { _aHint :: Maybe Hint+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Authority' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aHint'+authority+    :: Authority+authority =+    Authority'+    { _aHint = Nothing+    }++-- | Hint hints at the purpose of the attestation authority.+aHint :: Lens' Authority (Maybe Hint)+aHint = lens _aHint (\ s a -> s{_aHint = a})++instance FromJSON Authority where+        parseJSON+          = withObject "Authority"+              (\ o -> Authority' <$> (o .:? "hint"))++instance ToJSON Authority where+        toJSON Authority'{..}+          = object (catMaybes [("hint" .=) <$> _aHint])++-- | Details of a package occurrence.+--+-- /See:/ 'grafeasV1beta1PackageDetails' smart constructor.+newtype GrafeasV1beta1PackageDetails = GrafeasV1beta1PackageDetails'+    { _gvpdInstallation :: Maybe Installation+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GrafeasV1beta1PackageDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gvpdInstallation'+grafeasV1beta1PackageDetails+    :: GrafeasV1beta1PackageDetails+grafeasV1beta1PackageDetails =+    GrafeasV1beta1PackageDetails'+    { _gvpdInstallation = Nothing+    }++-- | Required. Where the package was installed.+gvpdInstallation :: Lens' GrafeasV1beta1PackageDetails (Maybe Installation)+gvpdInstallation+  = lens _gvpdInstallation+      (\ s a -> s{_gvpdInstallation = a})++instance FromJSON GrafeasV1beta1PackageDetails where+        parseJSON+          = withObject "GrafeasV1beta1PackageDetails"+              (\ o ->+                 GrafeasV1beta1PackageDetails' <$>+                   (o .:? "installation"))++instance ToJSON GrafeasV1beta1PackageDetails where+        toJSON GrafeasV1beta1PackageDetails'{..}+          = object+              (catMaybes+                 [("installation" .=) <$> _gvpdInstallation])++-- | The period during which some deployable was active in a runtime.+--+-- /See:/ 'deployment' smart constructor.+data Deployment = Deployment'+    { _depResourceURI  :: !(Maybe [Text])+    , _depPlatform     :: !(Maybe DeploymentPlatform)+    , _depConfig       :: !(Maybe Text)+    , _depUndeployTime :: !(Maybe DateTime')+    , _depDeployTime   :: !(Maybe DateTime')+    , _depAddress      :: !(Maybe Text)+    , _depUserEmail    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Deployment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'depResourceURI'+--+-- * 'depPlatform'+--+-- * 'depConfig'+--+-- * 'depUndeployTime'+--+-- * 'depDeployTime'+--+-- * 'depAddress'+--+-- * 'depUserEmail'+deployment+    :: Deployment+deployment =+    Deployment'+    { _depResourceURI = Nothing+    , _depPlatform = Nothing+    , _depConfig = Nothing+    , _depUndeployTime = Nothing+    , _depDeployTime = Nothing+    , _depAddress = Nothing+    , _depUserEmail = Nothing+    }++-- | Output only. Resource URI for the artifact being deployed taken from the+-- deployable field with the same name.+depResourceURI :: Lens' Deployment [Text]+depResourceURI+  = lens _depResourceURI+      (\ s a -> s{_depResourceURI = a})+      . _Default+      . _Coerce++-- | Platform hosting this deployment.+depPlatform :: Lens' Deployment (Maybe DeploymentPlatform)+depPlatform+  = lens _depPlatform (\ s a -> s{_depPlatform = a})++-- | Configuration used to create this deployment.+depConfig :: Lens' Deployment (Maybe Text)+depConfig+  = lens _depConfig (\ s a -> s{_depConfig = a})++-- | End of the lifetime of this deployment.+depUndeployTime :: Lens' Deployment (Maybe UTCTime)+depUndeployTime+  = lens _depUndeployTime+      (\ s a -> s{_depUndeployTime = a})+      . mapping _DateTime++-- | Required. Beginning of the lifetime of this deployment.+depDeployTime :: Lens' Deployment (Maybe UTCTime)+depDeployTime+  = lens _depDeployTime+      (\ s a -> s{_depDeployTime = a})+      . mapping _DateTime++-- | Address of the runtime element hosting this deployment.+depAddress :: Lens' Deployment (Maybe Text)+depAddress+  = lens _depAddress (\ s a -> s{_depAddress = a})++-- | Identity of the user that triggered this deployment.+depUserEmail :: Lens' Deployment (Maybe Text)+depUserEmail+  = lens _depUserEmail (\ s a -> s{_depUserEmail = a})++instance FromJSON Deployment where+        parseJSON+          = withObject "Deployment"+              (\ o ->+                 Deployment' <$>+                   (o .:? "resourceUri" .!= mempty) <*>+                     (o .:? "platform")+                     <*> (o .:? "config")+                     <*> (o .:? "undeployTime")+                     <*> (o .:? "deployTime")+                     <*> (o .:? "address")+                     <*> (o .:? "userEmail"))++instance ToJSON Deployment where+        toJSON Deployment'{..}+          = object+              (catMaybes+                 [("resourceUri" .=) <$> _depResourceURI,+                  ("platform" .=) <$> _depPlatform,+                  ("config" .=) <$> _depConfig,+                  ("undeployTime" .=) <$> _depUndeployTime,+                  ("deployTime" .=) <$> _depDeployTime,+                  ("address" .=) <$> _depAddress,+                  ("userEmail" .=) <$> _depUserEmail])
+ gen/Network/Google/ContainerAnalysis/Types/Sum.hs view
@@ -0,0 +1,865 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.ContainerAnalysis.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.ContainerAnalysis.Types.Sum where++import           Network.Google.Prelude hiding (Bytes)++-- | Required. The recovered Dockerfile directive used to construct this+-- layer.+data LayerDirective+    = DirectiveUnspecified+      -- ^ @DIRECTIVE_UNSPECIFIED@+      -- Default value for unsupported\/missing directive.+    | Maintainer+      -- ^ @MAINTAINER@+      -- https:\/\/docs.docker.com\/reference\/builder\/#maintainer+    | Run+      -- ^ @RUN@+      -- https:\/\/docs.docker.com\/reference\/builder\/#run+    | Cmd+      -- ^ @CMD@+      -- https:\/\/docs.docker.com\/reference\/builder\/#cmd+    | Label+      -- ^ @LABEL@+      -- https:\/\/docs.docker.com\/reference\/builder\/#label+    | Expose+      -- ^ @EXPOSE@+      -- https:\/\/docs.docker.com\/reference\/builder\/#expose+    | Env+      -- ^ @ENV@+      -- https:\/\/docs.docker.com\/reference\/builder\/#env+    | Add+      -- ^ @ADD@+      -- https:\/\/docs.docker.com\/reference\/builder\/#add+    | Copy+      -- ^ @COPY@+      -- https:\/\/docs.docker.com\/reference\/builder\/#copy+    | Entrypoint+      -- ^ @ENTRYPOINT@+      -- https:\/\/docs.docker.com\/reference\/builder\/#entrypoint+    | Volume+      -- ^ @VOLUME@+      -- https:\/\/docs.docker.com\/reference\/builder\/#volume+    | User+      -- ^ @USER@+      -- https:\/\/docs.docker.com\/reference\/builder\/#user+    | Workdir+      -- ^ @WORKDIR@+      -- https:\/\/docs.docker.com\/reference\/builder\/#workdir+    | Arg+      -- ^ @ARG@+      -- https:\/\/docs.docker.com\/reference\/builder\/#arg+    | Onbuild+      -- ^ @ONBUILD@+      -- https:\/\/docs.docker.com\/reference\/builder\/#onbuild+    | Stopsignal+      -- ^ @STOPSIGNAL@+      -- https:\/\/docs.docker.com\/reference\/builder\/#stopsignal+    | Healthcheck+      -- ^ @HEALTHCHECK@+      -- https:\/\/docs.docker.com\/reference\/builder\/#healthcheck+    | Shell+      -- ^ @SHELL@+      -- https:\/\/docs.docker.com\/reference\/builder\/#shell+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable LayerDirective++instance FromHttpApiData LayerDirective where+    parseQueryParam = \case+        "DIRECTIVE_UNSPECIFIED" -> Right DirectiveUnspecified+        "MAINTAINER" -> Right Maintainer+        "RUN" -> Right Run+        "CMD" -> Right Cmd+        "LABEL" -> Right Label+        "EXPOSE" -> Right Expose+        "ENV" -> Right Env+        "ADD" -> Right Add+        "COPY" -> Right Copy+        "ENTRYPOINT" -> Right Entrypoint+        "VOLUME" -> Right Volume+        "USER" -> Right User+        "WORKDIR" -> Right Workdir+        "ARG" -> Right Arg+        "ONBUILD" -> Right Onbuild+        "STOPSIGNAL" -> Right Stopsignal+        "HEALTHCHECK" -> Right Healthcheck+        "SHELL" -> Right Shell+        x -> Left ("Unable to parse LayerDirective from: " <> x)++instance ToHttpApiData LayerDirective where+    toQueryParam = \case+        DirectiveUnspecified -> "DIRECTIVE_UNSPECIFIED"+        Maintainer -> "MAINTAINER"+        Run -> "RUN"+        Cmd -> "CMD"+        Label -> "LABEL"+        Expose -> "EXPOSE"+        Env -> "ENV"+        Add -> "ADD"+        Copy -> "COPY"+        Entrypoint -> "ENTRYPOINT"+        Volume -> "VOLUME"+        User -> "USER"+        Workdir -> "WORKDIR"+        Arg -> "ARG"+        Onbuild -> "ONBUILD"+        Stopsignal -> "STOPSIGNAL"+        Healthcheck -> "HEALTHCHECK"+        Shell -> "SHELL"++instance FromJSON LayerDirective where+    parseJSON = parseJSONText "LayerDirective"++instance ToJSON LayerDirective where+    toJSON = toJSONText++-- | The status of discovery for the resource.+data DiscoveredAnalysisStatus+    = AnalysisStatusUnspecified+      -- ^ @ANALYSIS_STATUS_UNSPECIFIED@+      -- Unknown.+    | Pending+      -- ^ @PENDING@+      -- Resource is known but no action has been taken yet.+    | Scanning+      -- ^ @SCANNING@+      -- Resource is being analyzed.+    | FinishedSuccess+      -- ^ @FINISHED_SUCCESS@+      -- Analysis has finished successfully.+    | FinishedFailed+      -- ^ @FINISHED_FAILED@+      -- Analysis has finished unsuccessfully, the analysis itself is in a bad+      -- state.+    | FinishedUnsupported+      -- ^ @FINISHED_UNSUPPORTED@+      -- The resource is known not to be supported+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DiscoveredAnalysisStatus++instance FromHttpApiData DiscoveredAnalysisStatus where+    parseQueryParam = \case+        "ANALYSIS_STATUS_UNSPECIFIED" -> Right AnalysisStatusUnspecified+        "PENDING" -> Right Pending+        "SCANNING" -> Right Scanning+        "FINISHED_SUCCESS" -> Right FinishedSuccess+        "FINISHED_FAILED" -> Right FinishedFailed+        "FINISHED_UNSUPPORTED" -> Right FinishedUnsupported+        x -> Left ("Unable to parse DiscoveredAnalysisStatus from: " <> x)++instance ToHttpApiData DiscoveredAnalysisStatus where+    toQueryParam = \case+        AnalysisStatusUnspecified -> "ANALYSIS_STATUS_UNSPECIFIED"+        Pending -> "PENDING"+        Scanning -> "SCANNING"+        FinishedSuccess -> "FINISHED_SUCCESS"+        FinishedFailed -> "FINISHED_FAILED"+        FinishedUnsupported -> "FINISHED_UNSUPPORTED"++instance FromJSON DiscoveredAnalysisStatus where+    parseJSON = parseJSONText "DiscoveredAnalysisStatus"++instance ToJSON DiscoveredAnalysisStatus where+    toJSON = toJSONText++-- | Output only. The note provider assigned Severity of the vulnerability.+data GrafeasV1beta1VulnerabilityDetailsSeverity+    = SeverityUnspecified+      -- ^ @SEVERITY_UNSPECIFIED@+      -- Unknown.+    | Minimal+      -- ^ @MINIMAL@+      -- Minimal severity.+    | Low+      -- ^ @LOW@+      -- Low severity.+    | Medium+      -- ^ @MEDIUM@+      -- Medium severity.+    | High+      -- ^ @HIGH@+      -- High severity.+    | Critical+      -- ^ @CRITICAL@+      -- Critical severity.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable GrafeasV1beta1VulnerabilityDetailsSeverity++instance FromHttpApiData GrafeasV1beta1VulnerabilityDetailsSeverity where+    parseQueryParam = \case+        "SEVERITY_UNSPECIFIED" -> Right SeverityUnspecified+        "MINIMAL" -> Right Minimal+        "LOW" -> Right Low+        "MEDIUM" -> Right Medium+        "HIGH" -> Right High+        "CRITICAL" -> Right Critical+        x -> Left ("Unable to parse GrafeasV1beta1VulnerabilityDetailsSeverity from: " <> x)++instance ToHttpApiData GrafeasV1beta1VulnerabilityDetailsSeverity where+    toQueryParam = \case+        SeverityUnspecified -> "SEVERITY_UNSPECIFIED"+        Minimal -> "MINIMAL"+        Low -> "LOW"+        Medium -> "MEDIUM"+        High -> "HIGH"+        Critical -> "CRITICAL"++instance FromJSON GrafeasV1beta1VulnerabilityDetailsSeverity where+    parseJSON = parseJSONText "GrafeasV1beta1VulnerabilityDetailsSeverity"++instance ToJSON GrafeasV1beta1VulnerabilityDetailsSeverity where+    toJSON = toJSONText++-- | Output only. This explicitly denotes which of the occurrence details are+-- specified. This field can be used as a filter in list requests.+data OccurrenceKind+    = OKNoteKindUnspecified+      -- ^ @NOTE_KIND_UNSPECIFIED@+      -- Unknown.+    | OKVulnerability+      -- ^ @VULNERABILITY@+      -- The note and occurrence represent a package vulnerability.+    | OKBuild+      -- ^ @BUILD@+      -- The note and occurrence assert build provenance.+    | OKImage+      -- ^ @IMAGE@+      -- This represents an image basis relationship.+    | OKPackage+      -- ^ @PACKAGE@+      -- This represents a package installed via a package manager.+    | OKDeployment+      -- ^ @DEPLOYMENT@+      -- The note and occurrence track deployment events.+    | OKDiscovery+      -- ^ @DISCOVERY@+      -- The note and occurrence track the initial discovery status of a+      -- resource.+    | OKAttestation+      -- ^ @ATTESTATION@+      -- This represents a logical \"role\" that can attest to artifacts.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable OccurrenceKind++instance FromHttpApiData OccurrenceKind where+    parseQueryParam = \case+        "NOTE_KIND_UNSPECIFIED" -> Right OKNoteKindUnspecified+        "VULNERABILITY" -> Right OKVulnerability+        "BUILD" -> Right OKBuild+        "IMAGE" -> Right OKImage+        "PACKAGE" -> Right OKPackage+        "DEPLOYMENT" -> Right OKDeployment+        "DISCOVERY" -> Right OKDiscovery+        "ATTESTATION" -> Right OKAttestation+        x -> Left ("Unable to parse OccurrenceKind from: " <> x)++instance ToHttpApiData OccurrenceKind where+    toQueryParam = \case+        OKNoteKindUnspecified -> "NOTE_KIND_UNSPECIFIED"+        OKVulnerability -> "VULNERABILITY"+        OKBuild -> "BUILD"+        OKImage -> "IMAGE"+        OKPackage -> "PACKAGE"+        OKDeployment -> "DEPLOYMENT"+        OKDiscovery -> "DISCOVERY"+        OKAttestation -> "ATTESTATION"++instance FromJSON OccurrenceKind where+    parseJSON = parseJSONText "OccurrenceKind"++instance ToJSON OccurrenceKind where+    toJSON = toJSONText++-- | Note provider assigned impact of the vulnerability.+data VulnerabilitySeverity+    = VSSeverityUnspecified+      -- ^ @SEVERITY_UNSPECIFIED@+      -- Unknown.+    | VSMinimal+      -- ^ @MINIMAL@+      -- Minimal severity.+    | VSLow+      -- ^ @LOW@+      -- Low severity.+    | VSMedium+      -- ^ @MEDIUM@+      -- Medium severity.+    | VSHigh+      -- ^ @HIGH@+      -- High severity.+    | VSCritical+      -- ^ @CRITICAL@+      -- Critical severity.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable VulnerabilitySeverity++instance FromHttpApiData VulnerabilitySeverity where+    parseQueryParam = \case+        "SEVERITY_UNSPECIFIED" -> Right VSSeverityUnspecified+        "MINIMAL" -> Right VSMinimal+        "LOW" -> Right VSLow+        "MEDIUM" -> Right VSMedium+        "HIGH" -> Right VSHigh+        "CRITICAL" -> Right VSCritical+        x -> Left ("Unable to parse VulnerabilitySeverity from: " <> x)++instance ToHttpApiData VulnerabilitySeverity where+    toQueryParam = \case+        VSSeverityUnspecified -> "SEVERITY_UNSPECIFIED"+        VSMinimal -> "MINIMAL"+        VSLow -> "LOW"+        VSMedium -> "MEDIUM"+        VSHigh -> "HIGH"+        VSCritical -> "CRITICAL"++instance FromJSON VulnerabilitySeverity where+    parseJSON = parseJSONText "VulnerabilitySeverity"++instance ToJSON VulnerabilitySeverity where+    toJSON = toJSONText++-- | Whether the resource is continuously analyzed.+data DiscoveredContinuousAnalysis+    = ContinuousAnalysisUnspecified+      -- ^ @CONTINUOUS_ANALYSIS_UNSPECIFIED@+      -- Unknown.+    | Active+      -- ^ @ACTIVE@+      -- The resource is continuously analyzed.+    | Inactive+      -- ^ @INACTIVE@+      -- The resource is ignored for continuous analysis.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DiscoveredContinuousAnalysis++instance FromHttpApiData DiscoveredContinuousAnalysis where+    parseQueryParam = \case+        "CONTINUOUS_ANALYSIS_UNSPECIFIED" -> Right ContinuousAnalysisUnspecified+        "ACTIVE" -> Right Active+        "INACTIVE" -> Right Inactive+        x -> Left ("Unable to parse DiscoveredContinuousAnalysis from: " <> x)++instance ToHttpApiData DiscoveredContinuousAnalysis where+    toQueryParam = \case+        ContinuousAnalysisUnspecified -> "CONTINUOUS_ANALYSIS_UNSPECIFIED"+        Active -> "ACTIVE"+        Inactive -> "INACTIVE"++instance FromJSON DiscoveredContinuousAnalysis where+    parseJSON = parseJSONText "DiscoveredContinuousAnalysis"++instance ToJSON DiscoveredContinuousAnalysis where+    toJSON = toJSONText++-- | Output only. The type of analysis. This field can be used as a filter in+-- list requests.+data NoteKind+    = NKNoteKindUnspecified+      -- ^ @NOTE_KIND_UNSPECIFIED@+      -- Unknown.+    | NKVulnerability+      -- ^ @VULNERABILITY@+      -- The note and occurrence represent a package vulnerability.+    | NKBuild+      -- ^ @BUILD@+      -- The note and occurrence assert build provenance.+    | NKImage+      -- ^ @IMAGE@+      -- This represents an image basis relationship.+    | NKPackage+      -- ^ @PACKAGE@+      -- This represents a package installed via a package manager.+    | NKDeployment+      -- ^ @DEPLOYMENT@+      -- The note and occurrence track deployment events.+    | NKDiscovery+      -- ^ @DISCOVERY@+      -- The note and occurrence track the initial discovery status of a+      -- resource.+    | NKAttestation+      -- ^ @ATTESTATION@+      -- This represents a logical \"role\" that can attest to artifacts.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable NoteKind++instance FromHttpApiData NoteKind where+    parseQueryParam = \case+        "NOTE_KIND_UNSPECIFIED" -> Right NKNoteKindUnspecified+        "VULNERABILITY" -> Right NKVulnerability+        "BUILD" -> Right NKBuild+        "IMAGE" -> Right NKImage+        "PACKAGE" -> Right NKPackage+        "DEPLOYMENT" -> Right NKDeployment+        "DISCOVERY" -> Right NKDiscovery+        "ATTESTATION" -> Right NKAttestation+        x -> Left ("Unable to parse NoteKind from: " <> x)++instance ToHttpApiData NoteKind where+    toQueryParam = \case+        NKNoteKindUnspecified -> "NOTE_KIND_UNSPECIFIED"+        NKVulnerability -> "VULNERABILITY"+        NKBuild -> "BUILD"+        NKImage -> "IMAGE"+        NKPackage -> "PACKAGE"+        NKDeployment -> "DEPLOYMENT"+        NKDiscovery -> "DISCOVERY"+        NKAttestation -> "ATTESTATION"++instance FromJSON NoteKind where+    parseJSON = parseJSONText "NoteKind"++instance ToJSON NoteKind where+    toJSON = toJSONText++-- | Platform hosting this deployment.+data DeploymentPlatform+    = PlatformUnspecified+      -- ^ @PLATFORM_UNSPECIFIED@+      -- Unknown.+    | Gke+      -- ^ @GKE@+      -- Google Container Engine.+    | Flex+      -- ^ @FLEX@+      -- Google App Engine: Flexible Environment.+    | Custom+      -- ^ @CUSTOM@+      -- Custom user-defined platform.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DeploymentPlatform++instance FromHttpApiData DeploymentPlatform where+    parseQueryParam = \case+        "PLATFORM_UNSPECIFIED" -> Right PlatformUnspecified+        "GKE" -> Right Gke+        "FLEX" -> Right Flex+        "CUSTOM" -> Right Custom+        x -> Left ("Unable to parse DeploymentPlatform from: " <> x)++instance ToHttpApiData DeploymentPlatform where+    toQueryParam = \case+        PlatformUnspecified -> "PLATFORM_UNSPECIFIED"+        Gke -> "GKE"+        Flex -> "FLEX"+        Custom -> "CUSTOM"++instance FromJSON DeploymentPlatform where+    parseJSON = parseJSONText "DeploymentPlatform"++instance ToJSON DeploymentPlatform where+    toJSON = toJSONText++-- | The CPU architecture for which packages in this distribution channel+-- were built.+data DistributionArchitecture+    = ArchitectureUnspecified+      -- ^ @ARCHITECTURE_UNSPECIFIED@+      -- Unknown architecture.+    | X86+      -- ^ @X86@+      -- X86 architecture.+    | X64+      -- ^ @X64@+      -- X64 architecture.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DistributionArchitecture++instance FromHttpApiData DistributionArchitecture where+    parseQueryParam = \case+        "ARCHITECTURE_UNSPECIFIED" -> Right ArchitectureUnspecified+        "X86" -> Right X86+        "X64" -> Right X64+        x -> Left ("Unable to parse DistributionArchitecture from: " <> x)++instance ToHttpApiData DistributionArchitecture where+    toQueryParam = \case+        ArchitectureUnspecified -> "ARCHITECTURE_UNSPECIFIED"+        X86 -> "X86"+        X64 -> "X64"++instance FromJSON DistributionArchitecture where+    parseJSON = parseJSONText "DistributionArchitecture"++instance ToJSON DistributionArchitecture where+    toJSON = toJSONText++-- | The severity for this count. SEVERITY_UNSPECIFIED indicates total across+-- all severities.+data FixableTotalByDigestSeverity+    = FTBDSSeverityUnspecified+      -- ^ @SEVERITY_UNSPECIFIED@+      -- Unknown.+    | FTBDSMinimal+      -- ^ @MINIMAL@+      -- Minimal severity.+    | FTBDSLow+      -- ^ @LOW@+      -- Low severity.+    | FTBDSMedium+      -- ^ @MEDIUM@+      -- Medium severity.+    | FTBDSHigh+      -- ^ @HIGH@+      -- High severity.+    | FTBDSCritical+      -- ^ @CRITICAL@+      -- Critical severity.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable FixableTotalByDigestSeverity++instance FromHttpApiData FixableTotalByDigestSeverity where+    parseQueryParam = \case+        "SEVERITY_UNSPECIFIED" -> Right FTBDSSeverityUnspecified+        "MINIMAL" -> Right FTBDSMinimal+        "LOW" -> Right FTBDSLow+        "MEDIUM" -> Right FTBDSMedium+        "HIGH" -> Right FTBDSHigh+        "CRITICAL" -> Right FTBDSCritical+        x -> Left ("Unable to parse FixableTotalByDigestSeverity from: " <> x)++instance ToHttpApiData FixableTotalByDigestSeverity where+    toQueryParam = \case+        FTBDSSeverityUnspecified -> "SEVERITY_UNSPECIFIED"+        FTBDSMinimal -> "MINIMAL"+        FTBDSLow -> "LOW"+        FTBDSMedium -> "MEDIUM"+        FTBDSHigh -> "HIGH"+        FTBDSCritical -> "CRITICAL"++instance FromJSON FixableTotalByDigestSeverity where+    parseJSON = parseJSONText "FixableTotalByDigestSeverity"++instance ToJSON FixableTotalByDigestSeverity 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++-- | Type (for example schema) of the attestation payload that was signed.+-- The verifier must ensure that the provided type is one that the verifier+-- supports, and that the attestation payload is a valid instantiation of+-- that type (for example by validating a JSON schema).+data PgpSignedAttestationContentType+    = ContentTypeUnspecified+      -- ^ @CONTENT_TYPE_UNSPECIFIED@+      -- \`ContentType\` is not set.+    | SimpleSigningJSON+      -- ^ @SIMPLE_SIGNING_JSON@+      -- Atomic format attestation signature. See+      -- https:\/\/github.com\/containers\/image\/blob\/8a5d2f82a6e3263290c8e0276c3e0f64e77723e7\/docs\/atomic-signature.md+      -- The payload extracted from \`signature\` is a JSON blob conforming to+      -- the linked schema.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable PgpSignedAttestationContentType++instance FromHttpApiData PgpSignedAttestationContentType where+    parseQueryParam = \case+        "CONTENT_TYPE_UNSPECIFIED" -> Right ContentTypeUnspecified+        "SIMPLE_SIGNING_JSON" -> Right SimpleSigningJSON+        x -> Left ("Unable to parse PgpSignedAttestationContentType from: " <> x)++instance ToHttpApiData PgpSignedAttestationContentType where+    toQueryParam = \case+        ContentTypeUnspecified -> "CONTENT_TYPE_UNSPECIFIED"+        SimpleSigningJSON -> "SIMPLE_SIGNING_JSON"++instance FromJSON PgpSignedAttestationContentType where+    parseJSON = parseJSONText "PgpSignedAttestationContentType"++instance ToJSON PgpSignedAttestationContentType 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++-- | Required. Distinguishes between sentinel MIN\/MAX versions and normal+-- versions.+data VersionKind+    = VersionKindUnspecified+      -- ^ @VERSION_KIND_UNSPECIFIED@+      -- Unknown.+    | Normal+      -- ^ @NORMAL@+      -- A standard package version.+    | Minimum+      -- ^ @MINIMUM@+      -- A special version representing negative infinity.+    | Maximum+      -- ^ @MAXIMUM@+      -- A special version representing positive infinity.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable VersionKind++instance FromHttpApiData VersionKind where+    parseQueryParam = \case+        "VERSION_KIND_UNSPECIFIED" -> Right VersionKindUnspecified+        "NORMAL" -> Right Normal+        "MINIMUM" -> Right Minimum+        "MAXIMUM" -> Right Maximum+        x -> Left ("Unable to parse VersionKind from: " <> x)++instance ToHttpApiData VersionKind where+    toQueryParam = \case+        VersionKindUnspecified -> "VERSION_KIND_UNSPECIFIED"+        Normal -> "NORMAL"+        Minimum -> "MINIMUM"+        Maximum -> "MAXIMUM"++instance FromJSON VersionKind where+    parseJSON = parseJSONText "VersionKind"++instance ToJSON VersionKind where+    toJSON = toJSONText++-- | Required. The type of hash that was performed.+data HashType+    = HashTypeUnspecified+      -- ^ @HASH_TYPE_UNSPECIFIED@+      -- Unknown.+    | SHA256+      -- ^ @SHA256@+      -- A SHA-256 hash.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable HashType++instance FromHttpApiData HashType where+    parseQueryParam = \case+        "HASH_TYPE_UNSPECIFIED" -> Right HashTypeUnspecified+        "SHA256" -> Right SHA256+        x -> Left ("Unable to parse HashType from: " <> x)++instance ToHttpApiData HashType where+    toQueryParam = \case+        HashTypeUnspecified -> "HASH_TYPE_UNSPECIFIED"+        SHA256 -> "SHA256"++instance FromJSON HashType where+    parseJSON = parseJSONText "HashType"++instance ToJSON HashType where+    toJSON = toJSONText++-- | The type of the key, either stored in \`public_key\` or referenced in+-- \`key_id\`.+data BuildSignatureKeyType+    = KeyTypeUnspecified+      -- ^ @KEY_TYPE_UNSPECIFIED@+      -- \`KeyType\` is not set.+    | PgpAsciiArmored+      -- ^ @PGP_ASCII_ARMORED@+      -- \`PGP ASCII Armored\` public key.+    | PkixPem+      -- ^ @PKIX_PEM@+      -- \`PKIX PEM\` public key.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable BuildSignatureKeyType++instance FromHttpApiData BuildSignatureKeyType where+    parseQueryParam = \case+        "KEY_TYPE_UNSPECIFIED" -> Right KeyTypeUnspecified+        "PGP_ASCII_ARMORED" -> Right PgpAsciiArmored+        "PKIX_PEM" -> Right PkixPem+        x -> Left ("Unable to parse BuildSignatureKeyType from: " <> x)++instance ToHttpApiData BuildSignatureKeyType where+    toQueryParam = \case+        KeyTypeUnspecified -> "KEY_TYPE_UNSPECIFIED"+        PgpAsciiArmored -> "PGP_ASCII_ARMORED"+        PkixPem -> "PKIX_PEM"++instance FromJSON BuildSignatureKeyType where+    parseJSON = parseJSONText "BuildSignatureKeyType"++instance ToJSON BuildSignatureKeyType where+    toJSON = toJSONText++-- | Required. Immutable. The kind of analysis that is handled by this+-- discovery.+data DiscoveryAnalysisKind+    = DAKNoteKindUnspecified+      -- ^ @NOTE_KIND_UNSPECIFIED@+      -- Unknown.+    | DAKVulnerability+      -- ^ @VULNERABILITY@+      -- The note and occurrence represent a package vulnerability.+    | DAKBuild+      -- ^ @BUILD@+      -- The note and occurrence assert build provenance.+    | DAKImage+      -- ^ @IMAGE@+      -- This represents an image basis relationship.+    | DAKPackage+      -- ^ @PACKAGE@+      -- This represents a package installed via a package manager.+    | DAKDeployment+      -- ^ @DEPLOYMENT@+      -- The note and occurrence track deployment events.+    | DAKDiscovery+      -- ^ @DISCOVERY@+      -- The note and occurrence track the initial discovery status of a+      -- resource.+    | DAKAttestation+      -- ^ @ATTESTATION@+      -- This represents a logical \"role\" that can attest to artifacts.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DiscoveryAnalysisKind++instance FromHttpApiData DiscoveryAnalysisKind where+    parseQueryParam = \case+        "NOTE_KIND_UNSPECIFIED" -> Right DAKNoteKindUnspecified+        "VULNERABILITY" -> Right DAKVulnerability+        "BUILD" -> Right DAKBuild+        "IMAGE" -> Right DAKImage+        "PACKAGE" -> Right DAKPackage+        "DEPLOYMENT" -> Right DAKDeployment+        "DISCOVERY" -> Right DAKDiscovery+        "ATTESTATION" -> Right DAKAttestation+        x -> Left ("Unable to parse DiscoveryAnalysisKind from: " <> x)++instance ToHttpApiData DiscoveryAnalysisKind where+    toQueryParam = \case+        DAKNoteKindUnspecified -> "NOTE_KIND_UNSPECIFIED"+        DAKVulnerability -> "VULNERABILITY"+        DAKBuild -> "BUILD"+        DAKImage -> "IMAGE"+        DAKPackage -> "PACKAGE"+        DAKDeployment -> "DEPLOYMENT"+        DAKDiscovery -> "DISCOVERY"+        DAKAttestation -> "ATTESTATION"++instance FromJSON DiscoveryAnalysisKind where+    parseJSON = parseJSONText "DiscoveryAnalysisKind"++instance ToJSON DiscoveryAnalysisKind where+    toJSON = toJSONText++-- | The alias kind.+data AliasContextKind+    = KindUnspecified+      -- ^ @KIND_UNSPECIFIED@+      -- Unknown.+    | Fixed+      -- ^ @FIXED@+      -- Git tag.+    | Movable+      -- ^ @MOVABLE@+      -- Git branch.+    | Other+      -- ^ @OTHER@+      -- Used to specify non-standard aliases. For example, if a Git repo has a+      -- ref named \"refs\/foo\/bar\".+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable AliasContextKind++instance FromHttpApiData AliasContextKind where+    parseQueryParam = \case+        "KIND_UNSPECIFIED" -> Right KindUnspecified+        "FIXED" -> Right Fixed+        "MOVABLE" -> Right Movable+        "OTHER" -> Right Other+        x -> Left ("Unable to parse AliasContextKind from: " <> x)++instance ToHttpApiData AliasContextKind where+    toQueryParam = \case+        KindUnspecified -> "KIND_UNSPECIFIED"+        Fixed -> "FIXED"+        Movable -> "MOVABLE"+        Other -> "OTHER"++instance FromJSON AliasContextKind where+    parseJSON = parseJSONText "AliasContextKind"++instance ToJSON AliasContextKind where+    toJSON = toJSONText
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Notes/BatchCreate.hs view
@@ -0,0 +1,163 @@+{-# 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.ContainerAnalysis.Projects.Notes.BatchCreate+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates new notes in batch.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.notes.batchCreate@.+module Network.Google.Resource.ContainerAnalysis.Projects.Notes.BatchCreate+    (+    -- * REST Resource+      ProjectsNotesBatchCreateResource++    -- * Creating a Request+    , projectsNotesBatchCreate+    , ProjectsNotesBatchCreate++    -- * Request Lenses+    , pnbcParent+    , pnbcXgafv+    , pnbcUploadProtocol+    , pnbcAccessToken+    , pnbcUploadType+    , pnbcPayload+    , pnbcCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.notes.batchCreate@ method which the+-- 'ProjectsNotesBatchCreate' request conforms to.+type ProjectsNotesBatchCreateResource =+     "v1beta1" :>+       Capture "parent" Text :>+         "notes:batchCreate" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] BatchCreateNotesRequest :>+                         Post '[JSON] BatchCreateNotesResponse++-- | Creates new notes in batch.+--+-- /See:/ 'projectsNotesBatchCreate' smart constructor.+data ProjectsNotesBatchCreate = ProjectsNotesBatchCreate'+    { _pnbcParent         :: !Text+    , _pnbcXgafv          :: !(Maybe Xgafv)+    , _pnbcUploadProtocol :: !(Maybe Text)+    , _pnbcAccessToken    :: !(Maybe Text)+    , _pnbcUploadType     :: !(Maybe Text)+    , _pnbcPayload        :: !BatchCreateNotesRequest+    , _pnbcCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsNotesBatchCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pnbcParent'+--+-- * 'pnbcXgafv'+--+-- * 'pnbcUploadProtocol'+--+-- * 'pnbcAccessToken'+--+-- * 'pnbcUploadType'+--+-- * 'pnbcPayload'+--+-- * 'pnbcCallback'+projectsNotesBatchCreate+    :: Text -- ^ 'pnbcParent'+    -> BatchCreateNotesRequest -- ^ 'pnbcPayload'+    -> ProjectsNotesBatchCreate+projectsNotesBatchCreate pPnbcParent_ pPnbcPayload_ =+    ProjectsNotesBatchCreate'+    { _pnbcParent = pPnbcParent_+    , _pnbcXgafv = Nothing+    , _pnbcUploadProtocol = Nothing+    , _pnbcAccessToken = Nothing+    , _pnbcUploadType = Nothing+    , _pnbcPayload = pPnbcPayload_+    , _pnbcCallback = Nothing+    }++-- | The name of the project in the form of \`projects\/[PROJECT_ID]\`, under+-- which the notes are to be created.+pnbcParent :: Lens' ProjectsNotesBatchCreate Text+pnbcParent+  = lens _pnbcParent (\ s a -> s{_pnbcParent = a})++-- | V1 error format.+pnbcXgafv :: Lens' ProjectsNotesBatchCreate (Maybe Xgafv)+pnbcXgafv+  = lens _pnbcXgafv (\ s a -> s{_pnbcXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pnbcUploadProtocol :: Lens' ProjectsNotesBatchCreate (Maybe Text)+pnbcUploadProtocol+  = lens _pnbcUploadProtocol+      (\ s a -> s{_pnbcUploadProtocol = a})++-- | OAuth access token.+pnbcAccessToken :: Lens' ProjectsNotesBatchCreate (Maybe Text)+pnbcAccessToken+  = lens _pnbcAccessToken+      (\ s a -> s{_pnbcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pnbcUploadType :: Lens' ProjectsNotesBatchCreate (Maybe Text)+pnbcUploadType+  = lens _pnbcUploadType+      (\ s a -> s{_pnbcUploadType = a})++-- | Multipart request metadata.+pnbcPayload :: Lens' ProjectsNotesBatchCreate BatchCreateNotesRequest+pnbcPayload+  = lens _pnbcPayload (\ s a -> s{_pnbcPayload = a})++-- | JSONP+pnbcCallback :: Lens' ProjectsNotesBatchCreate (Maybe Text)+pnbcCallback+  = lens _pnbcCallback (\ s a -> s{_pnbcCallback = a})++instance GoogleRequest ProjectsNotesBatchCreate where+        type Rs ProjectsNotesBatchCreate =+             BatchCreateNotesResponse+        type Scopes ProjectsNotesBatchCreate =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsNotesBatchCreate'{..}+          = go _pnbcParent _pnbcXgafv _pnbcUploadProtocol+              _pnbcAccessToken+              _pnbcUploadType+              _pnbcCallback+              (Just AltJSON)+              _pnbcPayload+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsNotesBatchCreateResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Notes/Create.hs view
@@ -0,0 +1,172 @@+{-# 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.ContainerAnalysis.Projects.Notes.Create+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new note.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.notes.create@.+module Network.Google.Resource.ContainerAnalysis.Projects.Notes.Create+    (+    -- * REST Resource+      ProjectsNotesCreateResource++    -- * Creating a Request+    , projectsNotesCreate+    , ProjectsNotesCreate++    -- * Request Lenses+    , pncParent+    , pncXgafv+    , pncUploadProtocol+    , pncAccessToken+    , pncUploadType+    , pncPayload+    , pncNoteId+    , pncCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.notes.create@ method which the+-- 'ProjectsNotesCreate' request conforms to.+type ProjectsNotesCreateResource =+     "v1beta1" :>+       Capture "parent" Text :>+         "notes" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "noteId" Text :>+                     QueryParam "callback" Text :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] Note :> Post '[JSON] Note++-- | Creates a new note.+--+-- /See:/ 'projectsNotesCreate' smart constructor.+data ProjectsNotesCreate = ProjectsNotesCreate'+    { _pncParent         :: !Text+    , _pncXgafv          :: !(Maybe Xgafv)+    , _pncUploadProtocol :: !(Maybe Text)+    , _pncAccessToken    :: !(Maybe Text)+    , _pncUploadType     :: !(Maybe Text)+    , _pncPayload        :: !Note+    , _pncNoteId         :: !(Maybe Text)+    , _pncCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsNotesCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pncParent'+--+-- * 'pncXgafv'+--+-- * 'pncUploadProtocol'+--+-- * 'pncAccessToken'+--+-- * 'pncUploadType'+--+-- * 'pncPayload'+--+-- * 'pncNoteId'+--+-- * 'pncCallback'+projectsNotesCreate+    :: Text -- ^ 'pncParent'+    -> Note -- ^ 'pncPayload'+    -> ProjectsNotesCreate+projectsNotesCreate pPncParent_ pPncPayload_ =+    ProjectsNotesCreate'+    { _pncParent = pPncParent_+    , _pncXgafv = Nothing+    , _pncUploadProtocol = Nothing+    , _pncAccessToken = Nothing+    , _pncUploadType = Nothing+    , _pncPayload = pPncPayload_+    , _pncNoteId = Nothing+    , _pncCallback = Nothing+    }++-- | The name of the project in the form of \`projects\/[PROJECT_ID]\`, under+-- which the note is to be created.+pncParent :: Lens' ProjectsNotesCreate Text+pncParent+  = lens _pncParent (\ s a -> s{_pncParent = a})++-- | V1 error format.+pncXgafv :: Lens' ProjectsNotesCreate (Maybe Xgafv)+pncXgafv = lens _pncXgafv (\ s a -> s{_pncXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pncUploadProtocol :: Lens' ProjectsNotesCreate (Maybe Text)+pncUploadProtocol+  = lens _pncUploadProtocol+      (\ s a -> s{_pncUploadProtocol = a})++-- | OAuth access token.+pncAccessToken :: Lens' ProjectsNotesCreate (Maybe Text)+pncAccessToken+  = lens _pncAccessToken+      (\ s a -> s{_pncAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pncUploadType :: Lens' ProjectsNotesCreate (Maybe Text)+pncUploadType+  = lens _pncUploadType+      (\ s a -> s{_pncUploadType = a})++-- | Multipart request metadata.+pncPayload :: Lens' ProjectsNotesCreate Note+pncPayload+  = lens _pncPayload (\ s a -> s{_pncPayload = a})++-- | The ID to use for this note.+pncNoteId :: Lens' ProjectsNotesCreate (Maybe Text)+pncNoteId+  = lens _pncNoteId (\ s a -> s{_pncNoteId = a})++-- | JSONP+pncCallback :: Lens' ProjectsNotesCreate (Maybe Text)+pncCallback+  = lens _pncCallback (\ s a -> s{_pncCallback = a})++instance GoogleRequest ProjectsNotesCreate where+        type Rs ProjectsNotesCreate = Note+        type Scopes ProjectsNotesCreate =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsNotesCreate'{..}+          = go _pncParent _pncXgafv _pncUploadProtocol+              _pncAccessToken+              _pncUploadType+              _pncNoteId+              _pncCallback+              (Just AltJSON)+              _pncPayload+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsNotesCreateResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Notes/Delete.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.ContainerAnalysis.Projects.Notes.Delete+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified note.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.notes.delete@.+module Network.Google.Resource.ContainerAnalysis.Projects.Notes.Delete+    (+    -- * REST Resource+      ProjectsNotesDeleteResource++    -- * Creating a Request+    , projectsNotesDelete+    , ProjectsNotesDelete++    -- * Request Lenses+    , pndXgafv+    , pndUploadProtocol+    , pndAccessToken+    , pndUploadType+    , pndName+    , pndCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.notes.delete@ method which the+-- 'ProjectsNotesDelete' request conforms to.+type ProjectsNotesDeleteResource =+     "v1beta1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Empty++-- | Deletes the specified note.+--+-- /See:/ 'projectsNotesDelete' smart constructor.+data ProjectsNotesDelete = ProjectsNotesDelete'+    { _pndXgafv          :: !(Maybe Xgafv)+    , _pndUploadProtocol :: !(Maybe Text)+    , _pndAccessToken    :: !(Maybe Text)+    , _pndUploadType     :: !(Maybe Text)+    , _pndName           :: !Text+    , _pndCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsNotesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pndXgafv'+--+-- * 'pndUploadProtocol'+--+-- * 'pndAccessToken'+--+-- * 'pndUploadType'+--+-- * 'pndName'+--+-- * 'pndCallback'+projectsNotesDelete+    :: Text -- ^ 'pndName'+    -> ProjectsNotesDelete+projectsNotesDelete pPndName_ =+    ProjectsNotesDelete'+    { _pndXgafv = Nothing+    , _pndUploadProtocol = Nothing+    , _pndAccessToken = Nothing+    , _pndUploadType = Nothing+    , _pndName = pPndName_+    , _pndCallback = Nothing+    }++-- | V1 error format.+pndXgafv :: Lens' ProjectsNotesDelete (Maybe Xgafv)+pndXgafv = lens _pndXgafv (\ s a -> s{_pndXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pndUploadProtocol :: Lens' ProjectsNotesDelete (Maybe Text)+pndUploadProtocol+  = lens _pndUploadProtocol+      (\ s a -> s{_pndUploadProtocol = a})++-- | OAuth access token.+pndAccessToken :: Lens' ProjectsNotesDelete (Maybe Text)+pndAccessToken+  = lens _pndAccessToken+      (\ s a -> s{_pndAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pndUploadType :: Lens' ProjectsNotesDelete (Maybe Text)+pndUploadType+  = lens _pndUploadType+      (\ s a -> s{_pndUploadType = a})++-- | The name of the note in the form of+-- \`projects\/[PROVIDER_ID]\/notes\/[NOTE_ID]\`.+pndName :: Lens' ProjectsNotesDelete Text+pndName = lens _pndName (\ s a -> s{_pndName = a})++-- | JSONP+pndCallback :: Lens' ProjectsNotesDelete (Maybe Text)+pndCallback+  = lens _pndCallback (\ s a -> s{_pndCallback = a})++instance GoogleRequest ProjectsNotesDelete where+        type Rs ProjectsNotesDelete = Empty+        type Scopes ProjectsNotesDelete =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsNotesDelete'{..}+          = go _pndName _pndXgafv _pndUploadProtocol+              _pndAccessToken+              _pndUploadType+              _pndCallback+              (Just AltJSON)+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsNotesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Notes/Get.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.ContainerAnalysis.Projects.Notes.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 specified note.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.notes.get@.+module Network.Google.Resource.ContainerAnalysis.Projects.Notes.Get+    (+    -- * REST Resource+      ProjectsNotesGetResource++    -- * Creating a Request+    , projectsNotesGet+    , ProjectsNotesGet++    -- * Request Lenses+    , pngXgafv+    , pngUploadProtocol+    , pngAccessToken+    , pngUploadType+    , pngName+    , pngCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.notes.get@ method which the+-- 'ProjectsNotesGet' request conforms to.+type ProjectsNotesGetResource =+     "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] Note++-- | Gets the specified note.+--+-- /See:/ 'projectsNotesGet' smart constructor.+data ProjectsNotesGet = ProjectsNotesGet'+    { _pngXgafv          :: !(Maybe Xgafv)+    , _pngUploadProtocol :: !(Maybe Text)+    , _pngAccessToken    :: !(Maybe Text)+    , _pngUploadType     :: !(Maybe Text)+    , _pngName           :: !Text+    , _pngCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsNotesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pngXgafv'+--+-- * 'pngUploadProtocol'+--+-- * 'pngAccessToken'+--+-- * 'pngUploadType'+--+-- * 'pngName'+--+-- * 'pngCallback'+projectsNotesGet+    :: Text -- ^ 'pngName'+    -> ProjectsNotesGet+projectsNotesGet pPngName_ =+    ProjectsNotesGet'+    { _pngXgafv = Nothing+    , _pngUploadProtocol = Nothing+    , _pngAccessToken = Nothing+    , _pngUploadType = Nothing+    , _pngName = pPngName_+    , _pngCallback = Nothing+    }++-- | V1 error format.+pngXgafv :: Lens' ProjectsNotesGet (Maybe Xgafv)+pngXgafv = lens _pngXgafv (\ s a -> s{_pngXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pngUploadProtocol :: Lens' ProjectsNotesGet (Maybe Text)+pngUploadProtocol+  = lens _pngUploadProtocol+      (\ s a -> s{_pngUploadProtocol = a})++-- | OAuth access token.+pngAccessToken :: Lens' ProjectsNotesGet (Maybe Text)+pngAccessToken+  = lens _pngAccessToken+      (\ s a -> s{_pngAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pngUploadType :: Lens' ProjectsNotesGet (Maybe Text)+pngUploadType+  = lens _pngUploadType+      (\ s a -> s{_pngUploadType = a})++-- | The name of the note in the form of+-- \`projects\/[PROVIDER_ID]\/notes\/[NOTE_ID]\`.+pngName :: Lens' ProjectsNotesGet Text+pngName = lens _pngName (\ s a -> s{_pngName = a})++-- | JSONP+pngCallback :: Lens' ProjectsNotesGet (Maybe Text)+pngCallback+  = lens _pngCallback (\ s a -> s{_pngCallback = a})++instance GoogleRequest ProjectsNotesGet where+        type Rs ProjectsNotesGet = Note+        type Scopes ProjectsNotesGet =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsNotesGet'{..}+          = go _pngName _pngXgafv _pngUploadProtocol+              _pngAccessToken+              _pngUploadType+              _pngCallback+              (Just AltJSON)+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsNotesGetResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Notes/GetIAMPolicy.hs view
@@ -0,0 +1,176 @@+{-# 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.ContainerAnalysis.Projects.Notes.GetIAMPolicy+-- 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 access control policy for a note or an occurrence resource.+-- Requires \`containeranalysis.notes.setIamPolicy\` or+-- \`containeranalysis.occurrences.setIamPolicy\` permission if the+-- resource is a note or occurrence, respectively. The resource takes the+-- format \`projects\/[PROJECT_ID]\/notes\/[NOTE_ID]\` for notes and+-- \`projects\/[PROJECT_ID]\/occurrences\/[OCCURRENCE_ID]\` for+-- occurrences.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.notes.getIamPolicy@.+module Network.Google.Resource.ContainerAnalysis.Projects.Notes.GetIAMPolicy+    (+    -- * REST Resource+      ProjectsNotesGetIAMPolicyResource++    -- * Creating a Request+    , projectsNotesGetIAMPolicy+    , ProjectsNotesGetIAMPolicy++    -- * Request Lenses+    , pngipXgafv+    , pngipUploadProtocol+    , pngipAccessToken+    , pngipUploadType+    , pngipPayload+    , pngipResource+    , pngipCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.notes.getIamPolicy@ method which the+-- 'ProjectsNotesGetIAMPolicy' request conforms to.+type ProjectsNotesGetIAMPolicyResource =+     "v1beta1" :>+       CaptureMode "resource" "getIamPolicy" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] GetIAMPolicyRequest :>+                       Post '[JSON] Policy++-- | Gets the access control policy for a note or an occurrence resource.+-- Requires \`containeranalysis.notes.setIamPolicy\` or+-- \`containeranalysis.occurrences.setIamPolicy\` permission if the+-- resource is a note or occurrence, respectively. The resource takes the+-- format \`projects\/[PROJECT_ID]\/notes\/[NOTE_ID]\` for notes and+-- \`projects\/[PROJECT_ID]\/occurrences\/[OCCURRENCE_ID]\` for+-- occurrences.+--+-- /See:/ 'projectsNotesGetIAMPolicy' smart constructor.+data ProjectsNotesGetIAMPolicy = ProjectsNotesGetIAMPolicy'+    { _pngipXgafv          :: !(Maybe Xgafv)+    , _pngipUploadProtocol :: !(Maybe Text)+    , _pngipAccessToken    :: !(Maybe Text)+    , _pngipUploadType     :: !(Maybe Text)+    , _pngipPayload        :: !GetIAMPolicyRequest+    , _pngipResource       :: !Text+    , _pngipCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsNotesGetIAMPolicy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pngipXgafv'+--+-- * 'pngipUploadProtocol'+--+-- * 'pngipAccessToken'+--+-- * 'pngipUploadType'+--+-- * 'pngipPayload'+--+-- * 'pngipResource'+--+-- * 'pngipCallback'+projectsNotesGetIAMPolicy+    :: GetIAMPolicyRequest -- ^ 'pngipPayload'+    -> Text -- ^ 'pngipResource'+    -> ProjectsNotesGetIAMPolicy+projectsNotesGetIAMPolicy pPngipPayload_ pPngipResource_ =+    ProjectsNotesGetIAMPolicy'+    { _pngipXgafv = Nothing+    , _pngipUploadProtocol = Nothing+    , _pngipAccessToken = Nothing+    , _pngipUploadType = Nothing+    , _pngipPayload = pPngipPayload_+    , _pngipResource = pPngipResource_+    , _pngipCallback = Nothing+    }++-- | V1 error format.+pngipXgafv :: Lens' ProjectsNotesGetIAMPolicy (Maybe Xgafv)+pngipXgafv+  = lens _pngipXgafv (\ s a -> s{_pngipXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pngipUploadProtocol :: Lens' ProjectsNotesGetIAMPolicy (Maybe Text)+pngipUploadProtocol+  = lens _pngipUploadProtocol+      (\ s a -> s{_pngipUploadProtocol = a})++-- | OAuth access token.+pngipAccessToken :: Lens' ProjectsNotesGetIAMPolicy (Maybe Text)+pngipAccessToken+  = lens _pngipAccessToken+      (\ s a -> s{_pngipAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pngipUploadType :: Lens' ProjectsNotesGetIAMPolicy (Maybe Text)+pngipUploadType+  = lens _pngipUploadType+      (\ s a -> s{_pngipUploadType = a})++-- | Multipart request metadata.+pngipPayload :: Lens' ProjectsNotesGetIAMPolicy GetIAMPolicyRequest+pngipPayload+  = lens _pngipPayload (\ s a -> s{_pngipPayload = a})++-- | REQUIRED: The resource for which the policy is being requested. See the+-- operation documentation for the appropriate value for this field.+pngipResource :: Lens' ProjectsNotesGetIAMPolicy Text+pngipResource+  = lens _pngipResource+      (\ s a -> s{_pngipResource = a})++-- | JSONP+pngipCallback :: Lens' ProjectsNotesGetIAMPolicy (Maybe Text)+pngipCallback+  = lens _pngipCallback+      (\ s a -> s{_pngipCallback = a})++instance GoogleRequest ProjectsNotesGetIAMPolicy+         where+        type Rs ProjectsNotesGetIAMPolicy = Policy+        type Scopes ProjectsNotesGetIAMPolicy =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsNotesGetIAMPolicy'{..}+          = go _pngipResource _pngipXgafv _pngipUploadProtocol+              _pngipAccessToken+              _pngipUploadType+              _pngipCallback+              (Just AltJSON)+              _pngipPayload+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsNotesGetIAMPolicyResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Notes/List.hs view
@@ -0,0 +1,186 @@+{-# 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.ContainerAnalysis.Projects.Notes.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists notes for the specified project.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.notes.list@.+module Network.Google.Resource.ContainerAnalysis.Projects.Notes.List+    (+    -- * REST Resource+      ProjectsNotesListResource++    -- * Creating a Request+    , projectsNotesList+    , ProjectsNotesList++    -- * Request Lenses+    , pnlParent+    , pnlXgafv+    , pnlUploadProtocol+    , pnlAccessToken+    , pnlUploadType+    , pnlFilter+    , pnlPageToken+    , pnlPageSize+    , pnlCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.notes.list@ method which the+-- 'ProjectsNotesList' request conforms to.+type ProjectsNotesListResource =+     "v1beta1" :>+       Capture "parent" Text :>+         "notes" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "pageSize" (Textual Int32) :>+                         QueryParam "callback" Text :>+                           QueryParam "alt" AltJSON :>+                             Get '[JSON] ListNotesResponse++-- | Lists notes for the specified project.+--+-- /See:/ 'projectsNotesList' smart constructor.+data ProjectsNotesList = ProjectsNotesList'+    { _pnlParent         :: !Text+    , _pnlXgafv          :: !(Maybe Xgafv)+    , _pnlUploadProtocol :: !(Maybe Text)+    , _pnlAccessToken    :: !(Maybe Text)+    , _pnlUploadType     :: !(Maybe Text)+    , _pnlFilter         :: !(Maybe Text)+    , _pnlPageToken      :: !(Maybe Text)+    , _pnlPageSize       :: !(Maybe (Textual Int32))+    , _pnlCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsNotesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pnlParent'+--+-- * 'pnlXgafv'+--+-- * 'pnlUploadProtocol'+--+-- * 'pnlAccessToken'+--+-- * 'pnlUploadType'+--+-- * 'pnlFilter'+--+-- * 'pnlPageToken'+--+-- * 'pnlPageSize'+--+-- * 'pnlCallback'+projectsNotesList+    :: Text -- ^ 'pnlParent'+    -> ProjectsNotesList+projectsNotesList pPnlParent_ =+    ProjectsNotesList'+    { _pnlParent = pPnlParent_+    , _pnlXgafv = Nothing+    , _pnlUploadProtocol = Nothing+    , _pnlAccessToken = Nothing+    , _pnlUploadType = Nothing+    , _pnlFilter = Nothing+    , _pnlPageToken = Nothing+    , _pnlPageSize = Nothing+    , _pnlCallback = Nothing+    }++-- | The name of the project to list notes for in the form of+-- \`projects\/[PROJECT_ID]\`.+pnlParent :: Lens' ProjectsNotesList Text+pnlParent+  = lens _pnlParent (\ s a -> s{_pnlParent = a})++-- | V1 error format.+pnlXgafv :: Lens' ProjectsNotesList (Maybe Xgafv)+pnlXgafv = lens _pnlXgafv (\ s a -> s{_pnlXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pnlUploadProtocol :: Lens' ProjectsNotesList (Maybe Text)+pnlUploadProtocol+  = lens _pnlUploadProtocol+      (\ s a -> s{_pnlUploadProtocol = a})++-- | OAuth access token.+pnlAccessToken :: Lens' ProjectsNotesList (Maybe Text)+pnlAccessToken+  = lens _pnlAccessToken+      (\ s a -> s{_pnlAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pnlUploadType :: Lens' ProjectsNotesList (Maybe Text)+pnlUploadType+  = lens _pnlUploadType+      (\ s a -> s{_pnlUploadType = a})++-- | The filter expression.+pnlFilter :: Lens' ProjectsNotesList (Maybe Text)+pnlFilter+  = lens _pnlFilter (\ s a -> s{_pnlFilter = a})++-- | Token to provide to skip to a particular spot in the list.+pnlPageToken :: Lens' ProjectsNotesList (Maybe Text)+pnlPageToken+  = lens _pnlPageToken (\ s a -> s{_pnlPageToken = a})++-- | Number of notes to return in the list. Must be positive. Max allowed+-- page size is 1000. If not specified, page size defaults to 20.+pnlPageSize :: Lens' ProjectsNotesList (Maybe Int32)+pnlPageSize+  = lens _pnlPageSize (\ s a -> s{_pnlPageSize = a}) .+      mapping _Coerce++-- | JSONP+pnlCallback :: Lens' ProjectsNotesList (Maybe Text)+pnlCallback+  = lens _pnlCallback (\ s a -> s{_pnlCallback = a})++instance GoogleRequest ProjectsNotesList where+        type Rs ProjectsNotesList = ListNotesResponse+        type Scopes ProjectsNotesList =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsNotesList'{..}+          = go _pnlParent _pnlXgafv _pnlUploadProtocol+              _pnlAccessToken+              _pnlUploadType+              _pnlFilter+              _pnlPageToken+              _pnlPageSize+              _pnlCallback+              (Just AltJSON)+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsNotesListResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Notes/Occurrences/List.hs view
@@ -0,0 +1,192 @@+{-# 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.ContainerAnalysis.Projects.Notes.Occurrences.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists occurrences referencing the specified note. Provider projects can+-- use this method to get all occurrences across consumer projects+-- referencing the specified note.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.notes.occurrences.list@.+module Network.Google.Resource.ContainerAnalysis.Projects.Notes.Occurrences.List+    (+    -- * REST Resource+      ProjectsNotesOccurrencesListResource++    -- * Creating a Request+    , projectsNotesOccurrencesList+    , ProjectsNotesOccurrencesList++    -- * Request Lenses+    , pnolXgafv+    , pnolUploadProtocol+    , pnolAccessToken+    , pnolUploadType+    , pnolName+    , pnolFilter+    , pnolPageToken+    , pnolPageSize+    , pnolCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.notes.occurrences.list@ method which the+-- 'ProjectsNotesOccurrencesList' request conforms to.+type ProjectsNotesOccurrencesListResource =+     "v1beta1" :>+       Capture "name" Text :>+         "occurrences" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "pageSize" (Textual Int32) :>+                         QueryParam "callback" Text :>+                           QueryParam "alt" AltJSON :>+                             Get '[JSON] ListNoteOccurrencesResponse++-- | Lists occurrences referencing the specified note. Provider projects can+-- use this method to get all occurrences across consumer projects+-- referencing the specified note.+--+-- /See:/ 'projectsNotesOccurrencesList' smart constructor.+data ProjectsNotesOccurrencesList = ProjectsNotesOccurrencesList'+    { _pnolXgafv          :: !(Maybe Xgafv)+    , _pnolUploadProtocol :: !(Maybe Text)+    , _pnolAccessToken    :: !(Maybe Text)+    , _pnolUploadType     :: !(Maybe Text)+    , _pnolName           :: !Text+    , _pnolFilter         :: !(Maybe Text)+    , _pnolPageToken      :: !(Maybe Text)+    , _pnolPageSize       :: !(Maybe (Textual Int32))+    , _pnolCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsNotesOccurrencesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pnolXgafv'+--+-- * 'pnolUploadProtocol'+--+-- * 'pnolAccessToken'+--+-- * 'pnolUploadType'+--+-- * 'pnolName'+--+-- * 'pnolFilter'+--+-- * 'pnolPageToken'+--+-- * 'pnolPageSize'+--+-- * 'pnolCallback'+projectsNotesOccurrencesList+    :: Text -- ^ 'pnolName'+    -> ProjectsNotesOccurrencesList+projectsNotesOccurrencesList pPnolName_ =+    ProjectsNotesOccurrencesList'+    { _pnolXgafv = Nothing+    , _pnolUploadProtocol = Nothing+    , _pnolAccessToken = Nothing+    , _pnolUploadType = Nothing+    , _pnolName = pPnolName_+    , _pnolFilter = Nothing+    , _pnolPageToken = Nothing+    , _pnolPageSize = Nothing+    , _pnolCallback = Nothing+    }++-- | V1 error format.+pnolXgafv :: Lens' ProjectsNotesOccurrencesList (Maybe Xgafv)+pnolXgafv+  = lens _pnolXgafv (\ s a -> s{_pnolXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pnolUploadProtocol :: Lens' ProjectsNotesOccurrencesList (Maybe Text)+pnolUploadProtocol+  = lens _pnolUploadProtocol+      (\ s a -> s{_pnolUploadProtocol = a})++-- | OAuth access token.+pnolAccessToken :: Lens' ProjectsNotesOccurrencesList (Maybe Text)+pnolAccessToken+  = lens _pnolAccessToken+      (\ s a -> s{_pnolAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pnolUploadType :: Lens' ProjectsNotesOccurrencesList (Maybe Text)+pnolUploadType+  = lens _pnolUploadType+      (\ s a -> s{_pnolUploadType = a})++-- | The name of the note to list occurrences for in the form of+-- \`projects\/[PROVIDER_ID]\/notes\/[NOTE_ID]\`.+pnolName :: Lens' ProjectsNotesOccurrencesList Text+pnolName = lens _pnolName (\ s a -> s{_pnolName = a})++-- | The filter expression.+pnolFilter :: Lens' ProjectsNotesOccurrencesList (Maybe Text)+pnolFilter+  = lens _pnolFilter (\ s a -> s{_pnolFilter = a})++-- | Token to provide to skip to a particular spot in the list.+pnolPageToken :: Lens' ProjectsNotesOccurrencesList (Maybe Text)+pnolPageToken+  = lens _pnolPageToken+      (\ s a -> s{_pnolPageToken = a})++-- | Number of occurrences to return in the list.+pnolPageSize :: Lens' ProjectsNotesOccurrencesList (Maybe Int32)+pnolPageSize+  = lens _pnolPageSize (\ s a -> s{_pnolPageSize = a})+      . mapping _Coerce++-- | JSONP+pnolCallback :: Lens' ProjectsNotesOccurrencesList (Maybe Text)+pnolCallback+  = lens _pnolCallback (\ s a -> s{_pnolCallback = a})++instance GoogleRequest ProjectsNotesOccurrencesList+         where+        type Rs ProjectsNotesOccurrencesList =+             ListNoteOccurrencesResponse+        type Scopes ProjectsNotesOccurrencesList =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsNotesOccurrencesList'{..}+          = go _pnolName _pnolXgafv _pnolUploadProtocol+              _pnolAccessToken+              _pnolUploadType+              _pnolFilter+              _pnolPageToken+              _pnolPageSize+              _pnolCallback+              (Just AltJSON)+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsNotesOccurrencesListResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Notes/Patch.hs view
@@ -0,0 +1,171 @@+{-# 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.ContainerAnalysis.Projects.Notes.Patch+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the specified note.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.notes.patch@.+module Network.Google.Resource.ContainerAnalysis.Projects.Notes.Patch+    (+    -- * REST Resource+      ProjectsNotesPatchResource++    -- * Creating a Request+    , projectsNotesPatch+    , ProjectsNotesPatch++    -- * Request Lenses+    , pnpXgafv+    , pnpUploadProtocol+    , pnpUpdateMask+    , pnpAccessToken+    , pnpUploadType+    , pnpPayload+    , pnpName+    , pnpCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.notes.patch@ method which the+-- 'ProjectsNotesPatch' request conforms to.+type ProjectsNotesPatchResource =+     "v1beta1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "updateMask" GFieldMask :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Note :> Patch '[JSON] Note++-- | Updates the specified note.+--+-- /See:/ 'projectsNotesPatch' smart constructor.+data ProjectsNotesPatch = ProjectsNotesPatch'+    { _pnpXgafv          :: !(Maybe Xgafv)+    , _pnpUploadProtocol :: !(Maybe Text)+    , _pnpUpdateMask     :: !(Maybe GFieldMask)+    , _pnpAccessToken    :: !(Maybe Text)+    , _pnpUploadType     :: !(Maybe Text)+    , _pnpPayload        :: !Note+    , _pnpName           :: !Text+    , _pnpCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsNotesPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pnpXgafv'+--+-- * 'pnpUploadProtocol'+--+-- * 'pnpUpdateMask'+--+-- * 'pnpAccessToken'+--+-- * 'pnpUploadType'+--+-- * 'pnpPayload'+--+-- * 'pnpName'+--+-- * 'pnpCallback'+projectsNotesPatch+    :: Note -- ^ 'pnpPayload'+    -> Text -- ^ 'pnpName'+    -> ProjectsNotesPatch+projectsNotesPatch pPnpPayload_ pPnpName_ =+    ProjectsNotesPatch'+    { _pnpXgafv = Nothing+    , _pnpUploadProtocol = Nothing+    , _pnpUpdateMask = Nothing+    , _pnpAccessToken = Nothing+    , _pnpUploadType = Nothing+    , _pnpPayload = pPnpPayload_+    , _pnpName = pPnpName_+    , _pnpCallback = Nothing+    }++-- | V1 error format.+pnpXgafv :: Lens' ProjectsNotesPatch (Maybe Xgafv)+pnpXgafv = lens _pnpXgafv (\ s a -> s{_pnpXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pnpUploadProtocol :: Lens' ProjectsNotesPatch (Maybe Text)+pnpUploadProtocol+  = lens _pnpUploadProtocol+      (\ s a -> s{_pnpUploadProtocol = a})++-- | The fields to update.+pnpUpdateMask :: Lens' ProjectsNotesPatch (Maybe GFieldMask)+pnpUpdateMask+  = lens _pnpUpdateMask+      (\ s a -> s{_pnpUpdateMask = a})++-- | OAuth access token.+pnpAccessToken :: Lens' ProjectsNotesPatch (Maybe Text)+pnpAccessToken+  = lens _pnpAccessToken+      (\ s a -> s{_pnpAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pnpUploadType :: Lens' ProjectsNotesPatch (Maybe Text)+pnpUploadType+  = lens _pnpUploadType+      (\ s a -> s{_pnpUploadType = a})++-- | Multipart request metadata.+pnpPayload :: Lens' ProjectsNotesPatch Note+pnpPayload+  = lens _pnpPayload (\ s a -> s{_pnpPayload = a})++-- | The name of the note in the form of+-- \`projects\/[PROVIDER_ID]\/notes\/[NOTE_ID]\`.+pnpName :: Lens' ProjectsNotesPatch Text+pnpName = lens _pnpName (\ s a -> s{_pnpName = a})++-- | JSONP+pnpCallback :: Lens' ProjectsNotesPatch (Maybe Text)+pnpCallback+  = lens _pnpCallback (\ s a -> s{_pnpCallback = a})++instance GoogleRequest ProjectsNotesPatch where+        type Rs ProjectsNotesPatch = Note+        type Scopes ProjectsNotesPatch =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsNotesPatch'{..}+          = go _pnpName _pnpXgafv _pnpUploadProtocol+              _pnpUpdateMask+              _pnpAccessToken+              _pnpUploadType+              _pnpCallback+              (Just AltJSON)+              _pnpPayload+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsNotesPatchResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Notes/SetIAMPolicy.hs view
@@ -0,0 +1,176 @@+{-# 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.ContainerAnalysis.Projects.Notes.SetIAMPolicy+-- 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)+--+-- Sets the access control policy on the specified note or occurrence.+-- Requires \`containeranalysis.notes.setIamPolicy\` or+-- \`containeranalysis.occurrences.setIamPolicy\` permission if the+-- resource is a note or an occurrence, respectively. The resource takes+-- the format \`projects\/[PROJECT_ID]\/notes\/[NOTE_ID]\` for notes and+-- \`projects\/[PROJECT_ID]\/occurrences\/[OCCURRENCE_ID]\` for+-- occurrences.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.notes.setIamPolicy@.+module Network.Google.Resource.ContainerAnalysis.Projects.Notes.SetIAMPolicy+    (+    -- * REST Resource+      ProjectsNotesSetIAMPolicyResource++    -- * Creating a Request+    , projectsNotesSetIAMPolicy+    , ProjectsNotesSetIAMPolicy++    -- * Request Lenses+    , pnsipXgafv+    , pnsipUploadProtocol+    , pnsipAccessToken+    , pnsipUploadType+    , pnsipPayload+    , pnsipResource+    , pnsipCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.notes.setIamPolicy@ method which the+-- 'ProjectsNotesSetIAMPolicy' request conforms to.+type ProjectsNotesSetIAMPolicyResource =+     "v1beta1" :>+       CaptureMode "resource" "setIamPolicy" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] SetIAMPolicyRequest :>+                       Post '[JSON] Policy++-- | Sets the access control policy on the specified note or occurrence.+-- Requires \`containeranalysis.notes.setIamPolicy\` or+-- \`containeranalysis.occurrences.setIamPolicy\` permission if the+-- resource is a note or an occurrence, respectively. The resource takes+-- the format \`projects\/[PROJECT_ID]\/notes\/[NOTE_ID]\` for notes and+-- \`projects\/[PROJECT_ID]\/occurrences\/[OCCURRENCE_ID]\` for+-- occurrences.+--+-- /See:/ 'projectsNotesSetIAMPolicy' smart constructor.+data ProjectsNotesSetIAMPolicy = ProjectsNotesSetIAMPolicy'+    { _pnsipXgafv          :: !(Maybe Xgafv)+    , _pnsipUploadProtocol :: !(Maybe Text)+    , _pnsipAccessToken    :: !(Maybe Text)+    , _pnsipUploadType     :: !(Maybe Text)+    , _pnsipPayload        :: !SetIAMPolicyRequest+    , _pnsipResource       :: !Text+    , _pnsipCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsNotesSetIAMPolicy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pnsipXgafv'+--+-- * 'pnsipUploadProtocol'+--+-- * 'pnsipAccessToken'+--+-- * 'pnsipUploadType'+--+-- * 'pnsipPayload'+--+-- * 'pnsipResource'+--+-- * 'pnsipCallback'+projectsNotesSetIAMPolicy+    :: SetIAMPolicyRequest -- ^ 'pnsipPayload'+    -> Text -- ^ 'pnsipResource'+    -> ProjectsNotesSetIAMPolicy+projectsNotesSetIAMPolicy pPnsipPayload_ pPnsipResource_ =+    ProjectsNotesSetIAMPolicy'+    { _pnsipXgafv = Nothing+    , _pnsipUploadProtocol = Nothing+    , _pnsipAccessToken = Nothing+    , _pnsipUploadType = Nothing+    , _pnsipPayload = pPnsipPayload_+    , _pnsipResource = pPnsipResource_+    , _pnsipCallback = Nothing+    }++-- | V1 error format.+pnsipXgafv :: Lens' ProjectsNotesSetIAMPolicy (Maybe Xgafv)+pnsipXgafv+  = lens _pnsipXgafv (\ s a -> s{_pnsipXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pnsipUploadProtocol :: Lens' ProjectsNotesSetIAMPolicy (Maybe Text)+pnsipUploadProtocol+  = lens _pnsipUploadProtocol+      (\ s a -> s{_pnsipUploadProtocol = a})++-- | OAuth access token.+pnsipAccessToken :: Lens' ProjectsNotesSetIAMPolicy (Maybe Text)+pnsipAccessToken+  = lens _pnsipAccessToken+      (\ s a -> s{_pnsipAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pnsipUploadType :: Lens' ProjectsNotesSetIAMPolicy (Maybe Text)+pnsipUploadType+  = lens _pnsipUploadType+      (\ s a -> s{_pnsipUploadType = a})++-- | Multipart request metadata.+pnsipPayload :: Lens' ProjectsNotesSetIAMPolicy SetIAMPolicyRequest+pnsipPayload+  = lens _pnsipPayload (\ s a -> s{_pnsipPayload = a})++-- | REQUIRED: The resource for which the policy is being specified. See the+-- operation documentation for the appropriate value for this field.+pnsipResource :: Lens' ProjectsNotesSetIAMPolicy Text+pnsipResource+  = lens _pnsipResource+      (\ s a -> s{_pnsipResource = a})++-- | JSONP+pnsipCallback :: Lens' ProjectsNotesSetIAMPolicy (Maybe Text)+pnsipCallback+  = lens _pnsipCallback+      (\ s a -> s{_pnsipCallback = a})++instance GoogleRequest ProjectsNotesSetIAMPolicy+         where+        type Rs ProjectsNotesSetIAMPolicy = Policy+        type Scopes ProjectsNotesSetIAMPolicy =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsNotesSetIAMPolicy'{..}+          = go _pnsipResource _pnsipXgafv _pnsipUploadProtocol+              _pnsipAccessToken+              _pnsipUploadType+              _pnsipCallback+              (Just AltJSON)+              _pnsipPayload+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsNotesSetIAMPolicyResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Notes/TestIAMPermissions.hs view
@@ -0,0 +1,177 @@+{-# 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.ContainerAnalysis.Projects.Notes.TestIAMPermissions+-- 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)+--+-- Returns the permissions that a caller has on the specified note or+-- occurrence. Requires list permission on the project (for example,+-- \`containeranalysis.notes.list\`). The resource takes the format+-- \`projects\/[PROJECT_ID]\/notes\/[NOTE_ID]\` for notes and+-- \`projects\/[PROJECT_ID]\/occurrences\/[OCCURRENCE_ID]\` for+-- occurrences.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.notes.testIamPermissions@.+module Network.Google.Resource.ContainerAnalysis.Projects.Notes.TestIAMPermissions+    (+    -- * REST Resource+      ProjectsNotesTestIAMPermissionsResource++    -- * Creating a Request+    , projectsNotesTestIAMPermissions+    , ProjectsNotesTestIAMPermissions++    -- * Request Lenses+    , pntipXgafv+    , pntipUploadProtocol+    , pntipAccessToken+    , pntipUploadType+    , pntipPayload+    , pntipResource+    , pntipCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.notes.testIamPermissions@ method which the+-- 'ProjectsNotesTestIAMPermissions' request conforms to.+type ProjectsNotesTestIAMPermissionsResource =+     "v1beta1" :>+       CaptureMode "resource" "testIamPermissions" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] TestIAMPermissionsRequest :>+                       Post '[JSON] TestIAMPermissionsResponse++-- | Returns the permissions that a caller has on the specified note or+-- occurrence. Requires list permission on the project (for example,+-- \`containeranalysis.notes.list\`). The resource takes the format+-- \`projects\/[PROJECT_ID]\/notes\/[NOTE_ID]\` for notes and+-- \`projects\/[PROJECT_ID]\/occurrences\/[OCCURRENCE_ID]\` for+-- occurrences.+--+-- /See:/ 'projectsNotesTestIAMPermissions' smart constructor.+data ProjectsNotesTestIAMPermissions = ProjectsNotesTestIAMPermissions'+    { _pntipXgafv          :: !(Maybe Xgafv)+    , _pntipUploadProtocol :: !(Maybe Text)+    , _pntipAccessToken    :: !(Maybe Text)+    , _pntipUploadType     :: !(Maybe Text)+    , _pntipPayload        :: !TestIAMPermissionsRequest+    , _pntipResource       :: !Text+    , _pntipCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsNotesTestIAMPermissions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pntipXgafv'+--+-- * 'pntipUploadProtocol'+--+-- * 'pntipAccessToken'+--+-- * 'pntipUploadType'+--+-- * 'pntipPayload'+--+-- * 'pntipResource'+--+-- * 'pntipCallback'+projectsNotesTestIAMPermissions+    :: TestIAMPermissionsRequest -- ^ 'pntipPayload'+    -> Text -- ^ 'pntipResource'+    -> ProjectsNotesTestIAMPermissions+projectsNotesTestIAMPermissions pPntipPayload_ pPntipResource_ =+    ProjectsNotesTestIAMPermissions'+    { _pntipXgafv = Nothing+    , _pntipUploadProtocol = Nothing+    , _pntipAccessToken = Nothing+    , _pntipUploadType = Nothing+    , _pntipPayload = pPntipPayload_+    , _pntipResource = pPntipResource_+    , _pntipCallback = Nothing+    }++-- | V1 error format.+pntipXgafv :: Lens' ProjectsNotesTestIAMPermissions (Maybe Xgafv)+pntipXgafv+  = lens _pntipXgafv (\ s a -> s{_pntipXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pntipUploadProtocol :: Lens' ProjectsNotesTestIAMPermissions (Maybe Text)+pntipUploadProtocol+  = lens _pntipUploadProtocol+      (\ s a -> s{_pntipUploadProtocol = a})++-- | OAuth access token.+pntipAccessToken :: Lens' ProjectsNotesTestIAMPermissions (Maybe Text)+pntipAccessToken+  = lens _pntipAccessToken+      (\ s a -> s{_pntipAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pntipUploadType :: Lens' ProjectsNotesTestIAMPermissions (Maybe Text)+pntipUploadType+  = lens _pntipUploadType+      (\ s a -> s{_pntipUploadType = a})++-- | Multipart request metadata.+pntipPayload :: Lens' ProjectsNotesTestIAMPermissions TestIAMPermissionsRequest+pntipPayload+  = lens _pntipPayload (\ s a -> s{_pntipPayload = a})++-- | REQUIRED: The resource for which the policy detail is being requested.+-- See the operation documentation for the appropriate value for this+-- field.+pntipResource :: Lens' ProjectsNotesTestIAMPermissions Text+pntipResource+  = lens _pntipResource+      (\ s a -> s{_pntipResource = a})++-- | JSONP+pntipCallback :: Lens' ProjectsNotesTestIAMPermissions (Maybe Text)+pntipCallback+  = lens _pntipCallback+      (\ s a -> s{_pntipCallback = a})++instance GoogleRequest+         ProjectsNotesTestIAMPermissions where+        type Rs ProjectsNotesTestIAMPermissions =+             TestIAMPermissionsResponse+        type Scopes ProjectsNotesTestIAMPermissions =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsNotesTestIAMPermissions'{..}+          = go _pntipResource _pntipXgafv _pntipUploadProtocol+              _pntipAccessToken+              _pntipUploadType+              _pntipCallback+              (Just AltJSON)+              _pntipPayload+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsNotesTestIAMPermissionsResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Occurrences/BatchCreate.hs view
@@ -0,0 +1,165 @@+{-# 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.ContainerAnalysis.Projects.Occurrences.BatchCreate+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates new occurrences in batch.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.occurrences.batchCreate@.+module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.BatchCreate+    (+    -- * REST Resource+      ProjectsOccurrencesBatchCreateResource++    -- * Creating a Request+    , projectsOccurrencesBatchCreate+    , ProjectsOccurrencesBatchCreate++    -- * Request Lenses+    , pobcParent+    , pobcXgafv+    , pobcUploadProtocol+    , pobcAccessToken+    , pobcUploadType+    , pobcPayload+    , pobcCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.occurrences.batchCreate@ method which the+-- 'ProjectsOccurrencesBatchCreate' request conforms to.+type ProjectsOccurrencesBatchCreateResource =+     "v1beta1" :>+       Capture "parent" Text :>+         "occurrences:batchCreate" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] BatchCreateOccurrencesRequest :>+                         Post '[JSON] BatchCreateOccurrencesResponse++-- | Creates new occurrences in batch.+--+-- /See:/ 'projectsOccurrencesBatchCreate' smart constructor.+data ProjectsOccurrencesBatchCreate = ProjectsOccurrencesBatchCreate'+    { _pobcParent         :: !Text+    , _pobcXgafv          :: !(Maybe Xgafv)+    , _pobcUploadProtocol :: !(Maybe Text)+    , _pobcAccessToken    :: !(Maybe Text)+    , _pobcUploadType     :: !(Maybe Text)+    , _pobcPayload        :: !BatchCreateOccurrencesRequest+    , _pobcCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsOccurrencesBatchCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pobcParent'+--+-- * 'pobcXgafv'+--+-- * 'pobcUploadProtocol'+--+-- * 'pobcAccessToken'+--+-- * 'pobcUploadType'+--+-- * 'pobcPayload'+--+-- * 'pobcCallback'+projectsOccurrencesBatchCreate+    :: Text -- ^ 'pobcParent'+    -> BatchCreateOccurrencesRequest -- ^ 'pobcPayload'+    -> ProjectsOccurrencesBatchCreate+projectsOccurrencesBatchCreate pPobcParent_ pPobcPayload_ =+    ProjectsOccurrencesBatchCreate'+    { _pobcParent = pPobcParent_+    , _pobcXgafv = Nothing+    , _pobcUploadProtocol = Nothing+    , _pobcAccessToken = Nothing+    , _pobcUploadType = Nothing+    , _pobcPayload = pPobcPayload_+    , _pobcCallback = Nothing+    }++-- | The name of the project in the form of \`projects\/[PROJECT_ID]\`, under+-- which the occurrences are to be created.+pobcParent :: Lens' ProjectsOccurrencesBatchCreate Text+pobcParent+  = lens _pobcParent (\ s a -> s{_pobcParent = a})++-- | V1 error format.+pobcXgafv :: Lens' ProjectsOccurrencesBatchCreate (Maybe Xgafv)+pobcXgafv+  = lens _pobcXgafv (\ s a -> s{_pobcXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pobcUploadProtocol :: Lens' ProjectsOccurrencesBatchCreate (Maybe Text)+pobcUploadProtocol+  = lens _pobcUploadProtocol+      (\ s a -> s{_pobcUploadProtocol = a})++-- | OAuth access token.+pobcAccessToken :: Lens' ProjectsOccurrencesBatchCreate (Maybe Text)+pobcAccessToken+  = lens _pobcAccessToken+      (\ s a -> s{_pobcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pobcUploadType :: Lens' ProjectsOccurrencesBatchCreate (Maybe Text)+pobcUploadType+  = lens _pobcUploadType+      (\ s a -> s{_pobcUploadType = a})++-- | Multipart request metadata.+pobcPayload :: Lens' ProjectsOccurrencesBatchCreate BatchCreateOccurrencesRequest+pobcPayload+  = lens _pobcPayload (\ s a -> s{_pobcPayload = a})++-- | JSONP+pobcCallback :: Lens' ProjectsOccurrencesBatchCreate (Maybe Text)+pobcCallback+  = lens _pobcCallback (\ s a -> s{_pobcCallback = a})++instance GoogleRequest ProjectsOccurrencesBatchCreate+         where+        type Rs ProjectsOccurrencesBatchCreate =+             BatchCreateOccurrencesResponse+        type Scopes ProjectsOccurrencesBatchCreate =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsOccurrencesBatchCreate'{..}+          = go _pobcParent _pobcXgafv _pobcUploadProtocol+              _pobcAccessToken+              _pobcUploadType+              _pobcCallback+              (Just AltJSON)+              _pobcPayload+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsOccurrencesBatchCreateResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Occurrences/Create.hs view
@@ -0,0 +1,161 @@+{-# 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.ContainerAnalysis.Projects.Occurrences.Create+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new occurrence.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.occurrences.create@.+module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.Create+    (+    -- * REST Resource+      ProjectsOccurrencesCreateResource++    -- * Creating a Request+    , projectsOccurrencesCreate+    , ProjectsOccurrencesCreate++    -- * Request Lenses+    , pocParent+    , pocXgafv+    , pocUploadProtocol+    , pocAccessToken+    , pocUploadType+    , pocPayload+    , pocCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.occurrences.create@ method which the+-- 'ProjectsOccurrencesCreate' request conforms to.+type ProjectsOccurrencesCreateResource =+     "v1beta1" :>+       Capture "parent" Text :>+         "occurrences" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Occurrence :> Post '[JSON] Occurrence++-- | Creates a new occurrence.+--+-- /See:/ 'projectsOccurrencesCreate' smart constructor.+data ProjectsOccurrencesCreate = ProjectsOccurrencesCreate'+    { _pocParent         :: !Text+    , _pocXgafv          :: !(Maybe Xgafv)+    , _pocUploadProtocol :: !(Maybe Text)+    , _pocAccessToken    :: !(Maybe Text)+    , _pocUploadType     :: !(Maybe Text)+    , _pocPayload        :: !Occurrence+    , _pocCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsOccurrencesCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pocParent'+--+-- * 'pocXgafv'+--+-- * 'pocUploadProtocol'+--+-- * 'pocAccessToken'+--+-- * 'pocUploadType'+--+-- * 'pocPayload'+--+-- * 'pocCallback'+projectsOccurrencesCreate+    :: Text -- ^ 'pocParent'+    -> Occurrence -- ^ 'pocPayload'+    -> ProjectsOccurrencesCreate+projectsOccurrencesCreate pPocParent_ pPocPayload_ =+    ProjectsOccurrencesCreate'+    { _pocParent = pPocParent_+    , _pocXgafv = Nothing+    , _pocUploadProtocol = Nothing+    , _pocAccessToken = Nothing+    , _pocUploadType = Nothing+    , _pocPayload = pPocPayload_+    , _pocCallback = Nothing+    }++-- | The name of the project in the form of \`projects\/[PROJECT_ID]\`, under+-- which the occurrence is to be created.+pocParent :: Lens' ProjectsOccurrencesCreate Text+pocParent+  = lens _pocParent (\ s a -> s{_pocParent = a})++-- | V1 error format.+pocXgafv :: Lens' ProjectsOccurrencesCreate (Maybe Xgafv)+pocXgafv = lens _pocXgafv (\ s a -> s{_pocXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pocUploadProtocol :: Lens' ProjectsOccurrencesCreate (Maybe Text)+pocUploadProtocol+  = lens _pocUploadProtocol+      (\ s a -> s{_pocUploadProtocol = a})++-- | OAuth access token.+pocAccessToken :: Lens' ProjectsOccurrencesCreate (Maybe Text)+pocAccessToken+  = lens _pocAccessToken+      (\ s a -> s{_pocAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pocUploadType :: Lens' ProjectsOccurrencesCreate (Maybe Text)+pocUploadType+  = lens _pocUploadType+      (\ s a -> s{_pocUploadType = a})++-- | Multipart request metadata.+pocPayload :: Lens' ProjectsOccurrencesCreate Occurrence+pocPayload+  = lens _pocPayload (\ s a -> s{_pocPayload = a})++-- | JSONP+pocCallback :: Lens' ProjectsOccurrencesCreate (Maybe Text)+pocCallback+  = lens _pocCallback (\ s a -> s{_pocCallback = a})++instance GoogleRequest ProjectsOccurrencesCreate+         where+        type Rs ProjectsOccurrencesCreate = Occurrence+        type Scopes ProjectsOccurrencesCreate =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsOccurrencesCreate'{..}+          = go _pocParent _pocXgafv _pocUploadProtocol+              _pocAccessToken+              _pocUploadType+              _pocCallback+              (Just AltJSON)+              _pocPayload+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsOccurrencesCreateResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Occurrences/Delete.hs view
@@ -0,0 +1,150 @@+{-# 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.ContainerAnalysis.Projects.Occurrences.Delete+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified occurrence. For example, use this method to delete+-- an occurrence when the occurrence is no longer applicable for the given+-- resource.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.occurrences.delete@.+module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.Delete+    (+    -- * REST Resource+      ProjectsOccurrencesDeleteResource++    -- * Creating a Request+    , projectsOccurrencesDelete+    , ProjectsOccurrencesDelete++    -- * Request Lenses+    , podXgafv+    , podUploadProtocol+    , podAccessToken+    , podUploadType+    , podName+    , podCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.occurrences.delete@ method which the+-- 'ProjectsOccurrencesDelete' request conforms to.+type ProjectsOccurrencesDeleteResource =+     "v1beta1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Empty++-- | Deletes the specified occurrence. For example, use this method to delete+-- an occurrence when the occurrence is no longer applicable for the given+-- resource.+--+-- /See:/ 'projectsOccurrencesDelete' smart constructor.+data ProjectsOccurrencesDelete = ProjectsOccurrencesDelete'+    { _podXgafv          :: !(Maybe Xgafv)+    , _podUploadProtocol :: !(Maybe Text)+    , _podAccessToken    :: !(Maybe Text)+    , _podUploadType     :: !(Maybe Text)+    , _podName           :: !Text+    , _podCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsOccurrencesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'podXgafv'+--+-- * 'podUploadProtocol'+--+-- * 'podAccessToken'+--+-- * 'podUploadType'+--+-- * 'podName'+--+-- * 'podCallback'+projectsOccurrencesDelete+    :: Text -- ^ 'podName'+    -> ProjectsOccurrencesDelete+projectsOccurrencesDelete pPodName_ =+    ProjectsOccurrencesDelete'+    { _podXgafv = Nothing+    , _podUploadProtocol = Nothing+    , _podAccessToken = Nothing+    , _podUploadType = Nothing+    , _podName = pPodName_+    , _podCallback = Nothing+    }++-- | V1 error format.+podXgafv :: Lens' ProjectsOccurrencesDelete (Maybe Xgafv)+podXgafv = lens _podXgafv (\ s a -> s{_podXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+podUploadProtocol :: Lens' ProjectsOccurrencesDelete (Maybe Text)+podUploadProtocol+  = lens _podUploadProtocol+      (\ s a -> s{_podUploadProtocol = a})++-- | OAuth access token.+podAccessToken :: Lens' ProjectsOccurrencesDelete (Maybe Text)+podAccessToken+  = lens _podAccessToken+      (\ s a -> s{_podAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+podUploadType :: Lens' ProjectsOccurrencesDelete (Maybe Text)+podUploadType+  = lens _podUploadType+      (\ s a -> s{_podUploadType = a})++-- | The name of the occurrence in the form of+-- \`projects\/[PROJECT_ID]\/occurrences\/[OCCURRENCE_ID]\`.+podName :: Lens' ProjectsOccurrencesDelete Text+podName = lens _podName (\ s a -> s{_podName = a})++-- | JSONP+podCallback :: Lens' ProjectsOccurrencesDelete (Maybe Text)+podCallback+  = lens _podCallback (\ s a -> s{_podCallback = a})++instance GoogleRequest ProjectsOccurrencesDelete+         where+        type Rs ProjectsOccurrencesDelete = Empty+        type Scopes ProjectsOccurrencesDelete =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsOccurrencesDelete'{..}+          = go _podName _podXgafv _podUploadProtocol+              _podAccessToken+              _podUploadType+              _podCallback+              (Just AltJSON)+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsOccurrencesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Occurrences/Get.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.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 specified occurrence.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.occurrences.get@.+module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.Get+    (+    -- * REST Resource+      ProjectsOccurrencesGetResource++    -- * Creating a Request+    , projectsOccurrencesGet+    , ProjectsOccurrencesGet++    -- * Request Lenses+    , pogXgafv+    , pogUploadProtocol+    , pogAccessToken+    , pogUploadType+    , pogName+    , pogCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.occurrences.get@ method which the+-- 'ProjectsOccurrencesGet' request conforms to.+type ProjectsOccurrencesGetResource =+     "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] Occurrence++-- | Gets the specified occurrence.+--+-- /See:/ 'projectsOccurrencesGet' smart constructor.+data ProjectsOccurrencesGet = ProjectsOccurrencesGet'+    { _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 'ProjectsOccurrencesGet' 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'+projectsOccurrencesGet+    :: Text -- ^ 'pogName'+    -> ProjectsOccurrencesGet+projectsOccurrencesGet pPogName_ =+    ProjectsOccurrencesGet'+    { _pogXgafv = Nothing+    , _pogUploadProtocol = Nothing+    , _pogAccessToken = Nothing+    , _pogUploadType = Nothing+    , _pogName = pPogName_+    , _pogCallback = Nothing+    }++-- | V1 error format.+pogXgafv :: Lens' ProjectsOccurrencesGet (Maybe Xgafv)+pogXgafv = lens _pogXgafv (\ s a -> s{_pogXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pogUploadProtocol :: Lens' ProjectsOccurrencesGet (Maybe Text)+pogUploadProtocol+  = lens _pogUploadProtocol+      (\ s a -> s{_pogUploadProtocol = a})++-- | OAuth access token.+pogAccessToken :: Lens' ProjectsOccurrencesGet (Maybe Text)+pogAccessToken+  = lens _pogAccessToken+      (\ s a -> s{_pogAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pogUploadType :: Lens' ProjectsOccurrencesGet (Maybe Text)+pogUploadType+  = lens _pogUploadType+      (\ s a -> s{_pogUploadType = a})++-- | The name of the occurrence in the form of+-- \`projects\/[PROJECT_ID]\/occurrences\/[OCCURRENCE_ID]\`.+pogName :: Lens' ProjectsOccurrencesGet Text+pogName = lens _pogName (\ s a -> s{_pogName = a})++-- | JSONP+pogCallback :: Lens' ProjectsOccurrencesGet (Maybe Text)+pogCallback+  = lens _pogCallback (\ s a -> s{_pogCallback = a})++instance GoogleRequest ProjectsOccurrencesGet where+        type Rs ProjectsOccurrencesGet = Occurrence+        type Scopes ProjectsOccurrencesGet =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsOccurrencesGet'{..}+          = go _pogName _pogXgafv _pogUploadProtocol+              _pogAccessToken+              _pogUploadType+              _pogCallback+              (Just AltJSON)+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsOccurrencesGetResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Occurrences/GetIAMPolicy.hs view
@@ -0,0 +1,177 @@+{-# 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.ContainerAnalysis.Projects.Occurrences.GetIAMPolicy+-- 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 access control policy for a note or an occurrence resource.+-- Requires \`containeranalysis.notes.setIamPolicy\` or+-- \`containeranalysis.occurrences.setIamPolicy\` permission if the+-- resource is a note or occurrence, respectively. The resource takes the+-- format \`projects\/[PROJECT_ID]\/notes\/[NOTE_ID]\` for notes and+-- \`projects\/[PROJECT_ID]\/occurrences\/[OCCURRENCE_ID]\` for+-- occurrences.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.occurrences.getIamPolicy@.+module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.GetIAMPolicy+    (+    -- * REST Resource+      ProjectsOccurrencesGetIAMPolicyResource++    -- * Creating a Request+    , projectsOccurrencesGetIAMPolicy+    , ProjectsOccurrencesGetIAMPolicy++    -- * Request Lenses+    , pogipXgafv+    , pogipUploadProtocol+    , pogipAccessToken+    , pogipUploadType+    , pogipPayload+    , pogipResource+    , pogipCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.occurrences.getIamPolicy@ method which the+-- 'ProjectsOccurrencesGetIAMPolicy' request conforms to.+type ProjectsOccurrencesGetIAMPolicyResource =+     "v1beta1" :>+       CaptureMode "resource" "getIamPolicy" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] GetIAMPolicyRequest :>+                       Post '[JSON] Policy++-- | Gets the access control policy for a note or an occurrence resource.+-- Requires \`containeranalysis.notes.setIamPolicy\` or+-- \`containeranalysis.occurrences.setIamPolicy\` permission if the+-- resource is a note or occurrence, respectively. The resource takes the+-- format \`projects\/[PROJECT_ID]\/notes\/[NOTE_ID]\` for notes and+-- \`projects\/[PROJECT_ID]\/occurrences\/[OCCURRENCE_ID]\` for+-- occurrences.+--+-- /See:/ 'projectsOccurrencesGetIAMPolicy' smart constructor.+data ProjectsOccurrencesGetIAMPolicy = ProjectsOccurrencesGetIAMPolicy'+    { _pogipXgafv          :: !(Maybe Xgafv)+    , _pogipUploadProtocol :: !(Maybe Text)+    , _pogipAccessToken    :: !(Maybe Text)+    , _pogipUploadType     :: !(Maybe Text)+    , _pogipPayload        :: !GetIAMPolicyRequest+    , _pogipResource       :: !Text+    , _pogipCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsOccurrencesGetIAMPolicy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pogipXgafv'+--+-- * 'pogipUploadProtocol'+--+-- * 'pogipAccessToken'+--+-- * 'pogipUploadType'+--+-- * 'pogipPayload'+--+-- * 'pogipResource'+--+-- * 'pogipCallback'+projectsOccurrencesGetIAMPolicy+    :: GetIAMPolicyRequest -- ^ 'pogipPayload'+    -> Text -- ^ 'pogipResource'+    -> ProjectsOccurrencesGetIAMPolicy+projectsOccurrencesGetIAMPolicy pPogipPayload_ pPogipResource_ =+    ProjectsOccurrencesGetIAMPolicy'+    { _pogipXgafv = Nothing+    , _pogipUploadProtocol = Nothing+    , _pogipAccessToken = Nothing+    , _pogipUploadType = Nothing+    , _pogipPayload = pPogipPayload_+    , _pogipResource = pPogipResource_+    , _pogipCallback = Nothing+    }++-- | V1 error format.+pogipXgafv :: Lens' ProjectsOccurrencesGetIAMPolicy (Maybe Xgafv)+pogipXgafv+  = lens _pogipXgafv (\ s a -> s{_pogipXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pogipUploadProtocol :: Lens' ProjectsOccurrencesGetIAMPolicy (Maybe Text)+pogipUploadProtocol+  = lens _pogipUploadProtocol+      (\ s a -> s{_pogipUploadProtocol = a})++-- | OAuth access token.+pogipAccessToken :: Lens' ProjectsOccurrencesGetIAMPolicy (Maybe Text)+pogipAccessToken+  = lens _pogipAccessToken+      (\ s a -> s{_pogipAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pogipUploadType :: Lens' ProjectsOccurrencesGetIAMPolicy (Maybe Text)+pogipUploadType+  = lens _pogipUploadType+      (\ s a -> s{_pogipUploadType = a})++-- | Multipart request metadata.+pogipPayload :: Lens' ProjectsOccurrencesGetIAMPolicy GetIAMPolicyRequest+pogipPayload+  = lens _pogipPayload (\ s a -> s{_pogipPayload = a})++-- | REQUIRED: The resource for which the policy is being requested. See the+-- operation documentation for the appropriate value for this field.+pogipResource :: Lens' ProjectsOccurrencesGetIAMPolicy Text+pogipResource+  = lens _pogipResource+      (\ s a -> s{_pogipResource = a})++-- | JSONP+pogipCallback :: Lens' ProjectsOccurrencesGetIAMPolicy (Maybe Text)+pogipCallback+  = lens _pogipCallback+      (\ s a -> s{_pogipCallback = a})++instance GoogleRequest+         ProjectsOccurrencesGetIAMPolicy where+        type Rs ProjectsOccurrencesGetIAMPolicy = Policy+        type Scopes ProjectsOccurrencesGetIAMPolicy =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsOccurrencesGetIAMPolicy'{..}+          = go _pogipResource _pogipXgafv _pogipUploadProtocol+              _pogipAccessToken+              _pogipUploadType+              _pogipCallback+              (Just AltJSON)+              _pogipPayload+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsOccurrencesGetIAMPolicyResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Occurrences/GetNotes.hs view
@@ -0,0 +1,150 @@+{-# 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.ContainerAnalysis.Projects.Occurrences.GetNotes+-- 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 note attached to the specified occurrence. Consumer projects+-- can use this method to get a note that belongs to a provider project.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.occurrences.getNotes@.+module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.GetNotes+    (+    -- * REST Resource+      ProjectsOccurrencesGetNotesResource++    -- * Creating a Request+    , projectsOccurrencesGetNotes+    , ProjectsOccurrencesGetNotes++    -- * Request Lenses+    , pognXgafv+    , pognUploadProtocol+    , pognAccessToken+    , pognUploadType+    , pognName+    , pognCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.occurrences.getNotes@ method which the+-- 'ProjectsOccurrencesGetNotes' request conforms to.+type ProjectsOccurrencesGetNotesResource =+     "v1beta1" :>+       Capture "name" Text :>+         "notes" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :> Get '[JSON] Note++-- | Gets the note attached to the specified occurrence. Consumer projects+-- can use this method to get a note that belongs to a provider project.+--+-- /See:/ 'projectsOccurrencesGetNotes' smart constructor.+data ProjectsOccurrencesGetNotes = ProjectsOccurrencesGetNotes'+    { _pognXgafv          :: !(Maybe Xgafv)+    , _pognUploadProtocol :: !(Maybe Text)+    , _pognAccessToken    :: !(Maybe Text)+    , _pognUploadType     :: !(Maybe Text)+    , _pognName           :: !Text+    , _pognCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsOccurrencesGetNotes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pognXgafv'+--+-- * 'pognUploadProtocol'+--+-- * 'pognAccessToken'+--+-- * 'pognUploadType'+--+-- * 'pognName'+--+-- * 'pognCallback'+projectsOccurrencesGetNotes+    :: Text -- ^ 'pognName'+    -> ProjectsOccurrencesGetNotes+projectsOccurrencesGetNotes pPognName_ =+    ProjectsOccurrencesGetNotes'+    { _pognXgafv = Nothing+    , _pognUploadProtocol = Nothing+    , _pognAccessToken = Nothing+    , _pognUploadType = Nothing+    , _pognName = pPognName_+    , _pognCallback = Nothing+    }++-- | V1 error format.+pognXgafv :: Lens' ProjectsOccurrencesGetNotes (Maybe Xgafv)+pognXgafv+  = lens _pognXgafv (\ s a -> s{_pognXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pognUploadProtocol :: Lens' ProjectsOccurrencesGetNotes (Maybe Text)+pognUploadProtocol+  = lens _pognUploadProtocol+      (\ s a -> s{_pognUploadProtocol = a})++-- | OAuth access token.+pognAccessToken :: Lens' ProjectsOccurrencesGetNotes (Maybe Text)+pognAccessToken+  = lens _pognAccessToken+      (\ s a -> s{_pognAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pognUploadType :: Lens' ProjectsOccurrencesGetNotes (Maybe Text)+pognUploadType+  = lens _pognUploadType+      (\ s a -> s{_pognUploadType = a})++-- | The name of the occurrence in the form of+-- \`projects\/[PROJECT_ID]\/occurrences\/[OCCURRENCE_ID]\`.+pognName :: Lens' ProjectsOccurrencesGetNotes Text+pognName = lens _pognName (\ s a -> s{_pognName = a})++-- | JSONP+pognCallback :: Lens' ProjectsOccurrencesGetNotes (Maybe Text)+pognCallback+  = lens _pognCallback (\ s a -> s{_pognCallback = a})++instance GoogleRequest ProjectsOccurrencesGetNotes+         where+        type Rs ProjectsOccurrencesGetNotes = Note+        type Scopes ProjectsOccurrencesGetNotes =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsOccurrencesGetNotes'{..}+          = go _pognName _pognXgafv _pognUploadProtocol+              _pognAccessToken+              _pognUploadType+              _pognCallback+              (Just AltJSON)+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsOccurrencesGetNotesResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Occurrences/GetVulnerabilitySummary.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.ContainerAnalysis.Projects.Occurrences.GetVulnerabilitySummary+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a summary of the number and severity of occurrences.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.occurrences.getVulnerabilitySummary@.+module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.GetVulnerabilitySummary+    (+    -- * REST Resource+      ProjectsOccurrencesGetVulnerabilitySummaryResource++    -- * Creating a Request+    , projectsOccurrencesGetVulnerabilitySummary+    , ProjectsOccurrencesGetVulnerabilitySummary++    -- * Request Lenses+    , pogvsParent+    , pogvsXgafv+    , pogvsUploadProtocol+    , pogvsAccessToken+    , pogvsUploadType+    , pogvsFilter+    , pogvsCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.occurrences.getVulnerabilitySummary@ method which the+-- 'ProjectsOccurrencesGetVulnerabilitySummary' request conforms to.+type ProjectsOccurrencesGetVulnerabilitySummaryResource+     =+     "v1beta1" :>+       Capture "parent" Text :>+         "occurrences:vulnerabilitySummary" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "filter" Text :>+                     QueryParam "callback" Text :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] VulnerabilityOccurrencesSummary++-- | Gets a summary of the number and severity of occurrences.+--+-- /See:/ 'projectsOccurrencesGetVulnerabilitySummary' smart constructor.+data ProjectsOccurrencesGetVulnerabilitySummary = ProjectsOccurrencesGetVulnerabilitySummary'+    { _pogvsParent         :: !Text+    , _pogvsXgafv          :: !(Maybe Xgafv)+    , _pogvsUploadProtocol :: !(Maybe Text)+    , _pogvsAccessToken    :: !(Maybe Text)+    , _pogvsUploadType     :: !(Maybe Text)+    , _pogvsFilter         :: !(Maybe Text)+    , _pogvsCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsOccurrencesGetVulnerabilitySummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pogvsParent'+--+-- * 'pogvsXgafv'+--+-- * 'pogvsUploadProtocol'+--+-- * 'pogvsAccessToken'+--+-- * 'pogvsUploadType'+--+-- * 'pogvsFilter'+--+-- * 'pogvsCallback'+projectsOccurrencesGetVulnerabilitySummary+    :: Text -- ^ 'pogvsParent'+    -> ProjectsOccurrencesGetVulnerabilitySummary+projectsOccurrencesGetVulnerabilitySummary pPogvsParent_ =+    ProjectsOccurrencesGetVulnerabilitySummary'+    { _pogvsParent = pPogvsParent_+    , _pogvsXgafv = Nothing+    , _pogvsUploadProtocol = Nothing+    , _pogvsAccessToken = Nothing+    , _pogvsUploadType = Nothing+    , _pogvsFilter = Nothing+    , _pogvsCallback = Nothing+    }++-- | The name of the project to get a vulnerability summary for in the form+-- of \`projects\/[PROJECT_ID]\`.+pogvsParent :: Lens' ProjectsOccurrencesGetVulnerabilitySummary Text+pogvsParent+  = lens _pogvsParent (\ s a -> s{_pogvsParent = a})++-- | V1 error format.+pogvsXgafv :: Lens' ProjectsOccurrencesGetVulnerabilitySummary (Maybe Xgafv)+pogvsXgafv+  = lens _pogvsXgafv (\ s a -> s{_pogvsXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pogvsUploadProtocol :: Lens' ProjectsOccurrencesGetVulnerabilitySummary (Maybe Text)+pogvsUploadProtocol+  = lens _pogvsUploadProtocol+      (\ s a -> s{_pogvsUploadProtocol = a})++-- | OAuth access token.+pogvsAccessToken :: Lens' ProjectsOccurrencesGetVulnerabilitySummary (Maybe Text)+pogvsAccessToken+  = lens _pogvsAccessToken+      (\ s a -> s{_pogvsAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pogvsUploadType :: Lens' ProjectsOccurrencesGetVulnerabilitySummary (Maybe Text)+pogvsUploadType+  = lens _pogvsUploadType+      (\ s a -> s{_pogvsUploadType = a})++-- | The filter expression.+pogvsFilter :: Lens' ProjectsOccurrencesGetVulnerabilitySummary (Maybe Text)+pogvsFilter+  = lens _pogvsFilter (\ s a -> s{_pogvsFilter = a})++-- | JSONP+pogvsCallback :: Lens' ProjectsOccurrencesGetVulnerabilitySummary (Maybe Text)+pogvsCallback+  = lens _pogvsCallback+      (\ s a -> s{_pogvsCallback = a})++instance GoogleRequest+         ProjectsOccurrencesGetVulnerabilitySummary where+        type Rs ProjectsOccurrencesGetVulnerabilitySummary =+             VulnerabilityOccurrencesSummary+        type Scopes+               ProjectsOccurrencesGetVulnerabilitySummary+             = '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient+          ProjectsOccurrencesGetVulnerabilitySummary'{..}+          = go _pogvsParent _pogvsXgafv _pogvsUploadProtocol+              _pogvsAccessToken+              _pogvsUploadType+              _pogvsFilter+              _pogvsCallback+              (Just AltJSON)+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsOccurrencesGetVulnerabilitySummaryResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Occurrences/List.hs view
@@ -0,0 +1,187 @@+{-# 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.ContainerAnalysis.Projects.Occurrences.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists occurrences for the specified project.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.occurrences.list@.+module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.List+    (+    -- * REST Resource+      ProjectsOccurrencesListResource++    -- * Creating a Request+    , projectsOccurrencesList+    , ProjectsOccurrencesList++    -- * Request Lenses+    , polParent+    , polXgafv+    , polUploadProtocol+    , polAccessToken+    , polUploadType+    , polFilter+    , polPageToken+    , polPageSize+    , polCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.occurrences.list@ method which the+-- 'ProjectsOccurrencesList' request conforms to.+type ProjectsOccurrencesListResource =+     "v1beta1" :>+       Capture "parent" Text :>+         "occurrences" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "pageSize" (Textual Int32) :>+                         QueryParam "callback" Text :>+                           QueryParam "alt" AltJSON :>+                             Get '[JSON] ListOccurrencesResponse++-- | Lists occurrences for the specified project.+--+-- /See:/ 'projectsOccurrencesList' smart constructor.+data ProjectsOccurrencesList = ProjectsOccurrencesList'+    { _polParent         :: !Text+    , _polXgafv          :: !(Maybe Xgafv)+    , _polUploadProtocol :: !(Maybe Text)+    , _polAccessToken    :: !(Maybe Text)+    , _polUploadType     :: !(Maybe Text)+    , _polFilter         :: !(Maybe Text)+    , _polPageToken      :: !(Maybe Text)+    , _polPageSize       :: !(Maybe (Textual Int32))+    , _polCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsOccurrencesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'polParent'+--+-- * 'polXgafv'+--+-- * 'polUploadProtocol'+--+-- * 'polAccessToken'+--+-- * 'polUploadType'+--+-- * 'polFilter'+--+-- * 'polPageToken'+--+-- * 'polPageSize'+--+-- * 'polCallback'+projectsOccurrencesList+    :: Text -- ^ 'polParent'+    -> ProjectsOccurrencesList+projectsOccurrencesList pPolParent_ =+    ProjectsOccurrencesList'+    { _polParent = pPolParent_+    , _polXgafv = Nothing+    , _polUploadProtocol = Nothing+    , _polAccessToken = Nothing+    , _polUploadType = Nothing+    , _polFilter = Nothing+    , _polPageToken = Nothing+    , _polPageSize = Nothing+    , _polCallback = Nothing+    }++-- | The name of the project to list occurrences for in the form of+-- \`projects\/[PROJECT_ID]\`.+polParent :: Lens' ProjectsOccurrencesList Text+polParent+  = lens _polParent (\ s a -> s{_polParent = a})++-- | V1 error format.+polXgafv :: Lens' ProjectsOccurrencesList (Maybe Xgafv)+polXgafv = lens _polXgafv (\ s a -> s{_polXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+polUploadProtocol :: Lens' ProjectsOccurrencesList (Maybe Text)+polUploadProtocol+  = lens _polUploadProtocol+      (\ s a -> s{_polUploadProtocol = a})++-- | OAuth access token.+polAccessToken :: Lens' ProjectsOccurrencesList (Maybe Text)+polAccessToken+  = lens _polAccessToken+      (\ s a -> s{_polAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+polUploadType :: Lens' ProjectsOccurrencesList (Maybe Text)+polUploadType+  = lens _polUploadType+      (\ s a -> s{_polUploadType = a})++-- | The filter expression.+polFilter :: Lens' ProjectsOccurrencesList (Maybe Text)+polFilter+  = lens _polFilter (\ s a -> s{_polFilter = a})++-- | Token to provide to skip to a particular spot in the list.+polPageToken :: Lens' ProjectsOccurrencesList (Maybe Text)+polPageToken+  = lens _polPageToken (\ s a -> s{_polPageToken = a})++-- | Number of occurrences to return in the list. Must be positive. Max+-- allowed page size is 1000. If not specified, page size defaults to 20.+polPageSize :: Lens' ProjectsOccurrencesList (Maybe Int32)+polPageSize+  = lens _polPageSize (\ s a -> s{_polPageSize = a}) .+      mapping _Coerce++-- | JSONP+polCallback :: Lens' ProjectsOccurrencesList (Maybe Text)+polCallback+  = lens _polCallback (\ s a -> s{_polCallback = a})++instance GoogleRequest ProjectsOccurrencesList where+        type Rs ProjectsOccurrencesList =+             ListOccurrencesResponse+        type Scopes ProjectsOccurrencesList =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsOccurrencesList'{..}+          = go _polParent _polXgafv _polUploadProtocol+              _polAccessToken+              _polUploadType+              _polFilter+              _polPageToken+              _polPageSize+              _polCallback+              (Just AltJSON)+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsOccurrencesListResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Occurrences/Patch.hs view
@@ -0,0 +1,172 @@+{-# 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.ContainerAnalysis.Projects.Occurrences.Patch+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the specified occurrence.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.occurrences.patch@.+module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.Patch+    (+    -- * REST Resource+      ProjectsOccurrencesPatchResource++    -- * Creating a Request+    , projectsOccurrencesPatch+    , ProjectsOccurrencesPatch++    -- * Request Lenses+    , popXgafv+    , popUploadProtocol+    , popUpdateMask+    , popAccessToken+    , popUploadType+    , popPayload+    , popName+    , popCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.occurrences.patch@ method which the+-- 'ProjectsOccurrencesPatch' request conforms to.+type ProjectsOccurrencesPatchResource =+     "v1beta1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "updateMask" GFieldMask :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Occurrence :>+                         Patch '[JSON] Occurrence++-- | Updates the specified occurrence.+--+-- /See:/ 'projectsOccurrencesPatch' smart constructor.+data ProjectsOccurrencesPatch = ProjectsOccurrencesPatch'+    { _popXgafv          :: !(Maybe Xgafv)+    , _popUploadProtocol :: !(Maybe Text)+    , _popUpdateMask     :: !(Maybe GFieldMask)+    , _popAccessToken    :: !(Maybe Text)+    , _popUploadType     :: !(Maybe Text)+    , _popPayload        :: !Occurrence+    , _popName           :: !Text+    , _popCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsOccurrencesPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'popXgafv'+--+-- * 'popUploadProtocol'+--+-- * 'popUpdateMask'+--+-- * 'popAccessToken'+--+-- * 'popUploadType'+--+-- * 'popPayload'+--+-- * 'popName'+--+-- * 'popCallback'+projectsOccurrencesPatch+    :: Occurrence -- ^ 'popPayload'+    -> Text -- ^ 'popName'+    -> ProjectsOccurrencesPatch+projectsOccurrencesPatch pPopPayload_ pPopName_ =+    ProjectsOccurrencesPatch'+    { _popXgafv = Nothing+    , _popUploadProtocol = Nothing+    , _popUpdateMask = Nothing+    , _popAccessToken = Nothing+    , _popUploadType = Nothing+    , _popPayload = pPopPayload_+    , _popName = pPopName_+    , _popCallback = Nothing+    }++-- | V1 error format.+popXgafv :: Lens' ProjectsOccurrencesPatch (Maybe Xgafv)+popXgafv = lens _popXgafv (\ s a -> s{_popXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+popUploadProtocol :: Lens' ProjectsOccurrencesPatch (Maybe Text)+popUploadProtocol+  = lens _popUploadProtocol+      (\ s a -> s{_popUploadProtocol = a})++-- | The fields to update.+popUpdateMask :: Lens' ProjectsOccurrencesPatch (Maybe GFieldMask)+popUpdateMask+  = lens _popUpdateMask+      (\ s a -> s{_popUpdateMask = a})++-- | OAuth access token.+popAccessToken :: Lens' ProjectsOccurrencesPatch (Maybe Text)+popAccessToken+  = lens _popAccessToken+      (\ s a -> s{_popAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+popUploadType :: Lens' ProjectsOccurrencesPatch (Maybe Text)+popUploadType+  = lens _popUploadType+      (\ s a -> s{_popUploadType = a})++-- | Multipart request metadata.+popPayload :: Lens' ProjectsOccurrencesPatch Occurrence+popPayload+  = lens _popPayload (\ s a -> s{_popPayload = a})++-- | The name of the occurrence in the form of+-- \`projects\/[PROJECT_ID]\/occurrences\/[OCCURRENCE_ID]\`.+popName :: Lens' ProjectsOccurrencesPatch Text+popName = lens _popName (\ s a -> s{_popName = a})++-- | JSONP+popCallback :: Lens' ProjectsOccurrencesPatch (Maybe Text)+popCallback+  = lens _popCallback (\ s a -> s{_popCallback = a})++instance GoogleRequest ProjectsOccurrencesPatch where+        type Rs ProjectsOccurrencesPatch = Occurrence+        type Scopes ProjectsOccurrencesPatch =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsOccurrencesPatch'{..}+          = go _popName _popXgafv _popUploadProtocol+              _popUpdateMask+              _popAccessToken+              _popUploadType+              _popCallback+              (Just AltJSON)+              _popPayload+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsOccurrencesPatchResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Occurrences/SetIAMPolicy.hs view
@@ -0,0 +1,177 @@+{-# 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.ContainerAnalysis.Projects.Occurrences.SetIAMPolicy+-- 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)+--+-- Sets the access control policy on the specified note or occurrence.+-- Requires \`containeranalysis.notes.setIamPolicy\` or+-- \`containeranalysis.occurrences.setIamPolicy\` permission if the+-- resource is a note or an occurrence, respectively. The resource takes+-- the format \`projects\/[PROJECT_ID]\/notes\/[NOTE_ID]\` for notes and+-- \`projects\/[PROJECT_ID]\/occurrences\/[OCCURRENCE_ID]\` for+-- occurrences.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.occurrences.setIamPolicy@.+module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.SetIAMPolicy+    (+    -- * REST Resource+      ProjectsOccurrencesSetIAMPolicyResource++    -- * Creating a Request+    , projectsOccurrencesSetIAMPolicy+    , ProjectsOccurrencesSetIAMPolicy++    -- * Request Lenses+    , posipXgafv+    , posipUploadProtocol+    , posipAccessToken+    , posipUploadType+    , posipPayload+    , posipResource+    , posipCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.occurrences.setIamPolicy@ method which the+-- 'ProjectsOccurrencesSetIAMPolicy' request conforms to.+type ProjectsOccurrencesSetIAMPolicyResource =+     "v1beta1" :>+       CaptureMode "resource" "setIamPolicy" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] SetIAMPolicyRequest :>+                       Post '[JSON] Policy++-- | Sets the access control policy on the specified note or occurrence.+-- Requires \`containeranalysis.notes.setIamPolicy\` or+-- \`containeranalysis.occurrences.setIamPolicy\` permission if the+-- resource is a note or an occurrence, respectively. The resource takes+-- the format \`projects\/[PROJECT_ID]\/notes\/[NOTE_ID]\` for notes and+-- \`projects\/[PROJECT_ID]\/occurrences\/[OCCURRENCE_ID]\` for+-- occurrences.+--+-- /See:/ 'projectsOccurrencesSetIAMPolicy' smart constructor.+data ProjectsOccurrencesSetIAMPolicy = ProjectsOccurrencesSetIAMPolicy'+    { _posipXgafv          :: !(Maybe Xgafv)+    , _posipUploadProtocol :: !(Maybe Text)+    , _posipAccessToken    :: !(Maybe Text)+    , _posipUploadType     :: !(Maybe Text)+    , _posipPayload        :: !SetIAMPolicyRequest+    , _posipResource       :: !Text+    , _posipCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsOccurrencesSetIAMPolicy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'posipXgafv'+--+-- * 'posipUploadProtocol'+--+-- * 'posipAccessToken'+--+-- * 'posipUploadType'+--+-- * 'posipPayload'+--+-- * 'posipResource'+--+-- * 'posipCallback'+projectsOccurrencesSetIAMPolicy+    :: SetIAMPolicyRequest -- ^ 'posipPayload'+    -> Text -- ^ 'posipResource'+    -> ProjectsOccurrencesSetIAMPolicy+projectsOccurrencesSetIAMPolicy pPosipPayload_ pPosipResource_ =+    ProjectsOccurrencesSetIAMPolicy'+    { _posipXgafv = Nothing+    , _posipUploadProtocol = Nothing+    , _posipAccessToken = Nothing+    , _posipUploadType = Nothing+    , _posipPayload = pPosipPayload_+    , _posipResource = pPosipResource_+    , _posipCallback = Nothing+    }++-- | V1 error format.+posipXgafv :: Lens' ProjectsOccurrencesSetIAMPolicy (Maybe Xgafv)+posipXgafv+  = lens _posipXgafv (\ s a -> s{_posipXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+posipUploadProtocol :: Lens' ProjectsOccurrencesSetIAMPolicy (Maybe Text)+posipUploadProtocol+  = lens _posipUploadProtocol+      (\ s a -> s{_posipUploadProtocol = a})++-- | OAuth access token.+posipAccessToken :: Lens' ProjectsOccurrencesSetIAMPolicy (Maybe Text)+posipAccessToken+  = lens _posipAccessToken+      (\ s a -> s{_posipAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+posipUploadType :: Lens' ProjectsOccurrencesSetIAMPolicy (Maybe Text)+posipUploadType+  = lens _posipUploadType+      (\ s a -> s{_posipUploadType = a})++-- | Multipart request metadata.+posipPayload :: Lens' ProjectsOccurrencesSetIAMPolicy SetIAMPolicyRequest+posipPayload+  = lens _posipPayload (\ s a -> s{_posipPayload = a})++-- | REQUIRED: The resource for which the policy is being specified. See the+-- operation documentation for the appropriate value for this field.+posipResource :: Lens' ProjectsOccurrencesSetIAMPolicy Text+posipResource+  = lens _posipResource+      (\ s a -> s{_posipResource = a})++-- | JSONP+posipCallback :: Lens' ProjectsOccurrencesSetIAMPolicy (Maybe Text)+posipCallback+  = lens _posipCallback+      (\ s a -> s{_posipCallback = a})++instance GoogleRequest+         ProjectsOccurrencesSetIAMPolicy where+        type Rs ProjectsOccurrencesSetIAMPolicy = Policy+        type Scopes ProjectsOccurrencesSetIAMPolicy =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsOccurrencesSetIAMPolicy'{..}+          = go _posipResource _posipXgafv _posipUploadProtocol+              _posipAccessToken+              _posipUploadType+              _posipCallback+              (Just AltJSON)+              _posipPayload+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsOccurrencesSetIAMPolicyResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/Occurrences/TestIAMPermissions.hs view
@@ -0,0 +1,178 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.TestIAMPermissions+-- 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)+--+-- Returns the permissions that a caller has on the specified note or+-- occurrence. Requires list permission on the project (for example,+-- \`containeranalysis.notes.list\`). The resource takes the format+-- \`projects\/[PROJECT_ID]\/notes\/[NOTE_ID]\` for notes and+-- \`projects\/[PROJECT_ID]\/occurrences\/[OCCURRENCE_ID]\` for+-- occurrences.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.occurrences.testIamPermissions@.+module Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.TestIAMPermissions+    (+    -- * REST Resource+      ProjectsOccurrencesTestIAMPermissionsResource++    -- * Creating a Request+    , projectsOccurrencesTestIAMPermissions+    , ProjectsOccurrencesTestIAMPermissions++    -- * Request Lenses+    , potipXgafv+    , potipUploadProtocol+    , potipAccessToken+    , potipUploadType+    , potipPayload+    , potipResource+    , potipCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.occurrences.testIamPermissions@ method which the+-- 'ProjectsOccurrencesTestIAMPermissions' request conforms to.+type ProjectsOccurrencesTestIAMPermissionsResource =+     "v1beta1" :>+       CaptureMode "resource" "testIamPermissions" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] TestIAMPermissionsRequest :>+                       Post '[JSON] TestIAMPermissionsResponse++-- | Returns the permissions that a caller has on the specified note or+-- occurrence. Requires list permission on the project (for example,+-- \`containeranalysis.notes.list\`). The resource takes the format+-- \`projects\/[PROJECT_ID]\/notes\/[NOTE_ID]\` for notes and+-- \`projects\/[PROJECT_ID]\/occurrences\/[OCCURRENCE_ID]\` for+-- occurrences.+--+-- /See:/ 'projectsOccurrencesTestIAMPermissions' smart constructor.+data ProjectsOccurrencesTestIAMPermissions = ProjectsOccurrencesTestIAMPermissions'+    { _potipXgafv          :: !(Maybe Xgafv)+    , _potipUploadProtocol :: !(Maybe Text)+    , _potipAccessToken    :: !(Maybe Text)+    , _potipUploadType     :: !(Maybe Text)+    , _potipPayload        :: !TestIAMPermissionsRequest+    , _potipResource       :: !Text+    , _potipCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsOccurrencesTestIAMPermissions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'potipXgafv'+--+-- * 'potipUploadProtocol'+--+-- * 'potipAccessToken'+--+-- * 'potipUploadType'+--+-- * 'potipPayload'+--+-- * 'potipResource'+--+-- * 'potipCallback'+projectsOccurrencesTestIAMPermissions+    :: TestIAMPermissionsRequest -- ^ 'potipPayload'+    -> Text -- ^ 'potipResource'+    -> ProjectsOccurrencesTestIAMPermissions+projectsOccurrencesTestIAMPermissions pPotipPayload_ pPotipResource_ =+    ProjectsOccurrencesTestIAMPermissions'+    { _potipXgafv = Nothing+    , _potipUploadProtocol = Nothing+    , _potipAccessToken = Nothing+    , _potipUploadType = Nothing+    , _potipPayload = pPotipPayload_+    , _potipResource = pPotipResource_+    , _potipCallback = Nothing+    }++-- | V1 error format.+potipXgafv :: Lens' ProjectsOccurrencesTestIAMPermissions (Maybe Xgafv)+potipXgafv+  = lens _potipXgafv (\ s a -> s{_potipXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+potipUploadProtocol :: Lens' ProjectsOccurrencesTestIAMPermissions (Maybe Text)+potipUploadProtocol+  = lens _potipUploadProtocol+      (\ s a -> s{_potipUploadProtocol = a})++-- | OAuth access token.+potipAccessToken :: Lens' ProjectsOccurrencesTestIAMPermissions (Maybe Text)+potipAccessToken+  = lens _potipAccessToken+      (\ s a -> s{_potipAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+potipUploadType :: Lens' ProjectsOccurrencesTestIAMPermissions (Maybe Text)+potipUploadType+  = lens _potipUploadType+      (\ s a -> s{_potipUploadType = a})++-- | Multipart request metadata.+potipPayload :: Lens' ProjectsOccurrencesTestIAMPermissions TestIAMPermissionsRequest+potipPayload+  = lens _potipPayload (\ s a -> s{_potipPayload = a})++-- | REQUIRED: The resource for which the policy detail is being requested.+-- See the operation documentation for the appropriate value for this+-- field.+potipResource :: Lens' ProjectsOccurrencesTestIAMPermissions Text+potipResource+  = lens _potipResource+      (\ s a -> s{_potipResource = a})++-- | JSONP+potipCallback :: Lens' ProjectsOccurrencesTestIAMPermissions (Maybe Text)+potipCallback+  = lens _potipCallback+      (\ s a -> s{_potipCallback = a})++instance GoogleRequest+         ProjectsOccurrencesTestIAMPermissions where+        type Rs ProjectsOccurrencesTestIAMPermissions =+             TestIAMPermissionsResponse+        type Scopes ProjectsOccurrencesTestIAMPermissions =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient+          ProjectsOccurrencesTestIAMPermissions'{..}+          = go _potipResource _potipXgafv _potipUploadProtocol+              _potipAccessToken+              _potipUploadType+              _potipCallback+              (Just AltJSON)+              _potipPayload+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsOccurrencesTestIAMPermissionsResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/ScanConfigs/Get.hs view
@@ -0,0 +1,146 @@+{-# 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.ContainerAnalysis.Projects.ScanConfigs.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 specified scan configuration.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.scanConfigs.get@.+module Network.Google.Resource.ContainerAnalysis.Projects.ScanConfigs.Get+    (+    -- * REST Resource+      ProjectsScanConfigsGetResource++    -- * Creating a Request+    , projectsScanConfigsGet+    , ProjectsScanConfigsGet++    -- * Request Lenses+    , pscgXgafv+    , pscgUploadProtocol+    , pscgAccessToken+    , pscgUploadType+    , pscgName+    , pscgCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.scanConfigs.get@ method which the+-- 'ProjectsScanConfigsGet' request conforms to.+type ProjectsScanConfigsGetResource =+     "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] ScanConfig++-- | Gets the specified scan configuration.+--+-- /See:/ 'projectsScanConfigsGet' smart constructor.+data ProjectsScanConfigsGet = ProjectsScanConfigsGet'+    { _pscgXgafv          :: !(Maybe Xgafv)+    , _pscgUploadProtocol :: !(Maybe Text)+    , _pscgAccessToken    :: !(Maybe Text)+    , _pscgUploadType     :: !(Maybe Text)+    , _pscgName           :: !Text+    , _pscgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsScanConfigsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pscgXgafv'+--+-- * 'pscgUploadProtocol'+--+-- * 'pscgAccessToken'+--+-- * 'pscgUploadType'+--+-- * 'pscgName'+--+-- * 'pscgCallback'+projectsScanConfigsGet+    :: Text -- ^ 'pscgName'+    -> ProjectsScanConfigsGet+projectsScanConfigsGet pPscgName_ =+    ProjectsScanConfigsGet'+    { _pscgXgafv = Nothing+    , _pscgUploadProtocol = Nothing+    , _pscgAccessToken = Nothing+    , _pscgUploadType = Nothing+    , _pscgName = pPscgName_+    , _pscgCallback = Nothing+    }++-- | V1 error format.+pscgXgafv :: Lens' ProjectsScanConfigsGet (Maybe Xgafv)+pscgXgafv+  = lens _pscgXgafv (\ s a -> s{_pscgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pscgUploadProtocol :: Lens' ProjectsScanConfigsGet (Maybe Text)+pscgUploadProtocol+  = lens _pscgUploadProtocol+      (\ s a -> s{_pscgUploadProtocol = a})++-- | OAuth access token.+pscgAccessToken :: Lens' ProjectsScanConfigsGet (Maybe Text)+pscgAccessToken+  = lens _pscgAccessToken+      (\ s a -> s{_pscgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pscgUploadType :: Lens' ProjectsScanConfigsGet (Maybe Text)+pscgUploadType+  = lens _pscgUploadType+      (\ s a -> s{_pscgUploadType = a})++-- | The name of the scan configuration in the form of+-- \`projects\/[PROJECT_ID]\/scanConfigs\/[SCAN_CONFIG_ID]\`.+pscgName :: Lens' ProjectsScanConfigsGet Text+pscgName = lens _pscgName (\ s a -> s{_pscgName = a})++-- | JSONP+pscgCallback :: Lens' ProjectsScanConfigsGet (Maybe Text)+pscgCallback+  = lens _pscgCallback (\ s a -> s{_pscgCallback = a})++instance GoogleRequest ProjectsScanConfigsGet where+        type Rs ProjectsScanConfigsGet = ScanConfig+        type Scopes ProjectsScanConfigsGet =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsScanConfigsGet'{..}+          = go _pscgName _pscgXgafv _pscgUploadProtocol+              _pscgAccessToken+              _pscgUploadType+              _pscgCallback+              (Just AltJSON)+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsScanConfigsGetResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/ScanConfigs/List.hs view
@@ -0,0 +1,188 @@+{-# 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.ContainerAnalysis.Projects.ScanConfigs.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists scan configurations for the specified project.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.scanConfigs.list@.+module Network.Google.Resource.ContainerAnalysis.Projects.ScanConfigs.List+    (+    -- * REST Resource+      ProjectsScanConfigsListResource++    -- * Creating a Request+    , projectsScanConfigsList+    , ProjectsScanConfigsList++    -- * Request Lenses+    , psclParent+    , psclXgafv+    , psclUploadProtocol+    , psclAccessToken+    , psclUploadType+    , psclFilter+    , psclPageToken+    , psclPageSize+    , psclCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.scanConfigs.list@ method which the+-- 'ProjectsScanConfigsList' request conforms to.+type ProjectsScanConfigsListResource =+     "v1beta1" :>+       Capture "parent" Text :>+         "scanConfigs" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "pageSize" (Textual Int32) :>+                         QueryParam "callback" Text :>+                           QueryParam "alt" AltJSON :>+                             Get '[JSON] ListScanConfigsResponse++-- | Lists scan configurations for the specified project.+--+-- /See:/ 'projectsScanConfigsList' smart constructor.+data ProjectsScanConfigsList = ProjectsScanConfigsList'+    { _psclParent         :: !Text+    , _psclXgafv          :: !(Maybe Xgafv)+    , _psclUploadProtocol :: !(Maybe Text)+    , _psclAccessToken    :: !(Maybe Text)+    , _psclUploadType     :: !(Maybe Text)+    , _psclFilter         :: !(Maybe Text)+    , _psclPageToken      :: !(Maybe Text)+    , _psclPageSize       :: !(Maybe (Textual Int32))+    , _psclCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsScanConfigsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'psclParent'+--+-- * 'psclXgafv'+--+-- * 'psclUploadProtocol'+--+-- * 'psclAccessToken'+--+-- * 'psclUploadType'+--+-- * 'psclFilter'+--+-- * 'psclPageToken'+--+-- * 'psclPageSize'+--+-- * 'psclCallback'+projectsScanConfigsList+    :: Text -- ^ 'psclParent'+    -> ProjectsScanConfigsList+projectsScanConfigsList pPsclParent_ =+    ProjectsScanConfigsList'+    { _psclParent = pPsclParent_+    , _psclXgafv = Nothing+    , _psclUploadProtocol = Nothing+    , _psclAccessToken = Nothing+    , _psclUploadType = Nothing+    , _psclFilter = Nothing+    , _psclPageToken = Nothing+    , _psclPageSize = Nothing+    , _psclCallback = Nothing+    }++-- | The name of the project to list scan configurations for in the form of+-- \`projects\/[PROJECT_ID]\`.+psclParent :: Lens' ProjectsScanConfigsList Text+psclParent+  = lens _psclParent (\ s a -> s{_psclParent = a})++-- | V1 error format.+psclXgafv :: Lens' ProjectsScanConfigsList (Maybe Xgafv)+psclXgafv+  = lens _psclXgafv (\ s a -> s{_psclXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+psclUploadProtocol :: Lens' ProjectsScanConfigsList (Maybe Text)+psclUploadProtocol+  = lens _psclUploadProtocol+      (\ s a -> s{_psclUploadProtocol = a})++-- | OAuth access token.+psclAccessToken :: Lens' ProjectsScanConfigsList (Maybe Text)+psclAccessToken+  = lens _psclAccessToken+      (\ s a -> s{_psclAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+psclUploadType :: Lens' ProjectsScanConfigsList (Maybe Text)+psclUploadType+  = lens _psclUploadType+      (\ s a -> s{_psclUploadType = a})++-- | The filter expression.+psclFilter :: Lens' ProjectsScanConfigsList (Maybe Text)+psclFilter+  = lens _psclFilter (\ s a -> s{_psclFilter = a})++-- | Token to provide to skip to a particular spot in the list.+psclPageToken :: Lens' ProjectsScanConfigsList (Maybe Text)+psclPageToken+  = lens _psclPageToken+      (\ s a -> s{_psclPageToken = a})++-- | The number of scan configs to return in the list.+psclPageSize :: Lens' ProjectsScanConfigsList (Maybe Int32)+psclPageSize+  = lens _psclPageSize (\ s a -> s{_psclPageSize = a})+      . mapping _Coerce++-- | JSONP+psclCallback :: Lens' ProjectsScanConfigsList (Maybe Text)+psclCallback+  = lens _psclCallback (\ s a -> s{_psclCallback = a})++instance GoogleRequest ProjectsScanConfigsList where+        type Rs ProjectsScanConfigsList =+             ListScanConfigsResponse+        type Scopes ProjectsScanConfigsList =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsScanConfigsList'{..}+          = go _psclParent _psclXgafv _psclUploadProtocol+              _psclAccessToken+              _psclUploadType+              _psclFilter+              _psclPageToken+              _psclPageSize+              _psclCallback+              (Just AltJSON)+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsScanConfigsListResource)+                      mempty
+ gen/Network/Google/Resource/ContainerAnalysis/Projects/ScanConfigs/Update.hs view
@@ -0,0 +1,160 @@+{-# 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.ContainerAnalysis.Projects.ScanConfigs.Update+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the specified scan configuration.+--+-- /See:/ <https://cloud.google.com/container-analysis/api/reference/rest/ Container Analysis API Reference> for @containeranalysis.projects.scanConfigs.update@.+module Network.Google.Resource.ContainerAnalysis.Projects.ScanConfigs.Update+    (+    -- * REST Resource+      ProjectsScanConfigsUpdateResource++    -- * Creating a Request+    , projectsScanConfigsUpdate+    , ProjectsScanConfigsUpdate++    -- * Request Lenses+    , pscuXgafv+    , pscuUploadProtocol+    , pscuAccessToken+    , pscuUploadType+    , pscuPayload+    , pscuName+    , pscuCallback+    ) where++import           Network.Google.ContainerAnalysis.Types+import           Network.Google.Prelude++-- | A resource alias for @containeranalysis.projects.scanConfigs.update@ method which the+-- 'ProjectsScanConfigsUpdate' request conforms to.+type ProjectsScanConfigsUpdateResource =+     "v1beta1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] ScanConfig :> Put '[JSON] ScanConfig++-- | Updates the specified scan configuration.+--+-- /See:/ 'projectsScanConfigsUpdate' smart constructor.+data ProjectsScanConfigsUpdate = ProjectsScanConfigsUpdate'+    { _pscuXgafv          :: !(Maybe Xgafv)+    , _pscuUploadProtocol :: !(Maybe Text)+    , _pscuAccessToken    :: !(Maybe Text)+    , _pscuUploadType     :: !(Maybe Text)+    , _pscuPayload        :: !ScanConfig+    , _pscuName           :: !Text+    , _pscuCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsScanConfigsUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pscuXgafv'+--+-- * 'pscuUploadProtocol'+--+-- * 'pscuAccessToken'+--+-- * 'pscuUploadType'+--+-- * 'pscuPayload'+--+-- * 'pscuName'+--+-- * 'pscuCallback'+projectsScanConfigsUpdate+    :: ScanConfig -- ^ 'pscuPayload'+    -> Text -- ^ 'pscuName'+    -> ProjectsScanConfigsUpdate+projectsScanConfigsUpdate pPscuPayload_ pPscuName_ =+    ProjectsScanConfigsUpdate'+    { _pscuXgafv = Nothing+    , _pscuUploadProtocol = Nothing+    , _pscuAccessToken = Nothing+    , _pscuUploadType = Nothing+    , _pscuPayload = pPscuPayload_+    , _pscuName = pPscuName_+    , _pscuCallback = Nothing+    }++-- | V1 error format.+pscuXgafv :: Lens' ProjectsScanConfigsUpdate (Maybe Xgafv)+pscuXgafv+  = lens _pscuXgafv (\ s a -> s{_pscuXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+pscuUploadProtocol :: Lens' ProjectsScanConfigsUpdate (Maybe Text)+pscuUploadProtocol+  = lens _pscuUploadProtocol+      (\ s a -> s{_pscuUploadProtocol = a})++-- | OAuth access token.+pscuAccessToken :: Lens' ProjectsScanConfigsUpdate (Maybe Text)+pscuAccessToken+  = lens _pscuAccessToken+      (\ s a -> s{_pscuAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+pscuUploadType :: Lens' ProjectsScanConfigsUpdate (Maybe Text)+pscuUploadType+  = lens _pscuUploadType+      (\ s a -> s{_pscuUploadType = a})++-- | Multipart request metadata.+pscuPayload :: Lens' ProjectsScanConfigsUpdate ScanConfig+pscuPayload+  = lens _pscuPayload (\ s a -> s{_pscuPayload = a})++-- | The name of the scan configuration in the form of+-- \`projects\/[PROJECT_ID]\/scanConfigs\/[SCAN_CONFIG_ID]\`.+pscuName :: Lens' ProjectsScanConfigsUpdate Text+pscuName = lens _pscuName (\ s a -> s{_pscuName = a})++-- | JSONP+pscuCallback :: Lens' ProjectsScanConfigsUpdate (Maybe Text)+pscuCallback+  = lens _pscuCallback (\ s a -> s{_pscuCallback = a})++instance GoogleRequest ProjectsScanConfigsUpdate+         where+        type Rs ProjectsScanConfigsUpdate = ScanConfig+        type Scopes ProjectsScanConfigsUpdate =+             '["https://www.googleapis.com/auth/cloud-platform"]+        requestClient ProjectsScanConfigsUpdate'{..}+          = go _pscuName _pscuXgafv _pscuUploadProtocol+              _pscuAccessToken+              _pscuUploadType+              _pscuCallback+              (Just AltJSON)+              _pscuPayload+              containerAnalysisService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsScanConfigsUpdateResource)+                      mempty
+ gogol-containeranalysis.cabal view
@@ -0,0 +1,70 @@+name:                  gogol-containeranalysis+version:               0.4.0+synopsis:              Google Container Analysis 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:+    An implementation of the Grafeas API, which stores, and enables querying+    and retrieval of critical metadata about all of your software artifacts.+    .+    /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.ContainerAnalysis+        , Network.Google.ContainerAnalysis.Types+        , Network.Google.Resource.ContainerAnalysis.Projects.Notes.BatchCreate+        , Network.Google.Resource.ContainerAnalysis.Projects.Notes.Create+        , Network.Google.Resource.ContainerAnalysis.Projects.Notes.Delete+        , Network.Google.Resource.ContainerAnalysis.Projects.Notes.Get+        , Network.Google.Resource.ContainerAnalysis.Projects.Notes.GetIAMPolicy+        , Network.Google.Resource.ContainerAnalysis.Projects.Notes.List+        , Network.Google.Resource.ContainerAnalysis.Projects.Notes.Occurrences.List+        , Network.Google.Resource.ContainerAnalysis.Projects.Notes.Patch+        , Network.Google.Resource.ContainerAnalysis.Projects.Notes.SetIAMPolicy+        , Network.Google.Resource.ContainerAnalysis.Projects.Notes.TestIAMPermissions+        , Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.BatchCreate+        , Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.Create+        , Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.Delete+        , Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.Get+        , Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.GetIAMPolicy+        , Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.GetNotes+        , Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.GetVulnerabilitySummary+        , Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.List+        , Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.Patch+        , Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.SetIAMPolicy+        , Network.Google.Resource.ContainerAnalysis.Projects.Occurrences.TestIAMPermissions+        , Network.Google.Resource.ContainerAnalysis.Projects.ScanConfigs.Get+        , Network.Google.Resource.ContainerAnalysis.Projects.ScanConfigs.List+        , Network.Google.Resource.ContainerAnalysis.Projects.ScanConfigs.Update++    other-modules:+          Network.Google.ContainerAnalysis.Types.Product+        , Network.Google.ContainerAnalysis.Types.Sum++    build-depends:+          gogol-core == 0.4.0.*+        , base       >= 4.7 && < 5
+ src/.gitkeep view