packages feed

gogol-binaryauthorization 0.5.0 → 1.0.0

raw patch · 45 files changed

+6484/−3919 lines, 45 filesdep −basedep ~gogol-coresetup-changed

Dependencies removed: base

Dependency ranges changed: gogol-core

Files

README.md view
@@ -8,7 +8,7 @@  ## Version -`0.5.0`+`1.0.0`   ## Description
Setup.hs view
@@ -1,2 +1,3 @@-import           Distribution.Simple+import Distribution.Simple+ main = defaultMain
+ gen/Gogol/BinaryAuthorization.hs view
@@ -0,0 +1,424 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The management interface for Binary Authorization, a service that provides policy-based deployment validation and control for images deployed to Google Kubernetes Engine (GKE), Anthos Service Mesh, Anthos Clusters, and Cloud Run.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference>+module Gogol.BinaryAuthorization+  ( -- * Configuration+    binaryAuthorizationService,++    -- * OAuth Scopes+    CloudPlatform'FullControl,++    -- * Resources++    -- ** binaryauthorization.projects.attestors.create+    BinaryAuthorizationProjectsAttestorsCreateResource,+    BinaryAuthorizationProjectsAttestorsCreate (..),+    newBinaryAuthorizationProjectsAttestorsCreate,++    -- ** binaryauthorization.projects.attestors.delete+    BinaryAuthorizationProjectsAttestorsDeleteResource,+    BinaryAuthorizationProjectsAttestorsDelete (..),+    newBinaryAuthorizationProjectsAttestorsDelete,++    -- ** binaryauthorization.projects.attestors.get+    BinaryAuthorizationProjectsAttestorsGetResource,+    BinaryAuthorizationProjectsAttestorsGet (..),+    newBinaryAuthorizationProjectsAttestorsGet,++    -- ** binaryauthorization.projects.attestors.getIamPolicy+    BinaryAuthorizationProjectsAttestorsGetIamPolicyResource,+    BinaryAuthorizationProjectsAttestorsGetIamPolicy (..),+    newBinaryAuthorizationProjectsAttestorsGetIamPolicy,++    -- ** binaryauthorization.projects.attestors.list+    BinaryAuthorizationProjectsAttestorsListResource,+    BinaryAuthorizationProjectsAttestorsList (..),+    newBinaryAuthorizationProjectsAttestorsList,++    -- ** binaryauthorization.projects.attestors.setIamPolicy+    BinaryAuthorizationProjectsAttestorsSetIamPolicyResource,+    BinaryAuthorizationProjectsAttestorsSetIamPolicy (..),+    newBinaryAuthorizationProjectsAttestorsSetIamPolicy,++    -- ** binaryauthorization.projects.attestors.testIamPermissions+    BinaryAuthorizationProjectsAttestorsTestIamPermissionsResource,+    BinaryAuthorizationProjectsAttestorsTestIamPermissions (..),+    newBinaryAuthorizationProjectsAttestorsTestIamPermissions,++    -- ** binaryauthorization.projects.attestors.update+    BinaryAuthorizationProjectsAttestorsUpdateResource,+    BinaryAuthorizationProjectsAttestorsUpdate (..),+    newBinaryAuthorizationProjectsAttestorsUpdate,++    -- ** binaryauthorization.projects.attestors.validateAttestationOccurrence+    BinaryAuthorizationProjectsAttestorsValidateAttestationOccurrenceResource,+    BinaryAuthorizationProjectsAttestorsValidateAttestationOccurrence (..),+    newBinaryAuthorizationProjectsAttestorsValidateAttestationOccurrence,++    -- ** binaryauthorization.projects.getPolicy+    BinaryAuthorizationProjectsGetPolicyResource,+    BinaryAuthorizationProjectsGetPolicy (..),+    newBinaryAuthorizationProjectsGetPolicy,++    -- ** binaryauthorization.projects.platforms.gke.policies.evaluate+    BinaryAuthorizationProjectsPlatformsGkePoliciesEvaluateResource,+    BinaryAuthorizationProjectsPlatformsGkePoliciesEvaluate (..),+    newBinaryAuthorizationProjectsPlatformsGkePoliciesEvaluate,++    -- ** binaryauthorization.projects.platforms.policies.create+    BinaryAuthorizationProjectsPlatformsPoliciesCreateResource,+    BinaryAuthorizationProjectsPlatformsPoliciesCreate (..),+    newBinaryAuthorizationProjectsPlatformsPoliciesCreate,++    -- ** binaryauthorization.projects.platforms.policies.delete+    BinaryAuthorizationProjectsPlatformsPoliciesDeleteResource,+    BinaryAuthorizationProjectsPlatformsPoliciesDelete (..),+    newBinaryAuthorizationProjectsPlatformsPoliciesDelete,++    -- ** binaryauthorization.projects.platforms.policies.get+    BinaryAuthorizationProjectsPlatformsPoliciesGetResource,+    BinaryAuthorizationProjectsPlatformsPoliciesGet (..),+    newBinaryAuthorizationProjectsPlatformsPoliciesGet,++    -- ** binaryauthorization.projects.platforms.policies.list+    BinaryAuthorizationProjectsPlatformsPoliciesListResource,+    BinaryAuthorizationProjectsPlatformsPoliciesList (..),+    newBinaryAuthorizationProjectsPlatformsPoliciesList,++    -- ** binaryauthorization.projects.platforms.policies.replacePlatformPolicy+    BinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicyResource,+    BinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicy (..),+    newBinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicy,++    -- ** binaryauthorization.projects.policy.getIamPolicy+    BinaryAuthorizationProjectsPolicyGetIamPolicyResource,+    BinaryAuthorizationProjectsPolicyGetIamPolicy (..),+    newBinaryAuthorizationProjectsPolicyGetIamPolicy,++    -- ** binaryauthorization.projects.policy.setIamPolicy+    BinaryAuthorizationProjectsPolicySetIamPolicyResource,+    BinaryAuthorizationProjectsPolicySetIamPolicy (..),+    newBinaryAuthorizationProjectsPolicySetIamPolicy,++    -- ** binaryauthorization.projects.policy.testIamPermissions+    BinaryAuthorizationProjectsPolicyTestIamPermissionsResource,+    BinaryAuthorizationProjectsPolicyTestIamPermissions (..),+    newBinaryAuthorizationProjectsPolicyTestIamPermissions,++    -- ** binaryauthorization.projects.updatePolicy+    BinaryAuthorizationProjectsUpdatePolicyResource,+    BinaryAuthorizationProjectsUpdatePolicy (..),+    newBinaryAuthorizationProjectsUpdatePolicy,++    -- ** binaryauthorization.systempolicy.getPolicy+    BinaryAuthorizationSystempolicyGetPolicyResource,+    BinaryAuthorizationSystempolicyGetPolicy (..),+    newBinaryAuthorizationSystempolicyGetPolicy,++    -- * Types++    -- ** Xgafv+    Xgafv (..),++    -- ** AdmissionRule+    AdmissionRule (..),+    newAdmissionRule,++    -- ** AdmissionRule_EnforcementMode+    AdmissionRule_EnforcementMode (..),++    -- ** AdmissionRule_EvaluationMode+    AdmissionRule_EvaluationMode (..),++    -- ** AdmissionWhitelistPattern+    AdmissionWhitelistPattern (..),+    newAdmissionWhitelistPattern,++    -- ** AllowlistResult+    AllowlistResult (..),+    newAllowlistResult,++    -- ** AttestationAuthenticator+    AttestationAuthenticator (..),+    newAttestationAuthenticator,++    -- ** AttestationOccurrence+    AttestationOccurrence (..),+    newAttestationOccurrence,++    -- ** AttestationSource+    AttestationSource (..),+    newAttestationSource,++    -- ** Attestor+    Attestor (..),+    newAttestor,++    -- ** AttestorPublicKey+    AttestorPublicKey (..),+    newAttestorPublicKey,++    -- ** Binding+    Binding (..),+    newBinding,++    -- ** Check+    Check (..),+    newCheck,++    -- ** CheckResult+    CheckResult (..),+    newCheckResult,++    -- ** CheckResults+    CheckResults (..),+    newCheckResults,++    -- ** CheckSet+    CheckSet (..),+    newCheckSet,++    -- ** CheckSetResult+    CheckSetResult (..),+    newCheckSetResult,++    -- ** Empty+    Empty (..),+    newEmpty,++    -- ** EvaluateGkePolicyRequest+    EvaluateGkePolicyRequest (..),+    newEvaluateGkePolicyRequest,++    -- ** EvaluateGkePolicyRequest_Resource+    EvaluateGkePolicyRequest_Resource (..),+    newEvaluateGkePolicyRequest_Resource,++    -- ** EvaluateGkePolicyResponse+    EvaluateGkePolicyResponse (..),+    newEvaluateGkePolicyResponse,++    -- ** EvaluateGkePolicyResponse_Verdict+    EvaluateGkePolicyResponse_Verdict (..),++    -- ** EvaluationResult+    EvaluationResult (..),+    newEvaluationResult,++    -- ** EvaluationResult_Verdict+    EvaluationResult_Verdict (..),++    -- ** Expr+    Expr (..),+    newExpr,++    -- ** GkePolicy+    GkePolicy (..),+    newGkePolicy,++    -- ** IamPolicy+    IamPolicy (..),+    newIamPolicy,++    -- ** ImageAllowlist+    ImageAllowlist (..),+    newImageAllowlist,++    -- ** ImageFreshnessCheck+    ImageFreshnessCheck (..),+    newImageFreshnessCheck,++    -- ** ImageResult+    ImageResult (..),+    newImageResult,++    -- ** ImageResult_Verdict+    ImageResult_Verdict (..),++    -- ** Jwt+    Jwt (..),+    newJwt,++    -- ** ListAttestorsResponse+    ListAttestorsResponse (..),+    newListAttestorsResponse,++    -- ** ListPlatformPoliciesResponse+    ListPlatformPoliciesResponse (..),+    newListPlatformPoliciesResponse,++    -- ** PkixPublicKey+    PkixPublicKey (..),+    newPkixPublicKey,++    -- ** PkixPublicKey_SignatureAlgorithm+    PkixPublicKey_SignatureAlgorithm (..),++    -- ** PkixPublicKeySet+    PkixPublicKeySet (..),+    newPkixPublicKeySet,++    -- ** PlatformPolicy+    PlatformPolicy (..),+    newPlatformPolicy,++    -- ** PodResult+    PodResult (..),+    newPodResult,++    -- ** PodResult_Verdict+    PodResult_Verdict (..),++    -- ** Policy+    Policy (..),+    newPolicy,++    -- ** Policy_ClusterAdmissionRules+    Policy_ClusterAdmissionRules (..),+    newPolicy_ClusterAdmissionRules,++    -- ** Policy_GlobalPolicyEvaluationMode+    Policy_GlobalPolicyEvaluationMode (..),++    -- ** Policy_IstioServiceIdentityAdmissionRules+    Policy_IstioServiceIdentityAdmissionRules (..),+    newPolicy_IstioServiceIdentityAdmissionRules,++    -- ** Policy_KubernetesNamespaceAdmissionRules+    Policy_KubernetesNamespaceAdmissionRules (..),+    newPolicy_KubernetesNamespaceAdmissionRules,++    -- ** Policy_KubernetesServiceAccountAdmissionRules+    Policy_KubernetesServiceAccountAdmissionRules (..),+    newPolicy_KubernetesServiceAccountAdmissionRules,++    -- ** Scope+    Scope (..),+    newScope,++    -- ** SetIamPolicyRequest+    SetIamPolicyRequest (..),+    newSetIamPolicyRequest,++    -- ** Signature+    Signature (..),+    newSignature,++    -- ** SigstoreAuthority+    SigstoreAuthority (..),+    newSigstoreAuthority,++    -- ** SigstorePublicKey+    SigstorePublicKey (..),+    newSigstorePublicKey,++    -- ** SigstorePublicKeySet+    SigstorePublicKeySet (..),+    newSigstorePublicKeySet,++    -- ** SigstoreSignatureCheck+    SigstoreSignatureCheck (..),+    newSigstoreSignatureCheck,++    -- ** SimpleSigningAttestationCheck+    SimpleSigningAttestationCheck (..),+    newSimpleSigningAttestationCheck,++    -- ** SlsaCheck+    SlsaCheck (..),+    newSlsaCheck,++    -- ** TestIamPermissionsRequest+    TestIamPermissionsRequest (..),+    newTestIamPermissionsRequest,++    -- ** TestIamPermissionsResponse+    TestIamPermissionsResponse (..),+    newTestIamPermissionsResponse,++    -- ** TrustedDirectoryCheck+    TrustedDirectoryCheck (..),+    newTrustedDirectoryCheck,++    -- ** UserOwnedGrafeasNote+    UserOwnedGrafeasNote (..),+    newUserOwnedGrafeasNote,++    -- ** ValidateAttestationOccurrenceRequest+    ValidateAttestationOccurrenceRequest (..),+    newValidateAttestationOccurrenceRequest,++    -- ** ValidateAttestationOccurrenceResponse+    ValidateAttestationOccurrenceResponse (..),+    newValidateAttestationOccurrenceResponse,++    -- ** ValidateAttestationOccurrenceResponse_Result+    ValidateAttestationOccurrenceResponse_Result (..),++    -- ** VerificationRule+    VerificationRule (..),+    newVerificationRule,++    -- ** VerificationRule_TrustedBuilder+    VerificationRule_TrustedBuilder (..),++    -- ** VulnerabilityCheck+    VulnerabilityCheck (..),+    newVulnerabilityCheck,++    -- ** VulnerabilityCheck_MaximumFixableSeverity+    VulnerabilityCheck_MaximumFixableSeverity (..),++    -- ** VulnerabilityCheck_MaximumUnfixableSeverity+    VulnerabilityCheck_MaximumUnfixableSeverity (..),+  )+where++import Gogol.BinaryAuthorization.Projects.Attestors.Create+import Gogol.BinaryAuthorization.Projects.Attestors.Delete+import Gogol.BinaryAuthorization.Projects.Attestors.Get+import Gogol.BinaryAuthorization.Projects.Attestors.GetIamPolicy+import Gogol.BinaryAuthorization.Projects.Attestors.List+import Gogol.BinaryAuthorization.Projects.Attestors.SetIamPolicy+import Gogol.BinaryAuthorization.Projects.Attestors.TestIamPermissions+import Gogol.BinaryAuthorization.Projects.Attestors.Update+import Gogol.BinaryAuthorization.Projects.Attestors.ValidateAttestationOccurrence+import Gogol.BinaryAuthorization.Projects.GetPolicy+import Gogol.BinaryAuthorization.Projects.Platforms.Gke.Policies.Evaluate+import Gogol.BinaryAuthorization.Projects.Platforms.Policies.Create+import Gogol.BinaryAuthorization.Projects.Platforms.Policies.Delete+import Gogol.BinaryAuthorization.Projects.Platforms.Policies.Get+import Gogol.BinaryAuthorization.Projects.Platforms.Policies.List+import Gogol.BinaryAuthorization.Projects.Platforms.Policies.ReplacePlatformPolicy+import Gogol.BinaryAuthorization.Projects.Policy.GetIamPolicy+import Gogol.BinaryAuthorization.Projects.Policy.SetIamPolicy+import Gogol.BinaryAuthorization.Projects.Policy.TestIamPermissions+import Gogol.BinaryAuthorization.Projects.UpdatePolicy+import Gogol.BinaryAuthorization.Systempolicy.GetPolicy+import Gogol.BinaryAuthorization.Types
+ gen/Gogol/BinaryAuthorization/Internal/Product.hs view
@@ -0,0 +1,2374 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Internal.Product+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Gogol.BinaryAuthorization.Internal.Product+  ( -- * AdmissionRule+    AdmissionRule (..),+    newAdmissionRule,++    -- * AdmissionWhitelistPattern+    AdmissionWhitelistPattern (..),+    newAdmissionWhitelistPattern,++    -- * AllowlistResult+    AllowlistResult (..),+    newAllowlistResult,++    -- * AttestationAuthenticator+    AttestationAuthenticator (..),+    newAttestationAuthenticator,++    -- * AttestationOccurrence+    AttestationOccurrence (..),+    newAttestationOccurrence,++    -- * AttestationSource+    AttestationSource (..),+    newAttestationSource,++    -- * Attestor+    Attestor (..),+    newAttestor,++    -- * AttestorPublicKey+    AttestorPublicKey (..),+    newAttestorPublicKey,++    -- * Binding+    Binding (..),+    newBinding,++    -- * Check+    Check (..),+    newCheck,++    -- * CheckResult+    CheckResult (..),+    newCheckResult,++    -- * CheckResults+    CheckResults (..),+    newCheckResults,++    -- * CheckSet+    CheckSet (..),+    newCheckSet,++    -- * CheckSetResult+    CheckSetResult (..),+    newCheckSetResult,++    -- * Empty+    Empty (..),+    newEmpty,++    -- * EvaluateGkePolicyRequest+    EvaluateGkePolicyRequest (..),+    newEvaluateGkePolicyRequest,++    -- * EvaluateGkePolicyRequest_Resource+    EvaluateGkePolicyRequest_Resource (..),+    newEvaluateGkePolicyRequest_Resource,++    -- * EvaluateGkePolicyResponse+    EvaluateGkePolicyResponse (..),+    newEvaluateGkePolicyResponse,++    -- * EvaluationResult+    EvaluationResult (..),+    newEvaluationResult,++    -- * Expr+    Expr (..),+    newExpr,++    -- * GkePolicy+    GkePolicy (..),+    newGkePolicy,++    -- * IamPolicy+    IamPolicy (..),+    newIamPolicy,++    -- * ImageAllowlist+    ImageAllowlist (..),+    newImageAllowlist,++    -- * ImageFreshnessCheck+    ImageFreshnessCheck (..),+    newImageFreshnessCheck,++    -- * ImageResult+    ImageResult (..),+    newImageResult,++    -- * Jwt+    Jwt (..),+    newJwt,++    -- * ListAttestorsResponse+    ListAttestorsResponse (..),+    newListAttestorsResponse,++    -- * ListPlatformPoliciesResponse+    ListPlatformPoliciesResponse (..),+    newListPlatformPoliciesResponse,++    -- * PkixPublicKey+    PkixPublicKey (..),+    newPkixPublicKey,++    -- * PkixPublicKeySet+    PkixPublicKeySet (..),+    newPkixPublicKeySet,++    -- * PlatformPolicy+    PlatformPolicy (..),+    newPlatformPolicy,++    -- * PodResult+    PodResult (..),+    newPodResult,++    -- * Policy+    Policy (..),+    newPolicy,++    -- * Policy_ClusterAdmissionRules+    Policy_ClusterAdmissionRules (..),+    newPolicy_ClusterAdmissionRules,++    -- * Policy_IstioServiceIdentityAdmissionRules+    Policy_IstioServiceIdentityAdmissionRules (..),+    newPolicy_IstioServiceIdentityAdmissionRules,++    -- * Policy_KubernetesNamespaceAdmissionRules+    Policy_KubernetesNamespaceAdmissionRules (..),+    newPolicy_KubernetesNamespaceAdmissionRules,++    -- * Policy_KubernetesServiceAccountAdmissionRules+    Policy_KubernetesServiceAccountAdmissionRules (..),+    newPolicy_KubernetesServiceAccountAdmissionRules,++    -- * Scope+    Scope (..),+    newScope,++    -- * SetIamPolicyRequest+    SetIamPolicyRequest (..),+    newSetIamPolicyRequest,++    -- * Signature+    Signature (..),+    newSignature,++    -- * SigstoreAuthority+    SigstoreAuthority (..),+    newSigstoreAuthority,++    -- * SigstorePublicKey+    SigstorePublicKey (..),+    newSigstorePublicKey,++    -- * SigstorePublicKeySet+    SigstorePublicKeySet (..),+    newSigstorePublicKeySet,++    -- * SigstoreSignatureCheck+    SigstoreSignatureCheck (..),+    newSigstoreSignatureCheck,++    -- * SimpleSigningAttestationCheck+    SimpleSigningAttestationCheck (..),+    newSimpleSigningAttestationCheck,++    -- * SlsaCheck+    SlsaCheck (..),+    newSlsaCheck,++    -- * TestIamPermissionsRequest+    TestIamPermissionsRequest (..),+    newTestIamPermissionsRequest,++    -- * TestIamPermissionsResponse+    TestIamPermissionsResponse (..),+    newTestIamPermissionsResponse,++    -- * TrustedDirectoryCheck+    TrustedDirectoryCheck (..),+    newTrustedDirectoryCheck,++    -- * UserOwnedGrafeasNote+    UserOwnedGrafeasNote (..),+    newUserOwnedGrafeasNote,++    -- * ValidateAttestationOccurrenceRequest+    ValidateAttestationOccurrenceRequest (..),+    newValidateAttestationOccurrenceRequest,++    -- * ValidateAttestationOccurrenceResponse+    ValidateAttestationOccurrenceResponse (..),+    newValidateAttestationOccurrenceResponse,++    -- * VerificationRule+    VerificationRule (..),+    newVerificationRule,++    -- * VulnerabilityCheck+    VulnerabilityCheck (..),+    newVulnerabilityCheck,+  )+where++import Gogol.BinaryAuthorization.Internal.Sum+import Gogol.Prelude qualified as Core++-- | An admission rule specifies either that all container images used in a pod creation request must be attested to by one or more attestors, that all pod creations will be allowed, or that all pod creations will be denied. Images matching an admission allowlist pattern are exempted from admission rules and will never block a pod creation.+--+-- /See:/ 'newAdmissionRule' smart constructor.+data AdmissionRule = AdmissionRule+  { -- | Required. The action when a pod creation is denied by the admission rule.+    enforcementMode :: (Core.Maybe AdmissionRule_EnforcementMode),+    -- | Required. How this admission rule will be evaluated.+    evaluationMode :: (Core.Maybe AdmissionRule_EvaluationMode),+    -- | Optional. The resource names of the attestors that must attest to a container image, in the format @projects\/*\/attestors\/*@. Each attestor must exist before a policy can reference it. To add an attestor to a policy the principal issuing the policy change request must be able to read the attestor resource. Note: this field must be non-empty when the @evaluation_mode@ field specifies @REQUIRE_ATTESTATION@, otherwise it must be empty.+    requireAttestationsBy :: (Core.Maybe [Core.Text])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'AdmissionRule' with the minimum fields required to make a request.+newAdmissionRule ::+  AdmissionRule+newAdmissionRule =+  AdmissionRule+    { enforcementMode = Core.Nothing,+      evaluationMode = Core.Nothing,+      requireAttestationsBy = Core.Nothing+    }++instance Core.FromJSON AdmissionRule where+  parseJSON =+    Core.withObject+      "AdmissionRule"+      ( \o ->+          AdmissionRule+            Core.<$> (o Core..:? "enforcementMode")+            Core.<*> (o Core..:? "evaluationMode")+            Core.<*> (o Core..:? "requireAttestationsBy")+      )++instance Core.ToJSON AdmissionRule where+  toJSON AdmissionRule {..} =+    Core.object+      ( Core.catMaybes+          [ ("enforcementMode" Core..=) Core.<$> enforcementMode,+            ("evaluationMode" Core..=) Core.<$> evaluationMode,+            ("requireAttestationsBy" Core..=) Core.<$> requireAttestationsBy+          ]+      )++-- | An admission allowlist pattern exempts images from checks by admission rules.+--+-- /See:/ 'newAdmissionWhitelistPattern' smart constructor.+newtype AdmissionWhitelistPattern = AdmissionWhitelistPattern+  { -- | An image name pattern to allowlist, in the form @registry\/path\/to\/image@. This supports a trailing @*@ wildcard, but this is allowed only in text after the @registry\/@ part. This also supports a trailing @**@ wildcard which matches subdirectories of a given entry.+    namePattern :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'AdmissionWhitelistPattern' with the minimum fields required to make a request.+newAdmissionWhitelistPattern ::+  AdmissionWhitelistPattern+newAdmissionWhitelistPattern =+  AdmissionWhitelistPattern {namePattern = Core.Nothing}++instance Core.FromJSON AdmissionWhitelistPattern where+  parseJSON =+    Core.withObject+      "AdmissionWhitelistPattern"+      ( \o ->+          AdmissionWhitelistPattern Core.<$> (o Core..:? "namePattern")+      )++instance Core.ToJSON AdmissionWhitelistPattern where+  toJSON AdmissionWhitelistPattern {..} =+    Core.object+      (Core.catMaybes [("namePattern" Core..=) Core.<$> namePattern])++-- | Result of evaluating an image name allowlist.+--+-- /See:/ 'newAllowlistResult' smart constructor.+newtype AllowlistResult = AllowlistResult+  { -- | The allowlist pattern that the image matched.+    matchedPattern :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'AllowlistResult' with the minimum fields required to make a request.+newAllowlistResult ::+  AllowlistResult+newAllowlistResult = AllowlistResult {matchedPattern = Core.Nothing}++instance Core.FromJSON AllowlistResult where+  parseJSON =+    Core.withObject+      "AllowlistResult"+      (\o -> AllowlistResult Core.<$> (o Core..:? "matchedPattern"))++instance Core.ToJSON AllowlistResult where+  toJSON AllowlistResult {..} =+    Core.object+      ( Core.catMaybes+          [("matchedPattern" Core..=) Core.<$> matchedPattern]+      )++-- | An attestation authenticator that will be used to verify attestations. Typically this is just a set of public keys. Conceptually, an authenticator can be treated as always returning either \"authenticated\" or \"not authenticated\" when presented with a signed attestation (almost always assumed to be a <https://github.com/secure-systems-lab/dsse DSSE> attestation). The details of how an authenticator makes this decision are specific to the type of \'authenticator\' that this message wraps.+--+-- /See:/ 'newAttestationAuthenticator' smart constructor.+data AttestationAuthenticator = AttestationAuthenticator+  { -- | Optional. A user-provided name for this @AttestationAuthenticator@. This field has no effect on the policy evaluation behavior except to improve readability of messages in evaluation results.+    displayName :: (Core.Maybe Core.Text),+    -- | Optional. A set of raw PKIX SubjectPublicKeyInfo format public keys. If any public key in the set validates the attestation signature, then the signature is considered authenticated (i.e. any one key is sufficient to authenticate).+    pkixPublicKeySet :: (Core.Maybe PkixPublicKeySet)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'AttestationAuthenticator' with the minimum fields required to make a request.+newAttestationAuthenticator ::+  AttestationAuthenticator+newAttestationAuthenticator =+  AttestationAuthenticator+    { displayName = Core.Nothing,+      pkixPublicKeySet = Core.Nothing+    }++instance Core.FromJSON AttestationAuthenticator where+  parseJSON =+    Core.withObject+      "AttestationAuthenticator"+      ( \o ->+          AttestationAuthenticator+            Core.<$> (o Core..:? "displayName")+            Core.<*> (o Core..:? "pkixPublicKeySet")+      )++instance Core.ToJSON AttestationAuthenticator where+  toJSON AttestationAuthenticator {..} =+    Core.object+      ( Core.catMaybes+          [ ("displayName" Core..=) Core.<$> displayName,+            ("pkixPublicKeySet" Core..=) Core.<$> pkixPublicKeySet+          ]+      )++-- | 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 lookup (how to find this attestation if you already know the authority and artifact to be verified) and intent (for which authority this attestation was intended to sign.+--+-- /See:/ 'newAttestationOccurrence' smart constructor.+data AttestationOccurrence = AttestationOccurrence+  { -- | One or more JWTs encoding a self-contained attestation. Each JWT encodes the payload that it verifies within the JWT itself. Verifier implementation SHOULD ignore the @serialized_payload@ field when verifying these JWTs. If only JWTs are present on this AttestationOccurrence, then the @serialized_payload@ SHOULD be left empty. Each JWT SHOULD encode a claim specific to the @resource_uri@ of this Occurrence, but this is not validated by Grafeas metadata API implementations. The JWT itself is opaque to Grafeas.+    jwts :: (Core.Maybe [Jwt]),+    -- | Required. The serialized payload that is verified by one or more @signatures@.+    serializedPayload :: (Core.Maybe Core.Base64),+    -- | One or more signatures over @serialized_payload@. Verifier implementations should consider this attestation message verified if at least one @signature@ verifies @serialized_payload@. See @Signature@ in common.proto for more details on signature structure and verification.+    signatures :: (Core.Maybe [Signature])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'AttestationOccurrence' with the minimum fields required to make a request.+newAttestationOccurrence ::+  AttestationOccurrence+newAttestationOccurrence =+  AttestationOccurrence+    { jwts = Core.Nothing,+      serializedPayload = Core.Nothing,+      signatures = Core.Nothing+    }++instance Core.FromJSON AttestationOccurrence where+  parseJSON =+    Core.withObject+      "AttestationOccurrence"+      ( \o ->+          AttestationOccurrence+            Core.<$> (o Core..:? "jwts")+            Core.<*> (o Core..:? "serializedPayload")+            Core.<*> (o Core..:? "signatures")+      )++instance Core.ToJSON AttestationOccurrence where+  toJSON AttestationOccurrence {..} =+    Core.object+      ( Core.catMaybes+          [ ("jwts" Core..=) Core.<$> jwts,+            ("serializedPayload" Core..=) Core.<$> serializedPayload,+            ("signatures" Core..=) Core.<$> signatures+          ]+      )++-- | Specifies the locations for fetching the provenance attestations.+--+-- /See:/ 'newAttestationSource' smart constructor.+newtype AttestationSource = AttestationSource+  { -- | The IDs of the Google Cloud projects that store the SLSA attestations as Container Analysis Occurrences, in the format @projects\/[PROJECT_ID]@. Maximum number of @container_analysis_attestation_projects@ allowed in each @AttestationSource@ is 10.+    containerAnalysisAttestationProjects :: (Core.Maybe [Core.Text])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'AttestationSource' with the minimum fields required to make a request.+newAttestationSource ::+  AttestationSource+newAttestationSource =+  AttestationSource+    { containerAnalysisAttestationProjects =+        Core.Nothing+    }++instance Core.FromJSON AttestationSource where+  parseJSON =+    Core.withObject+      "AttestationSource"+      ( \o ->+          AttestationSource+            Core.<$> (o Core..:? "containerAnalysisAttestationProjects")+      )++instance Core.ToJSON AttestationSource where+  toJSON AttestationSource {..} =+    Core.object+      ( Core.catMaybes+          [ ("containerAnalysisAttestationProjects" Core..=)+              Core.<$> containerAnalysisAttestationProjects+          ]+      )++-- | An attestor that attests to container image artifacts. An existing attestor cannot be modified except where indicated.+--+-- /See:/ 'newAttestor' smart constructor.+data Attestor = Attestor+  { -- | Optional. A descriptive comment. This field may be updated. The field may be displayed in chooser dialogs.+    description :: (Core.Maybe Core.Text),+    -- | Optional. A checksum, returned by the server, that can be sent on update requests to ensure the attestor has an up-to-date value before attempting to update it. See https:\/\/google.aip.dev\/154.+    etag :: (Core.Maybe Core.Text),+    -- | Required. The resource name, in the format: @projects\/*\/attestors\/*@. This field may not be updated.+    name :: (Core.Maybe Core.Text),+    -- | Output only. Time when the attestor was last updated.+    updateTime :: (Core.Maybe Core.DateTime),+    -- | This specifies how an attestation will be read, and how it will be used during policy enforcement.+    userOwnedGrafeasNote :: (Core.Maybe UserOwnedGrafeasNote)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Attestor' with the minimum fields required to make a request.+newAttestor ::+  Attestor+newAttestor =+  Attestor+    { description = Core.Nothing,+      etag = Core.Nothing,+      name = Core.Nothing,+      updateTime = Core.Nothing,+      userOwnedGrafeasNote = Core.Nothing+    }++instance Core.FromJSON Attestor where+  parseJSON =+    Core.withObject+      "Attestor"+      ( \o ->+          Attestor+            Core.<$> (o Core..:? "description")+            Core.<*> (o Core..:? "etag")+            Core.<*> (o Core..:? "name")+            Core.<*> (o Core..:? "updateTime")+            Core.<*> (o Core..:? "userOwnedGrafeasNote")+      )++instance Core.ToJSON Attestor where+  toJSON Attestor {..} =+    Core.object+      ( Core.catMaybes+          [ ("description" Core..=) Core.<$> description,+            ("etag" Core..=) Core.<$> etag,+            ("name" Core..=) Core.<$> name,+            ("updateTime" Core..=) Core.<$> updateTime,+            ("userOwnedGrafeasNote" Core..=) Core.<$> userOwnedGrafeasNote+          ]+      )++-- | An attestor public key that will be used to verify attestations signed by this attestor.+--+-- /See:/ 'newAttestorPublicKey' smart constructor.+data AttestorPublicKey = AttestorPublicKey+  { -- | ASCII-armored representation of a PGP public key, as the entire output by the command @gpg --export --armor foo\@example.com@ (either LF or CRLF line endings). When using this field, @id@ should be left blank. The Binary Authorization API handlers will calculate the ID and fill it in automatically. Binary Authorization computes this ID as the OpenPGP RFC4880 V4 fingerprint, represented as upper-case hex. If @id@ is provided by the caller, it will be overwritten by the API-calculated ID.+    asciiArmoredPgpPublicKey :: (Core.Maybe Core.Text),+    -- | Optional. A descriptive comment. This field may be updated.+    comment :: (Core.Maybe Core.Text),+    -- | The ID of this public key. Signatures verified by Binary Authorization must include the ID of the public key that can be used to verify them, and that ID must match the contents of this field exactly. Additional restrictions on this field can be imposed based on which public key type is encapsulated. See the documentation on @public_key@ cases below for details.+    id :: (Core.Maybe Core.Text),+    -- | A raw PKIX SubjectPublicKeyInfo format public key. NOTE: @id@ may be explicitly provided by the caller when using this type of public key, but it MUST be a valid RFC3986 URI. If @id@ is left blank, a default one will be computed based on the digest of the DER encoding of the public key.+    pkixPublicKey :: (Core.Maybe PkixPublicKey)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'AttestorPublicKey' with the minimum fields required to make a request.+newAttestorPublicKey ::+  AttestorPublicKey+newAttestorPublicKey =+  AttestorPublicKey+    { asciiArmoredPgpPublicKey = Core.Nothing,+      comment = Core.Nothing,+      id = Core.Nothing,+      pkixPublicKey = Core.Nothing+    }++instance Core.FromJSON AttestorPublicKey where+  parseJSON =+    Core.withObject+      "AttestorPublicKey"+      ( \o ->+          AttestorPublicKey+            Core.<$> (o Core..:? "asciiArmoredPgpPublicKey")+            Core.<*> (o Core..:? "comment")+            Core.<*> (o Core..:? "id")+            Core.<*> (o Core..:? "pkixPublicKey")+      )++instance Core.ToJSON AttestorPublicKey where+  toJSON AttestorPublicKey {..} =+    Core.object+      ( Core.catMaybes+          [ ("asciiArmoredPgpPublicKey" Core..=)+              Core.<$> asciiArmoredPgpPublicKey,+            ("comment" Core..=) Core.<$> comment,+            ("id" Core..=) Core.<$> id,+            ("pkixPublicKey" Core..=) Core.<$> pkixPublicKey+          ]+      )++-- | Associates @members@, or principals, with a @role@.+--+-- /See:/ 'newBinding' smart constructor.+data Binding = Binding+  { -- | The condition that is associated with this binding. If the condition evaluates to @true@, then this binding applies to the current request. If the condition evaluates to @false@, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the <https://cloud.google.com/iam/help/conditions/resource-policies IAM documentation>.+    condition :: (Core.Maybe Expr),+    -- | Specifies the principals requesting access for a Google Cloud 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. Does not include identities that come from external identity providers (IdPs) through identity federation. * @user:{emailid}@: An email address that represents a specific Google account. For example, @alice\@example.com@ . * @serviceAccount:{emailid}@: An email address that represents a Google service account. For example, @my-other-app\@appspot.gserviceaccount.com@. * @serviceAccount:{projectid}.svc.id.goog[{namespace}\/{kubernetes-sa}]@: An identifier for a <https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts Kubernetes service account>. For example, @my-project.svc.id.goog[my-namespace\/my-kubernetes-sa]@. *+    -- @group:{emailid}@: An email address that represents a Google group. For example, @admins\@example.com@. * @domain:{domain}@: The G Suite domain (primary) that represents all the users of that domain. For example, @google.com@ or @example.com@. * @principal:\/\/iam.googleapis.com\/locations\/global\/workforcePools\/{pool_id}\/subject\/{subject_attribute_value}@: A single identity in a workforce identity pool. * @principalSet:\/\/iam.googleapis.com\/locations\/global\/workforcePools\/{pool_id}\/group\/{group_id}@: All workforce identities in a group. * @principalSet:\/\/iam.googleapis.com\/locations\/global\/workforcePools\/{pool_id}\/attribute.{attribute_name}\/{attribute_value}@: All workforce identities with a specific attribute value. * @principalSet:\/\/iam.googleapis.com\/locations\/global\/workforcePools\/{pool_id}\/*@: All identities in a workforce identity pool. *+    -- @principal:\/\/iam.googleapis.com\/projects\/{project_number}\/locations\/global\/workloadIdentityPools\/{pool_id}\/subject\/{subject_attribute_value}@: A single identity in a workload identity pool. * @principalSet:\/\/iam.googleapis.com\/projects\/{project_number}\/locations\/global\/workloadIdentityPools\/{pool_id}\/group\/{group_id}@: A workload identity pool group. * @principalSet:\/\/iam.googleapis.com\/projects\/{project_number}\/locations\/global\/workloadIdentityPools\/{pool_id}\/attribute.{attribute_name}\/{attribute_value}@: All identities in a workload identity pool with a certain attribute. * @principalSet:\/\/iam.googleapis.com\/projects\/{project_number}\/locations\/global\/workloadIdentityPools\/{pool_id}\/*@: All identities in a workload identity pool. * @deleted:user:{emailid}?uid={uniqueid}@: An email address (plus unique identifier) representing a user that has been recently deleted. For example, @alice\@example.com?uid=123456789012345678901@. If the user is recovered, this value reverts+    -- to @user:{emailid}@ and the recovered user retains the role in the binding. * @deleted:serviceAccount:{emailid}?uid={uniqueid}@: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, @my-other-app\@appspot.gserviceaccount.com?uid=123456789012345678901@. If the service account is undeleted, this value reverts to @serviceAccount:{emailid}@ and the undeleted service account retains the role in the binding. * @deleted:group:{emailid}?uid={uniqueid}@: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, @admins\@example.com?uid=123456789012345678901@. If the group is recovered, this value reverts to @group:{emailid}@ and the recovered group retains the role in the binding. * @deleted:principal:\/\/iam.googleapis.com\/locations\/global\/workforcePools\/{pool_id}\/subject\/{subject_attribute_value}@: Deleted single identity in a workforce identity pool. For example,+    -- @deleted:principal:\/\/iam.googleapis.com\/locations\/global\/workforcePools\/my-pool-id\/subject\/my-subject-attribute-value@.+    members :: (Core.Maybe [Core.Text]),+    -- | Role that is assigned to the list of @members@, or principals. For example, @roles\/viewer@, @roles\/editor@, or @roles\/owner@. For an overview of the IAM roles and permissions, see the <https://cloud.google.com/iam/docs/roles-overview IAM documentation>. For a list of the available pre-defined roles, see <https://cloud.google.com/iam/docs/understanding-roles here>.+    role' :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Binding' with the minimum fields required to make a request.+newBinding ::+  Binding+newBinding =+  Binding+    { condition = Core.Nothing,+      members = Core.Nothing,+      role' = Core.Nothing+    }++instance Core.FromJSON Binding where+  parseJSON =+    Core.withObject+      "Binding"+      ( \o ->+          Binding+            Core.<$> (o Core..:? "condition")+            Core.<*> (o Core..:? "members")+            Core.<*> (o Core..:? "role")+      )++instance Core.ToJSON Binding where+  toJSON Binding {..} =+    Core.object+      ( Core.catMaybes+          [ ("condition" Core..=) Core.<$> condition,+            ("members" Core..=) Core.<$> members,+            ("role" Core..=) Core.<$> role'+          ]+      )++-- | A single check to perform against a Pod. Checks are grouped into @CheckSet@ objects, which are defined by the top-level policy.+--+-- /See:/ 'newCheck' smart constructor.+data Check = Check+  { -- | Optional. A special-case check that always denies. Note that this still only applies when the scope of the @CheckSet@ applies and the image isn\'t exempted by an image allowlist. This check is primarily useful for testing, or to set the default behavior for all unmatched scopes to \"deny\".+    alwaysDeny :: (Core.Maybe Core.Bool),+    -- | Optional. A user-provided name for this check. This field has no effect on the policy evaluation behavior except to improve readability of messages in evaluation results.+    displayName :: (Core.Maybe Core.Text),+    -- | Optional. Images exempted from this check. If any of the patterns match the image url, the check will not be evaluated.+    imageAllowlist :: (Core.Maybe ImageAllowlist),+    -- | Optional. Require that an image is no older than a configured expiration time. Image age is determined by its upload time.+    imageFreshnessCheck :: (Core.Maybe ImageFreshnessCheck),+    -- | Optional. Require that an image was signed by Cosign with a trusted key. This check requires that both the image and signature are stored in Artifact Registry.+    sigstoreSignatureCheck :: (Core.Maybe SigstoreSignatureCheck),+    -- | Optional. Require a SimpleSigning-type attestation for every image in the deployment.+    simpleSigningAttestationCheck :: (Core.Maybe SimpleSigningAttestationCheck),+    -- | Optional. Require that an image was built by a trusted builder (such as Google Cloud Build), meets requirements for Supply chain Levels for Software Artifacts (SLSA), and was built from a trusted source code repostitory.+    slsaCheck :: (Core.Maybe SlsaCheck),+    -- | Optional. Require that an image lives in a trusted directory.+    trustedDirectoryCheck :: (Core.Maybe TrustedDirectoryCheck),+    -- | Optional. Require that an image does not contain vulnerabilities that violate the configured rules, such as based on severity levels.+    vulnerabilityCheck :: (Core.Maybe VulnerabilityCheck)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Check' with the minimum fields required to make a request.+newCheck ::+  Check+newCheck =+  Check+    { alwaysDeny = Core.Nothing,+      displayName = Core.Nothing,+      imageAllowlist = Core.Nothing,+      imageFreshnessCheck = Core.Nothing,+      sigstoreSignatureCheck = Core.Nothing,+      simpleSigningAttestationCheck = Core.Nothing,+      slsaCheck = Core.Nothing,+      trustedDirectoryCheck = Core.Nothing,+      vulnerabilityCheck = Core.Nothing+    }++instance Core.FromJSON Check where+  parseJSON =+    Core.withObject+      "Check"+      ( \o ->+          Check+            Core.<$> (o Core..:? "alwaysDeny")+            Core.<*> (o Core..:? "displayName")+            Core.<*> (o Core..:? "imageAllowlist")+            Core.<*> (o Core..:? "imageFreshnessCheck")+            Core.<*> (o Core..:? "sigstoreSignatureCheck")+            Core.<*> (o Core..:? "simpleSigningAttestationCheck")+            Core.<*> (o Core..:? "slsaCheck")+            Core.<*> (o Core..:? "trustedDirectoryCheck")+            Core.<*> (o Core..:? "vulnerabilityCheck")+      )++instance Core.ToJSON Check where+  toJSON Check {..} =+    Core.object+      ( Core.catMaybes+          [ ("alwaysDeny" Core..=) Core.<$> alwaysDeny,+            ("displayName" Core..=) Core.<$> displayName,+            ("imageAllowlist" Core..=) Core.<$> imageAllowlist,+            ("imageFreshnessCheck" Core..=) Core.<$> imageFreshnessCheck,+            ("sigstoreSignatureCheck" Core..=) Core.<$> sigstoreSignatureCheck,+            ("simpleSigningAttestationCheck" Core..=)+              Core.<$> simpleSigningAttestationCheck,+            ("slsaCheck" Core..=) Core.<$> slsaCheck,+            ("trustedDirectoryCheck" Core..=) Core.<$> trustedDirectoryCheck,+            ("vulnerabilityCheck" Core..=) Core.<$> vulnerabilityCheck+          ]+      )++-- | Result of evaluating one check.+--+-- /See:/ 'newCheckResult' smart constructor.+data CheckResult = CheckResult+  { -- | If the image was exempted by an allow_pattern in the check, contains the pattern that the image name matched.+    allowlistResult :: (Core.Maybe AllowlistResult),+    -- | The name of the check.+    displayName :: (Core.Maybe Core.Text),+    -- | If a check was evaluated, contains the result of the check.+    evaluationResult :: (Core.Maybe EvaluationResult),+    -- | Explanation of this check result.+    explanation :: (Core.Maybe Core.Text),+    -- | The index of the check.+    index :: (Core.Maybe Core.Int64),+    -- | The type of the check.+    type' :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CheckResult' with the minimum fields required to make a request.+newCheckResult ::+  CheckResult+newCheckResult =+  CheckResult+    { allowlistResult = Core.Nothing,+      displayName = Core.Nothing,+      evaluationResult = Core.Nothing,+      explanation = Core.Nothing,+      index = Core.Nothing,+      type' = Core.Nothing+    }++instance Core.FromJSON CheckResult where+  parseJSON =+    Core.withObject+      "CheckResult"+      ( \o ->+          CheckResult+            Core.<$> (o Core..:? "allowlistResult")+            Core.<*> (o Core..:? "displayName")+            Core.<*> (o Core..:? "evaluationResult")+            Core.<*> (o Core..:? "explanation")+            Core.<*> (o Core..:? "index" Core.<&> Core.fmap Core.fromAsText)+            Core.<*> (o Core..:? "type")+      )++instance Core.ToJSON CheckResult where+  toJSON CheckResult {..} =+    Core.object+      ( Core.catMaybes+          [ ("allowlistResult" Core..=) Core.<$> allowlistResult,+            ("displayName" Core..=) Core.<$> displayName,+            ("evaluationResult" Core..=) Core.<$> evaluationResult,+            ("explanation" Core..=) Core.<$> explanation,+            ("index" Core..=) Core.. Core.AsText Core.<$> index,+            ("type" Core..=) Core.<$> type'+          ]+      )++-- | Result of evaluating one or more checks.+--+-- /See:/ 'newCheckResults' smart constructor.+newtype CheckResults = CheckResults+  { -- | Per-check details.+    results :: (Core.Maybe [CheckResult])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CheckResults' with the minimum fields required to make a request.+newCheckResults ::+  CheckResults+newCheckResults = CheckResults {results = Core.Nothing}++instance Core.FromJSON CheckResults where+  parseJSON =+    Core.withObject+      "CheckResults"+      (\o -> CheckResults Core.<$> (o Core..:? "results"))++instance Core.ToJSON CheckResults where+  toJSON CheckResults {..} =+    Core.object+      (Core.catMaybes [("results" Core..=) Core.<$> results])++-- | A conjunction of policy checks, scoped to a particular namespace or Kubernetes service account. In order for evaluation of a @CheckSet@ to return \"allowed\" for a given image in a given Pod, one of the following conditions must be satisfied: * The image is explicitly exempted by an entry in @image_allowlist@, OR * ALL of the @checks@ evaluate to \"allowed\".+--+-- /See:/ 'newCheckSet' smart constructor.+data CheckSet = CheckSet+  { -- | Optional. The checks to apply. The ultimate result of evaluating the check set will be \"allow\" if and only if every check in @checks@ evaluates to \"allow\". If @checks@ is empty, the default behavior is \"always allow\".+    checks :: (Core.Maybe [Check]),+    -- | Optional. A user-provided name for this @CheckSet@. This field has no effect on the policy evaluation behavior except to improve readability of messages in evaluation results.+    displayName :: (Core.Maybe Core.Text),+    -- | Optional. Images exempted from this @CheckSet@. If any of the patterns match the image being evaluated, no checks in the @CheckSet@ will be evaluated.+    imageAllowlist :: (Core.Maybe ImageAllowlist),+    -- | Optional. The scope to which this @CheckSet@ applies. If unset or an empty string (the default), applies to all namespaces and service accounts. See the @Scope@ message documentation for details on scoping rules.+    scope :: (Core.Maybe Scope)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CheckSet' with the minimum fields required to make a request.+newCheckSet ::+  CheckSet+newCheckSet =+  CheckSet+    { checks = Core.Nothing,+      displayName = Core.Nothing,+      imageAllowlist = Core.Nothing,+      scope = Core.Nothing+    }++instance Core.FromJSON CheckSet where+  parseJSON =+    Core.withObject+      "CheckSet"+      ( \o ->+          CheckSet+            Core.<$> (o Core..:? "checks")+            Core.<*> (o Core..:? "displayName")+            Core.<*> (o Core..:? "imageAllowlist")+            Core.<*> (o Core..:? "scope")+      )++instance Core.ToJSON CheckSet where+  toJSON CheckSet {..} =+    Core.object+      ( Core.catMaybes+          [ ("checks" Core..=) Core.<$> checks,+            ("displayName" Core..=) Core.<$> displayName,+            ("imageAllowlist" Core..=) Core.<$> imageAllowlist,+            ("scope" Core..=) Core.<$> scope+          ]+      )++-- | Result of evaluating one check set.+--+-- /See:/ 'newCheckSetResult' smart constructor.+data CheckSetResult = CheckSetResult+  { -- | If the image was exempted by an allow_pattern in the check set, contains the pattern that the image name matched.+    allowlistResult :: (Core.Maybe AllowlistResult),+    -- | If checks were evaluated, contains the results of evaluating each check.+    checkResults :: (Core.Maybe CheckResults),+    -- | The name of the check set.+    displayName :: (Core.Maybe Core.Text),+    -- | Explanation of this check set result. Only populated if no checks were evaluated.+    explanation :: (Core.Maybe Core.Text),+    -- | The index of the check set.+    index :: (Core.Maybe Core.Int64),+    -- | The scope of the check set.+    scope :: (Core.Maybe Scope)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CheckSetResult' with the minimum fields required to make a request.+newCheckSetResult ::+  CheckSetResult+newCheckSetResult =+  CheckSetResult+    { allowlistResult = Core.Nothing,+      checkResults = Core.Nothing,+      displayName = Core.Nothing,+      explanation = Core.Nothing,+      index = Core.Nothing,+      scope = Core.Nothing+    }++instance Core.FromJSON CheckSetResult where+  parseJSON =+    Core.withObject+      "CheckSetResult"+      ( \o ->+          CheckSetResult+            Core.<$> (o Core..:? "allowlistResult")+            Core.<*> (o Core..:? "checkResults")+            Core.<*> (o Core..:? "displayName")+            Core.<*> (o Core..:? "explanation")+            Core.<*> (o Core..:? "index" Core.<&> Core.fmap Core.fromAsText)+            Core.<*> (o Core..:? "scope")+      )++instance Core.ToJSON CheckSetResult where+  toJSON CheckSetResult {..} =+    Core.object+      ( Core.catMaybes+          [ ("allowlistResult" Core..=) Core.<$> allowlistResult,+            ("checkResults" Core..=) Core.<$> checkResults,+            ("displayName" Core..=) Core.<$> displayName,+            ("explanation" Core..=) Core.<$> explanation,+            ("index" Core..=) Core.. Core.AsText Core.<$> index,+            ("scope" Core..=) Core.<$> scope+          ]+      )++-- | 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); }+--+-- /See:/ 'newEmpty' smart constructor.+data Empty = Empty+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Empty' with the minimum fields required to make a request.+newEmpty ::+  Empty+newEmpty = Empty++instance Core.FromJSON Empty where+  parseJSON = Core.withObject "Empty" (\o -> Core.pure Empty)++instance Core.ToJSON Empty where+  toJSON = Core.const Core.emptyObject++-- | Request message for PlatformPolicyEvaluationService.EvaluateGkePolicy.+--+-- /See:/ 'newEvaluateGkePolicyRequest' smart constructor.+newtype EvaluateGkePolicyRequest = EvaluateGkePolicyRequest+  { -- | Required. JSON or YAML blob representing a Kubernetes resource.+    resource :: (Core.Maybe EvaluateGkePolicyRequest_Resource)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'EvaluateGkePolicyRequest' with the minimum fields required to make a request.+newEvaluateGkePolicyRequest ::+  EvaluateGkePolicyRequest+newEvaluateGkePolicyRequest =+  EvaluateGkePolicyRequest {resource = Core.Nothing}++instance Core.FromJSON EvaluateGkePolicyRequest where+  parseJSON =+    Core.withObject+      "EvaluateGkePolicyRequest"+      (\o -> EvaluateGkePolicyRequest Core.<$> (o Core..:? "resource"))++instance Core.ToJSON EvaluateGkePolicyRequest where+  toJSON EvaluateGkePolicyRequest {..} =+    Core.object+      (Core.catMaybes [("resource" Core..=) Core.<$> resource])++-- | Required. JSON or YAML blob representing a Kubernetes resource.+--+-- /See:/ 'newEvaluateGkePolicyRequest_Resource' smart constructor.+newtype EvaluateGkePolicyRequest_Resource = EvaluateGkePolicyRequest_Resource+  { -- | Properties of the object.+    additional :: (Core.HashMap Core.Text Core.Value)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'EvaluateGkePolicyRequest_Resource' with the minimum fields required to make a request.+newEvaluateGkePolicyRequest_Resource ::+  -- |  Properties of the object. See 'additional'.+  Core.HashMap Core.Text Core.Value ->+  EvaluateGkePolicyRequest_Resource+newEvaluateGkePolicyRequest_Resource additional =+  EvaluateGkePolicyRequest_Resource {additional = additional}++instance Core.FromJSON EvaluateGkePolicyRequest_Resource where+  parseJSON =+    Core.withObject+      "EvaluateGkePolicyRequest_Resource"+      ( \o ->+          EvaluateGkePolicyRequest_Resource+            Core.<$> (Core.parseJSONObject o)+      )++instance Core.ToJSON EvaluateGkePolicyRequest_Resource where+  toJSON EvaluateGkePolicyRequest_Resource {..} =+    Core.toJSON additional++-- | Response message for PlatformPolicyEvaluationService.EvaluateGkePolicy.+--+-- /See:/ 'newEvaluateGkePolicyResponse' smart constructor.+data EvaluateGkePolicyResponse = EvaluateGkePolicyResponse+  { -- | Evaluation result for each Pod contained in the request.+    results :: (Core.Maybe [PodResult]),+    -- | The result of evaluating all Pods in the request.+    verdict :: (Core.Maybe EvaluateGkePolicyResponse_Verdict)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'EvaluateGkePolicyResponse' with the minimum fields required to make a request.+newEvaluateGkePolicyResponse ::+  EvaluateGkePolicyResponse+newEvaluateGkePolicyResponse =+  EvaluateGkePolicyResponse+    { results = Core.Nothing,+      verdict = Core.Nothing+    }++instance Core.FromJSON EvaluateGkePolicyResponse where+  parseJSON =+    Core.withObject+      "EvaluateGkePolicyResponse"+      ( \o ->+          EvaluateGkePolicyResponse+            Core.<$> (o Core..:? "results")+            Core.<*> (o Core..:? "verdict")+      )++instance Core.ToJSON EvaluateGkePolicyResponse where+  toJSON EvaluateGkePolicyResponse {..} =+    Core.object+      ( Core.catMaybes+          [ ("results" Core..=) Core.<$> results,+            ("verdict" Core..=) Core.<$> verdict+          ]+      )++-- | Result of evaluating one check.+--+-- /See:/ 'newEvaluationResult' smart constructor.+newtype EvaluationResult = EvaluationResult+  { -- | The result of evaluating this check.+    verdict :: (Core.Maybe EvaluationResult_Verdict)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'EvaluationResult' with the minimum fields required to make a request.+newEvaluationResult ::+  EvaluationResult+newEvaluationResult = EvaluationResult {verdict = Core.Nothing}++instance Core.FromJSON EvaluationResult where+  parseJSON =+    Core.withObject+      "EvaluationResult"+      (\o -> EvaluationResult Core.<$> (o Core..:? "verdict"))++instance Core.ToJSON EvaluationResult where+  toJSON EvaluationResult {..} =+    Core.object+      (Core.catMaybes [("verdict" Core..=) Core.<$> verdict])++-- | Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https:\/\/github.com\/google\/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() \< 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != \'private\' && document.type != \'internal\'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"\'New message received at \' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are+-- determined by the service that evaluates it. See the service documentation for additional information.+--+-- /See:/ 'newExpr' smart constructor.+data Expr = Expr+  { -- | Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.+    description :: (Core.Maybe Core.Text),+    -- | Textual representation of an expression in Common Expression Language syntax.+    expression :: (Core.Maybe Core.Text),+    -- | Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.+    location :: (Core.Maybe Core.Text),+    -- | 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.+    title :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Expr' with the minimum fields required to make a request.+newExpr ::+  Expr+newExpr =+  Expr+    { description = Core.Nothing,+      expression = Core.Nothing,+      location = Core.Nothing,+      title = Core.Nothing+    }++instance Core.FromJSON Expr where+  parseJSON =+    Core.withObject+      "Expr"+      ( \o ->+          Expr+            Core.<$> (o Core..:? "description")+            Core.<*> (o Core..:? "expression")+            Core.<*> (o Core..:? "location")+            Core.<*> (o Core..:? "title")+      )++instance Core.ToJSON Expr where+  toJSON Expr {..} =+    Core.object+      ( Core.catMaybes+          [ ("description" Core..=) Core.<$> description,+            ("expression" Core..=) Core.<$> expression,+            ("location" Core..=) Core.<$> location,+            ("title" Core..=) Core.<$> title+          ]+      )++-- | A Binary Authorization policy for a GKE cluster. This is one type of policy that can occur as a @PlatformPolicy@.+--+-- /See:/ 'newGkePolicy' smart constructor.+data GkePolicy = GkePolicy+  { -- | Optional. The @CheckSet@ objects to apply, scoped by namespace or namespace and service account. Exactly one @CheckSet@ will be evaluated for a given Pod (unless the list is empty, in which case the behavior is \"always allow\"). If multiple @CheckSet@ objects have scopes that match the namespace and service account of the Pod being evaluated, only the @CheckSet@ with the MOST SPECIFIC scope will match. @CheckSet@ objects must be listed in order of decreasing specificity, i.e. if a scope matches a given service account (which must include the namespace), it must come before a @CheckSet@ with a scope matching just that namespace. This property is enforced by server-side validation. The purpose of this restriction is to ensure that if more than one @CheckSet@ matches a given Pod, the @CheckSet@ that will be evaluated will always be the first in the list to match (because if any other matches, it must be less specific). If @check_sets@ is empty, the default behavior is to allow all images. If @check_sets@ is+    -- non-empty, the last @check_sets@ entry must always be a @CheckSet@ with no scope set, i.e. a catchall to handle any situation not caught by the preceding @CheckSet@ objects.+    checkSets :: (Core.Maybe [CheckSet]),+    -- | Optional. Images exempted from this policy. If any of the patterns match the image being evaluated, the rest of the policy will not be evaluated.+    imageAllowlist :: (Core.Maybe ImageAllowlist)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GkePolicy' with the minimum fields required to make a request.+newGkePolicy ::+  GkePolicy+newGkePolicy =+  GkePolicy+    { checkSets = Core.Nothing,+      imageAllowlist = Core.Nothing+    }++instance Core.FromJSON GkePolicy where+  parseJSON =+    Core.withObject+      "GkePolicy"+      ( \o ->+          GkePolicy+            Core.<$> (o Core..:? "checkSets")+            Core.<*> (o Core..:? "imageAllowlist")+      )++instance Core.ToJSON GkePolicy where+  toJSON GkePolicy {..} =+    Core.object+      ( Core.catMaybes+          [ ("checkSets" Core..=) Core.<$> checkSets,+            ("imageAllowlist" Core..=) Core.<$> imageAllowlist+          ]+      )++-- | An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A @Policy@ is a collection of @bindings@. A @binding@ binds one or more @members@, or principals, to a single @role@. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A @role@ is a named list of permissions; each @role@ can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a @binding@ can also specify a @condition@, which is a logical expression that allows access to a resource only if the expression evaluates to @true@. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the <https://cloud.google.com/iam/help/conditions/resource-policies IAM documentation>. __JSON example:__+-- @{ \"bindings\": [ { \"role\": \"roles\/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike\@example.com\", \"group:admins\@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id\@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles\/resourcemanager.organizationViewer\", \"members\": [ \"user:eve\@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time \< timestamp(\'2020-10-01T00:00:00.000Z\')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 }@ __YAML example:__+-- @bindings: - members: - user:mike\@example.com - group:admins\@example.com - domain:google.com - serviceAccount:my-project-id\@appspot.gserviceaccount.com role: roles\/resourcemanager.organizationAdmin - members: - user:eve\@example.com role: roles\/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time \< timestamp(\'2020-10-01T00:00:00.000Z\') etag: BwWWja0YfJA= version: 3@ For a description of IAM and its features, see the <https://cloud.google.com/iam/docs/ IAM documentation>.+--+-- /See:/ 'newIamPolicy' smart constructor.+data IamPolicy = IamPolicy+  { -- | Associates a list of @members@, or principals, with a @role@. Optionally, may specify a @condition@ that determines how and when the @bindings@ are applied. Each of the @bindings@ must contain at least one principal. The @bindings@ in a @Policy@ can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the @bindings@ grant 50 different roles to @user:alice\@example.com@, and not to any other principal, then you can add another 1,450 principals to the @bindings@ in the @Policy@.+    bindings :: (Core.Maybe [Binding]),+    -- | @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. __Important:__ If you use IAM Conditions, you must include the @etag@ field whenever you call @setIamPolicy@. If you omit this field, then IAM allows you to overwrite a version @3@ policy with a version @1@ policy, and all of the conditions in the version @3@ policy are lost.+    etag :: (Core.Maybe Core.Base64),+    -- | Specifies the format of the policy. Valid values are @0@, @1@, and @3@. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version @3@. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions __Important:__ If you use IAM Conditions, you must include the @etag@ field whenever you call @setIamPolicy@. If you omit this field, then IAM allows you to overwrite a version @3@ policy with a version @1@ policy, and all of the conditions in the version @3@ policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the+    -- <https://cloud.google.com/iam/help/conditions/resource-policies IAM documentation>.+    version :: (Core.Maybe Core.Int32)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'IamPolicy' with the minimum fields required to make a request.+newIamPolicy ::+  IamPolicy+newIamPolicy =+  IamPolicy+    { bindings = Core.Nothing,+      etag = Core.Nothing,+      version = Core.Nothing+    }++instance Core.FromJSON IamPolicy where+  parseJSON =+    Core.withObject+      "IamPolicy"+      ( \o ->+          IamPolicy+            Core.<$> (o Core..:? "bindings")+            Core.<*> (o Core..:? "etag")+            Core.<*> (o Core..:? "version")+      )++instance Core.ToJSON IamPolicy where+  toJSON IamPolicy {..} =+    Core.object+      ( Core.catMaybes+          [ ("bindings" Core..=) Core.<$> bindings,+            ("etag" Core..=) Core.<$> etag,+            ("version" Core..=) Core.<$> version+          ]+      )++-- | Images that are exempted from normal checks based on name pattern only.+--+-- /See:/ 'newImageAllowlist' smart constructor.+newtype ImageAllowlist = ImageAllowlist+  { -- | Required. A disjunction of image patterns to allow. If any of these patterns match, then the image is considered exempted by this allowlist.+    allowPattern :: (Core.Maybe [Core.Text])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ImageAllowlist' with the minimum fields required to make a request.+newImageAllowlist ::+  ImageAllowlist+newImageAllowlist = ImageAllowlist {allowPattern = Core.Nothing}++instance Core.FromJSON ImageAllowlist where+  parseJSON =+    Core.withObject+      "ImageAllowlist"+      (\o -> ImageAllowlist Core.<$> (o Core..:? "allowPattern"))++instance Core.ToJSON ImageAllowlist where+  toJSON ImageAllowlist {..} =+    Core.object+      (Core.catMaybes [("allowPattern" Core..=) Core.<$> allowPattern])++-- | An image freshness check, which rejects images that were uploaded before the set number of days ago to the supported repositories.+--+-- /See:/ 'newImageFreshnessCheck' smart constructor.+newtype ImageFreshnessCheck = ImageFreshnessCheck+  { -- | Required. The max number of days that is allowed since the image was uploaded. Must be greater than zero.+    maxUploadAgeDays :: (Core.Maybe Core.Int32)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ImageFreshnessCheck' with the minimum fields required to make a request.+newImageFreshnessCheck ::+  ImageFreshnessCheck+newImageFreshnessCheck =+  ImageFreshnessCheck {maxUploadAgeDays = Core.Nothing}++instance Core.FromJSON ImageFreshnessCheck where+  parseJSON =+    Core.withObject+      "ImageFreshnessCheck"+      ( \o ->+          ImageFreshnessCheck Core.<$> (o Core..:? "maxUploadAgeDays")+      )++instance Core.ToJSON ImageFreshnessCheck where+  toJSON ImageFreshnessCheck {..} =+    Core.object+      ( Core.catMaybes+          [("maxUploadAgeDays" Core..=) Core.<$> maxUploadAgeDays]+      )++-- | Result of evaluating one image.+--+-- /See:/ 'newImageResult' smart constructor.+data ImageResult = ImageResult+  { -- | If the image was exempted by a top-level allow_pattern, contains the allowlist pattern that the image name matched.+    allowlistResult :: (Core.Maybe AllowlistResult),+    -- | If a check set was evaluated, contains the result of the check set. Empty if there were no check sets.+    checkSetResult :: (Core.Maybe CheckSetResult),+    -- | Explanation of this image result. Only populated if no check sets were evaluated.+    explanation :: (Core.Maybe Core.Text),+    -- | Image URI from the request.+    imageUri :: (Core.Maybe Core.Text),+    -- | The result of evaluating this image.+    verdict :: (Core.Maybe ImageResult_Verdict)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ImageResult' with the minimum fields required to make a request.+newImageResult ::+  ImageResult+newImageResult =+  ImageResult+    { allowlistResult = Core.Nothing,+      checkSetResult = Core.Nothing,+      explanation = Core.Nothing,+      imageUri = Core.Nothing,+      verdict = Core.Nothing+    }++instance Core.FromJSON ImageResult where+  parseJSON =+    Core.withObject+      "ImageResult"+      ( \o ->+          ImageResult+            Core.<$> (o Core..:? "allowlistResult")+            Core.<*> (o Core..:? "checkSetResult")+            Core.<*> (o Core..:? "explanation")+            Core.<*> (o Core..:? "imageUri")+            Core.<*> (o Core..:? "verdict")+      )++instance Core.ToJSON ImageResult where+  toJSON ImageResult {..} =+    Core.object+      ( Core.catMaybes+          [ ("allowlistResult" Core..=) Core.<$> allowlistResult,+            ("checkSetResult" Core..=) Core.<$> checkSetResult,+            ("explanation" Core..=) Core.<$> explanation,+            ("imageUri" Core..=) Core.<$> imageUri,+            ("verdict" Core..=) Core.<$> verdict+          ]+      )++--+-- /See:/ 'newJwt' smart constructor.+newtype Jwt = Jwt+  { -- | The compact encoding of a JWS, which is always three base64 encoded strings joined by periods. For details, see: https:\/\/tools.ietf.org\/html\/rfc7515.html#section-3.1+    compactJwt :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Jwt' with the minimum fields required to make a request.+newJwt ::+  Jwt+newJwt = Jwt {compactJwt = Core.Nothing}++instance Core.FromJSON Jwt where+  parseJSON =+    Core.withObject+      "Jwt"+      (\o -> Jwt Core.<$> (o Core..:? "compactJwt"))++instance Core.ToJSON Jwt where+  toJSON Jwt {..} =+    Core.object+      (Core.catMaybes [("compactJwt" Core..=) Core.<$> compactJwt])++-- | Response message for BinauthzManagementServiceV1.ListAttestors.+--+-- /See:/ 'newListAttestorsResponse' smart constructor.+data ListAttestorsResponse = ListAttestorsResponse+  { -- | The list of attestors.+    attestors :: (Core.Maybe [Attestor]),+    -- | A token to retrieve the next page of results. Pass this value in the ListAttestorsRequest.page_token field in the subsequent call to the @ListAttestors@ method to retrieve the next page of results.+    nextPageToken :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListAttestorsResponse' with the minimum fields required to make a request.+newListAttestorsResponse ::+  ListAttestorsResponse+newListAttestorsResponse =+  ListAttestorsResponse+    { attestors = Core.Nothing,+      nextPageToken = Core.Nothing+    }++instance Core.FromJSON ListAttestorsResponse where+  parseJSON =+    Core.withObject+      "ListAttestorsResponse"+      ( \o ->+          ListAttestorsResponse+            Core.<$> (o Core..:? "attestors")+            Core.<*> (o Core..:? "nextPageToken")+      )++instance Core.ToJSON ListAttestorsResponse where+  toJSON ListAttestorsResponse {..} =+    Core.object+      ( Core.catMaybes+          [ ("attestors" Core..=) Core.<$> attestors,+            ("nextPageToken" Core..=) Core.<$> nextPageToken+          ]+      )++-- | Response message for PlatformPolicyManagementService.ListPlatformPolicies.+--+-- /See:/ 'newListPlatformPoliciesResponse' smart constructor.+data ListPlatformPoliciesResponse = ListPlatformPoliciesResponse+  { -- | A token to retrieve the next page of results. Pass this value in the ListPlatformPoliciesRequest.page_token field in the subsequent call to the @ListPlatformPolicies@ method to retrieve the next page of results.+    nextPageToken :: (Core.Maybe Core.Text),+    -- | The list of platform policies.+    platformPolicies :: (Core.Maybe [PlatformPolicy])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListPlatformPoliciesResponse' with the minimum fields required to make a request.+newListPlatformPoliciesResponse ::+  ListPlatformPoliciesResponse+newListPlatformPoliciesResponse =+  ListPlatformPoliciesResponse+    { nextPageToken = Core.Nothing,+      platformPolicies = Core.Nothing+    }++instance Core.FromJSON ListPlatformPoliciesResponse where+  parseJSON =+    Core.withObject+      "ListPlatformPoliciesResponse"+      ( \o ->+          ListPlatformPoliciesResponse+            Core.<$> (o Core..:? "nextPageToken")+            Core.<*> (o Core..:? "platformPolicies")+      )++instance Core.ToJSON ListPlatformPoliciesResponse where+  toJSON ListPlatformPoliciesResponse {..} =+    Core.object+      ( Core.catMaybes+          [ ("nextPageToken" Core..=) Core.<$> nextPageToken,+            ("platformPolicies" Core..=) Core.<$> platformPolicies+          ]+      )++-- | A public key in the PkixPublicKey <https://tools.ietf.org/html/rfc5280#section-4.1.2.7 format>. Public keys of this type are typically textually encoded using the PEM format.+--+-- /See:/ 'newPkixPublicKey' smart constructor.+data PkixPublicKey = PkixPublicKey+  { -- | Optional. The ID of this public key. Signatures verified by Binary Authorization must include the ID of the public key that can be used to verify them. The ID must match exactly contents of the @key_id@ field exactly. The ID may be explicitly provided by the caller, but it MUST be a valid RFC3986 URI. If @key_id@ is left blank and this @PkixPublicKey@ is not used in the context of a wrapper (see next paragraph), a default key ID will be computed based on the digest of the DER encoding of the public key. If this @PkixPublicKey@ is used in the context of a wrapper that has its own notion of key ID (e.g. @AttestorPublicKey@), then this field can either match that value exactly, or be left blank, in which case it behaves exactly as though it is equal to that wrapper value.+    keyId :: (Core.Maybe Core.Text),+    -- | A PEM-encoded public key, as described in https:\/\/tools.ietf.org\/html\/rfc7468#section-13+    publicKeyPem :: (Core.Maybe Core.Text),+    -- | The signature algorithm used to verify a message against a signature using this key. These signature algorithm must match the structure and any object identifiers encoded in @public_key_pem@ (i.e. this algorithm must match that of the public key).+    signatureAlgorithm :: (Core.Maybe PkixPublicKey_SignatureAlgorithm)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'PkixPublicKey' with the minimum fields required to make a request.+newPkixPublicKey ::+  PkixPublicKey+newPkixPublicKey =+  PkixPublicKey+    { keyId = Core.Nothing,+      publicKeyPem = Core.Nothing,+      signatureAlgorithm = Core.Nothing+    }++instance Core.FromJSON PkixPublicKey where+  parseJSON =+    Core.withObject+      "PkixPublicKey"+      ( \o ->+          PkixPublicKey+            Core.<$> (o Core..:? "keyId")+            Core.<*> (o Core..:? "publicKeyPem")+            Core.<*> (o Core..:? "signatureAlgorithm")+      )++instance Core.ToJSON PkixPublicKey where+  toJSON PkixPublicKey {..} =+    Core.object+      ( Core.catMaybes+          [ ("keyId" Core..=) Core.<$> keyId,+            ("publicKeyPem" Core..=) Core.<$> publicKeyPem,+            ("signatureAlgorithm" Core..=) Core.<$> signatureAlgorithm+          ]+      )++-- | A bundle of PKIX public keys, used to authenticate attestation signatures. Generally, a signature is considered to be authenticated by a @PkixPublicKeySet@ if any of the public keys verify it (i.e. it is an \"OR\" of the keys).+--+-- /See:/ 'newPkixPublicKeySet' smart constructor.+newtype PkixPublicKeySet = PkixPublicKeySet+  { -- | Required. @pkix_public_keys@ must have at least one entry.+    pkixPublicKeys :: (Core.Maybe [PkixPublicKey])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'PkixPublicKeySet' with the minimum fields required to make a request.+newPkixPublicKeySet ::+  PkixPublicKeySet+newPkixPublicKeySet =+  PkixPublicKeySet {pkixPublicKeys = Core.Nothing}++instance Core.FromJSON PkixPublicKeySet where+  parseJSON =+    Core.withObject+      "PkixPublicKeySet"+      (\o -> PkixPublicKeySet Core.<$> (o Core..:? "pkixPublicKeys"))++instance Core.ToJSON PkixPublicKeySet where+  toJSON PkixPublicKeySet {..} =+    Core.object+      ( Core.catMaybes+          [("pkixPublicKeys" Core..=) Core.<$> pkixPublicKeys]+      )++-- | A Binary Authorization platform policy for deployments on various platforms.+--+-- /See:/ 'newPlatformPolicy' smart constructor.+data PlatformPolicy = PlatformPolicy+  { -- | Optional. A description comment about the policy.+    description :: (Core.Maybe Core.Text),+    -- | Optional. Used to prevent updating the policy when another request has updated it since it was retrieved.+    etag :: (Core.Maybe Core.Text),+    -- | Optional. GKE platform-specific policy.+    gkePolicy :: (Core.Maybe GkePolicy),+    -- | Output only. The relative resource name of the Binary Authorization platform policy, in the form of @projects\/*\/platforms\/*\/policies\/*@.+    name :: (Core.Maybe Core.Text),+    -- | Output only. Time when the policy was last updated.+    updateTime :: (Core.Maybe Core.DateTime)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'PlatformPolicy' with the minimum fields required to make a request.+newPlatformPolicy ::+  PlatformPolicy+newPlatformPolicy =+  PlatformPolicy+    { description = Core.Nothing,+      etag = Core.Nothing,+      gkePolicy = Core.Nothing,+      name = Core.Nothing,+      updateTime = Core.Nothing+    }++instance Core.FromJSON PlatformPolicy where+  parseJSON =+    Core.withObject+      "PlatformPolicy"+      ( \o ->+          PlatformPolicy+            Core.<$> (o Core..:? "description")+            Core.<*> (o Core..:? "etag")+            Core.<*> (o Core..:? "gkePolicy")+            Core.<*> (o Core..:? "name")+            Core.<*> (o Core..:? "updateTime")+      )++instance Core.ToJSON PlatformPolicy where+  toJSON PlatformPolicy {..} =+    Core.object+      ( Core.catMaybes+          [ ("description" Core..=) Core.<$> description,+            ("etag" Core..=) Core.<$> etag,+            ("gkePolicy" Core..=) Core.<$> gkePolicy,+            ("name" Core..=) Core.<$> name,+            ("updateTime" Core..=) Core.<$> updateTime+          ]+      )++-- | Result of evaluating the whole GKE policy for one Pod.+--+-- /See:/ 'newPodResult' smart constructor.+data PodResult = PodResult+  { -- | Per-image details.+    imageResults :: (Core.Maybe [ImageResult]),+    -- | The Kubernetes namespace of the Pod.+    kubernetesNamespace :: (Core.Maybe Core.Text),+    -- | The Kubernetes service account of the Pod.+    kubernetesServiceAccount :: (Core.Maybe Core.Text),+    -- | The name of the Pod.+    podName :: (Core.Maybe Core.Text),+    -- | The result of evaluating this Pod.+    verdict :: (Core.Maybe PodResult_Verdict)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'PodResult' with the minimum fields required to make a request.+newPodResult ::+  PodResult+newPodResult =+  PodResult+    { imageResults = Core.Nothing,+      kubernetesNamespace = Core.Nothing,+      kubernetesServiceAccount = Core.Nothing,+      podName = Core.Nothing,+      verdict = Core.Nothing+    }++instance Core.FromJSON PodResult where+  parseJSON =+    Core.withObject+      "PodResult"+      ( \o ->+          PodResult+            Core.<$> (o Core..:? "imageResults")+            Core.<*> (o Core..:? "kubernetesNamespace")+            Core.<*> (o Core..:? "kubernetesServiceAccount")+            Core.<*> (o Core..:? "podName")+            Core.<*> (o Core..:? "verdict")+      )++instance Core.ToJSON PodResult where+  toJSON PodResult {..} =+    Core.object+      ( Core.catMaybes+          [ ("imageResults" Core..=) Core.<$> imageResults,+            ("kubernetesNamespace" Core..=) Core.<$> kubernetesNamespace,+            ("kubernetesServiceAccount" Core..=)+              Core.<$> kubernetesServiceAccount,+            ("podName" Core..=) Core.<$> podName,+            ("verdict" Core..=) Core.<$> verdict+          ]+      )++-- | A policy for container image binary authorization.+--+-- /See:/ 'newPolicy' smart constructor.+data Policy = Policy+  { -- | Optional. Admission policy allowlisting. A matching admission request will always be permitted. This feature is typically used to exclude Google or third-party infrastructure images from Binary Authorization policies.+    admissionWhitelistPatterns :: (Core.Maybe [AdmissionWhitelistPattern]),+    -- | Optional. A valid policy has only one of the following rule maps non-empty, i.e. only one of @cluster_admission_rules@, @kubernetes_namespace_admission_rules@, @kubernetes_service_account_admission_rules@, or @istio_service_identity_admission_rules@ can be non-empty. Per-cluster admission rules. Cluster spec format: @location.clusterId@. There can be at most one admission rule per cluster spec. A @location@ is either a compute zone (e.g. us-central1-a) or a region (e.g. us-central1). For @clusterId@ syntax restrictions see https:\/\/cloud.google.com\/container-engine\/reference\/rest\/v1\/projects.zones.clusters.+    clusterAdmissionRules :: (Core.Maybe Policy_ClusterAdmissionRules),+    -- | Required. Default admission rule for a cluster without a per-cluster, per- kubernetes-service-account, or per-istio-service-identity admission rule.+    defaultAdmissionRule :: (Core.Maybe AdmissionRule),+    -- | Optional. A descriptive comment.+    description :: (Core.Maybe Core.Text),+    -- | Optional. A checksum, returned by the server, that can be sent on update requests to ensure the policy has an up-to-date value before attempting to update it. See https:\/\/google.aip.dev\/154.+    etag :: (Core.Maybe Core.Text),+    -- | Optional. Controls the evaluation of a Google-maintained global admission policy for common system-level images. Images not covered by the global policy will be subject to the project admission policy. This setting has no effect when specified inside a global admission policy.+    globalPolicyEvaluationMode :: (Core.Maybe Policy_GlobalPolicyEvaluationMode),+    -- | Optional. Per-istio-service-identity admission rules. Istio service identity spec format: @spiffe:\/\/\/ns\/\/sa\/@ or @\/ns\/\/sa\/@ e.g. @spiffe:\/\/example.com\/ns\/test-ns\/sa\/default@+    istioServiceIdentityAdmissionRules :: (Core.Maybe Policy_IstioServiceIdentityAdmissionRules),+    -- | Optional. Per-kubernetes-namespace admission rules. K8s namespace spec format: @[a-z.-]+@, e.g. @some-namespace@+    kubernetesNamespaceAdmissionRules :: (Core.Maybe Policy_KubernetesNamespaceAdmissionRules),+    -- | Optional. Per-kubernetes-service-account admission rules. Service account spec format: @namespace:serviceaccount@. e.g. @test-ns:default@+    kubernetesServiceAccountAdmissionRules :: (Core.Maybe Policy_KubernetesServiceAccountAdmissionRules),+    -- | Output only. The resource name, in the format @projects\/*\/policy@. There is at most one policy per project.+    name :: (Core.Maybe Core.Text),+    -- | Output only. Time when the policy was last updated.+    updateTime :: (Core.Maybe Core.DateTime)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Policy' with the minimum fields required to make a request.+newPolicy ::+  Policy+newPolicy =+  Policy+    { admissionWhitelistPatterns = Core.Nothing,+      clusterAdmissionRules = Core.Nothing,+      defaultAdmissionRule = Core.Nothing,+      description = Core.Nothing,+      etag = Core.Nothing,+      globalPolicyEvaluationMode = Core.Nothing,+      istioServiceIdentityAdmissionRules = Core.Nothing,+      kubernetesNamespaceAdmissionRules = Core.Nothing,+      kubernetesServiceAccountAdmissionRules = Core.Nothing,+      name = Core.Nothing,+      updateTime = Core.Nothing+    }++instance Core.FromJSON Policy where+  parseJSON =+    Core.withObject+      "Policy"+      ( \o ->+          Policy+            Core.<$> (o Core..:? "admissionWhitelistPatterns")+            Core.<*> (o Core..:? "clusterAdmissionRules")+            Core.<*> (o Core..:? "defaultAdmissionRule")+            Core.<*> (o Core..:? "description")+            Core.<*> (o Core..:? "etag")+            Core.<*> (o Core..:? "globalPolicyEvaluationMode")+            Core.<*> (o Core..:? "istioServiceIdentityAdmissionRules")+            Core.<*> (o Core..:? "kubernetesNamespaceAdmissionRules")+            Core.<*> (o Core..:? "kubernetesServiceAccountAdmissionRules")+            Core.<*> (o Core..:? "name")+            Core.<*> (o Core..:? "updateTime")+      )++instance Core.ToJSON Policy where+  toJSON Policy {..} =+    Core.object+      ( Core.catMaybes+          [ ("admissionWhitelistPatterns" Core..=)+              Core.<$> admissionWhitelistPatterns,+            ("clusterAdmissionRules" Core..=) Core.<$> clusterAdmissionRules,+            ("defaultAdmissionRule" Core..=) Core.<$> defaultAdmissionRule,+            ("description" Core..=) Core.<$> description,+            ("etag" Core..=) Core.<$> etag,+            ("globalPolicyEvaluationMode" Core..=)+              Core.<$> globalPolicyEvaluationMode,+            ("istioServiceIdentityAdmissionRules" Core..=)+              Core.<$> istioServiceIdentityAdmissionRules,+            ("kubernetesNamespaceAdmissionRules" Core..=)+              Core.<$> kubernetesNamespaceAdmissionRules,+            ("kubernetesServiceAccountAdmissionRules" Core..=)+              Core.<$> kubernetesServiceAccountAdmissionRules,+            ("name" Core..=) Core.<$> name,+            ("updateTime" Core..=) Core.<$> updateTime+          ]+      )++-- | Optional. A valid policy has only one of the following rule maps non-empty, i.e. only one of @cluster_admission_rules@, @kubernetes_namespace_admission_rules@, @kubernetes_service_account_admission_rules@, or @istio_service_identity_admission_rules@ can be non-empty. Per-cluster admission rules. Cluster spec format: @location.clusterId@. There can be at most one admission rule per cluster spec. A @location@ is either a compute zone (e.g. us-central1-a) or a region (e.g. us-central1). For @clusterId@ syntax restrictions see https:\/\/cloud.google.com\/container-engine\/reference\/rest\/v1\/projects.zones.clusters.+--+-- /See:/ 'newPolicy_ClusterAdmissionRules' smart constructor.+newtype Policy_ClusterAdmissionRules = Policy_ClusterAdmissionRules+  { additional :: (Core.HashMap Core.Text AdmissionRule)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Policy_ClusterAdmissionRules' with the minimum fields required to make a request.+newPolicy_ClusterAdmissionRules ::+  -- |  See 'additional'.+  Core.HashMap Core.Text AdmissionRule ->+  Policy_ClusterAdmissionRules+newPolicy_ClusterAdmissionRules additional =+  Policy_ClusterAdmissionRules {additional = additional}++instance Core.FromJSON Policy_ClusterAdmissionRules where+  parseJSON =+    Core.withObject+      "Policy_ClusterAdmissionRules"+      ( \o ->+          Policy_ClusterAdmissionRules Core.<$> (Core.parseJSONObject o)+      )++instance Core.ToJSON Policy_ClusterAdmissionRules where+  toJSON Policy_ClusterAdmissionRules {..} = Core.toJSON additional++-- | Optional. Per-istio-service-identity admission rules. Istio service identity spec format: @spiffe:\/\/\/ns\/\/sa\/@ or @\/ns\/\/sa\/@ e.g. @spiffe:\/\/example.com\/ns\/test-ns\/sa\/default@+--+-- /See:/ 'newPolicy_IstioServiceIdentityAdmissionRules' smart constructor.+newtype Policy_IstioServiceIdentityAdmissionRules = Policy_IstioServiceIdentityAdmissionRules+  { additional :: (Core.HashMap Core.Text AdmissionRule)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Policy_IstioServiceIdentityAdmissionRules' with the minimum fields required to make a request.+newPolicy_IstioServiceIdentityAdmissionRules ::+  -- |  See 'additional'.+  Core.HashMap Core.Text AdmissionRule ->+  Policy_IstioServiceIdentityAdmissionRules+newPolicy_IstioServiceIdentityAdmissionRules additional =+  Policy_IstioServiceIdentityAdmissionRules+    { additional =+        additional+    }++instance Core.FromJSON Policy_IstioServiceIdentityAdmissionRules where+  parseJSON =+    Core.withObject+      "Policy_IstioServiceIdentityAdmissionRules"+      ( \o ->+          Policy_IstioServiceIdentityAdmissionRules+            Core.<$> (Core.parseJSONObject o)+      )++instance Core.ToJSON Policy_IstioServiceIdentityAdmissionRules where+  toJSON Policy_IstioServiceIdentityAdmissionRules {..} =+    Core.toJSON additional++-- | Optional. Per-kubernetes-namespace admission rules. K8s namespace spec format: @[a-z.-]+@, e.g. @some-namespace@+--+-- /See:/ 'newPolicy_KubernetesNamespaceAdmissionRules' smart constructor.+newtype Policy_KubernetesNamespaceAdmissionRules = Policy_KubernetesNamespaceAdmissionRules+  { additional :: (Core.HashMap Core.Text AdmissionRule)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Policy_KubernetesNamespaceAdmissionRules' with the minimum fields required to make a request.+newPolicy_KubernetesNamespaceAdmissionRules ::+  -- |  See 'additional'.+  Core.HashMap Core.Text AdmissionRule ->+  Policy_KubernetesNamespaceAdmissionRules+newPolicy_KubernetesNamespaceAdmissionRules additional =+  Policy_KubernetesNamespaceAdmissionRules {additional = additional}++instance Core.FromJSON Policy_KubernetesNamespaceAdmissionRules where+  parseJSON =+    Core.withObject+      "Policy_KubernetesNamespaceAdmissionRules"+      ( \o ->+          Policy_KubernetesNamespaceAdmissionRules+            Core.<$> (Core.parseJSONObject o)+      )++instance Core.ToJSON Policy_KubernetesNamespaceAdmissionRules where+  toJSON Policy_KubernetesNamespaceAdmissionRules {..} =+    Core.toJSON additional++-- | Optional. Per-kubernetes-service-account admission rules. Service account spec format: @namespace:serviceaccount@. e.g. @test-ns:default@+--+-- /See:/ 'newPolicy_KubernetesServiceAccountAdmissionRules' smart constructor.+newtype Policy_KubernetesServiceAccountAdmissionRules = Policy_KubernetesServiceAccountAdmissionRules+  { additional :: (Core.HashMap Core.Text AdmissionRule)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Policy_KubernetesServiceAccountAdmissionRules' with the minimum fields required to make a request.+newPolicy_KubernetesServiceAccountAdmissionRules ::+  -- |  See 'additional'.+  Core.HashMap Core.Text AdmissionRule ->+  Policy_KubernetesServiceAccountAdmissionRules+newPolicy_KubernetesServiceAccountAdmissionRules additional =+  Policy_KubernetesServiceAccountAdmissionRules+    { additional =+        additional+    }++instance+  Core.FromJSON+    Policy_KubernetesServiceAccountAdmissionRules+  where+  parseJSON =+    Core.withObject+      "Policy_KubernetesServiceAccountAdmissionRules"+      ( \o ->+          Policy_KubernetesServiceAccountAdmissionRules+            Core.<$> (Core.parseJSONObject o)+      )++instance Core.ToJSON Policy_KubernetesServiceAccountAdmissionRules where+  toJSON Policy_KubernetesServiceAccountAdmissionRules {..} =+    Core.toJSON additional++-- | A scope specifier for @CheckSet@ objects.+--+-- /See:/ 'newScope' smart constructor.+data Scope = Scope+  { -- | Optional. Matches all Kubernetes service accounts in the provided namespace, unless a more specific @kubernetes_service_account@ scope already matched.+    kubernetesNamespace :: (Core.Maybe Core.Text),+    -- | Optional. Matches a single Kubernetes service account, e.g. @my-namespace:my-service-account@. @kubernetes_service_account@ scope is always more specific than @kubernetes_namespace@ scope for the same namespace.+    kubernetesServiceAccount :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Scope' with the minimum fields required to make a request.+newScope ::+  Scope+newScope =+  Scope+    { kubernetesNamespace = Core.Nothing,+      kubernetesServiceAccount = Core.Nothing+    }++instance Core.FromJSON Scope where+  parseJSON =+    Core.withObject+      "Scope"+      ( \o ->+          Scope+            Core.<$> (o Core..:? "kubernetesNamespace")+            Core.<*> (o Core..:? "kubernetesServiceAccount")+      )++instance Core.ToJSON Scope where+  toJSON Scope {..} =+    Core.object+      ( Core.catMaybes+          [ ("kubernetesNamespace" Core..=) Core.<$> kubernetesNamespace,+            ("kubernetesServiceAccount" Core..=)+              Core.<$> kubernetesServiceAccount+          ]+      )++-- | Request message for @SetIamPolicy@ method.+--+-- /See:/ 'newSetIamPolicyRequest' smart constructor.+newtype SetIamPolicyRequest = SetIamPolicyRequest+  { -- | 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 Google Cloud services (such as Projects) might reject them.+    policy :: (Core.Maybe IamPolicy)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SetIamPolicyRequest' with the minimum fields required to make a request.+newSetIamPolicyRequest ::+  SetIamPolicyRequest+newSetIamPolicyRequest = SetIamPolicyRequest {policy = Core.Nothing}++instance Core.FromJSON SetIamPolicyRequest where+  parseJSON =+    Core.withObject+      "SetIamPolicyRequest"+      (\o -> SetIamPolicyRequest Core.<$> (o Core..:? "policy"))++instance Core.ToJSON SetIamPolicyRequest where+  toJSON SetIamPolicyRequest {..} =+    Core.object (Core.catMaybes [("policy" Core..=) Core.<$> policy])++-- | Verifiers (e.g. Kritis implementations) MUST verify signatures with respect to the trust anchors defined in policy (e.g. a Kritis policy). Typically this means that the verifier has been configured with a map from @public_key_id@ to public key material (and any required parameters, e.g. signing algorithm). In particular, verification implementations MUST NOT treat the signature @public_key_id@ as anything more than a key lookup hint. The @public_key_id@ DOES NOT validate or authenticate a public key; it only provides a mechanism for quickly selecting a public key ALREADY CONFIGURED on the verifier through a trusted channel. Verification implementations MUST reject signatures in any of the following circumstances: * The @public_key_id@ is not recognized by the verifier. * The public key that @public_key_id@ refers to does not verify the signature with respect to the payload. The @signature@ contents SHOULD NOT be \"attached\" (where the payload is included with the serialized @signature@ bytes). Verifiers MUST+-- ignore any \"attached\" payload and only verify signatures with respect to explicitly provided payload (e.g. a @payload@ field on the proto message that holds this Signature, or the canonical serialization of the proto message that holds this signature).+--+-- /See:/ 'newSignature' smart constructor.+data Signature = Signature+  { -- | The identifier for the public key that verifies this signature. * The @public_key_id@ is required. * The @public_key_id@ SHOULD be an RFC3986 conformant URI. * When possible, the @public_key_id@ SHOULD be an immutable reference, such as a cryptographic digest. Examples of valid @public_key_id@s: OpenPGP V4 public key fingerprint: * \"openpgp4fpr:74FAF3B861BDA0870C7B6DEF607E48D2A663AEEA\" See https:\/\/www.iana.org\/assignments\/uri-schemes\/prov\/openpgp4fpr for more details on this scheme. RFC6920 digest-named SubjectPublicKeyInfo (digest of the DER serialization): * \"ni:\/\/\/sha-256;cD9o9Cq6LG3jD0iKXqEi/vdjJGecm/iXkbqVoScViaU\" * \"nih:\/\/\/sha-256;703f68f42aba2c6de30f488a5ea122fef76324679c9bf89791ba95a1271589a5\"+    publicKeyId :: (Core.Maybe Core.Text),+    -- | The content of the signature, an opaque bytestring. The payload that this signature verifies MUST be unambiguously provided with the Signature during verification. A wrapper message might provide the payload explicitly. Alternatively, a message might have a canonical serialization that can always be unambiguously computed to derive the payload.+    signature :: (Core.Maybe Core.Base64)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Signature' with the minimum fields required to make a request.+newSignature ::+  Signature+newSignature =+  Signature {publicKeyId = Core.Nothing, signature = Core.Nothing}++instance Core.FromJSON Signature where+  parseJSON =+    Core.withObject+      "Signature"+      ( \o ->+          Signature+            Core.<$> (o Core..:? "publicKeyId")+            Core.<*> (o Core..:? "signature")+      )++instance Core.ToJSON Signature where+  toJSON Signature {..} =+    Core.object+      ( Core.catMaybes+          [ ("publicKeyId" Core..=) Core.<$> publicKeyId,+            ("signature" Core..=) Core.<$> signature+          ]+      )++-- | A Sigstore authority, used to verify signatures that are created by Sigstore. An authority is analogous to an attestation authenticator, verifying that a signature is valid or invalid.+--+-- /See:/ 'newSigstoreAuthority' smart constructor.+data SigstoreAuthority = SigstoreAuthority+  { -- | Optional. A user-provided name for this @SigstoreAuthority@. This field has no effect on the policy evaluation behavior except to improve readability of messages in evaluation results.+    displayName :: (Core.Maybe Core.Text),+    -- | Required. A simple set of public keys. A signature is considered valid if any keys in the set validate the signature.+    publicKeySet :: (Core.Maybe SigstorePublicKeySet)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SigstoreAuthority' with the minimum fields required to make a request.+newSigstoreAuthority ::+  SigstoreAuthority+newSigstoreAuthority =+  SigstoreAuthority+    { displayName = Core.Nothing,+      publicKeySet = Core.Nothing+    }++instance Core.FromJSON SigstoreAuthority where+  parseJSON =+    Core.withObject+      "SigstoreAuthority"+      ( \o ->+          SigstoreAuthority+            Core.<$> (o Core..:? "displayName")+            Core.<*> (o Core..:? "publicKeySet")+      )++instance Core.ToJSON SigstoreAuthority where+  toJSON SigstoreAuthority {..} =+    Core.object+      ( Core.catMaybes+          [ ("displayName" Core..=) Core.<$> displayName,+            ("publicKeySet" Core..=) Core.<$> publicKeySet+          ]+      )++-- | A Sigstore public key. @SigstorePublicKey@ is the public key material used to authenticate Sigstore signatures.+--+-- /See:/ 'newSigstorePublicKey' smart constructor.+newtype SigstorePublicKey = SigstorePublicKey+  { -- | The public key material in PEM format.+    publicKeyPem :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SigstorePublicKey' with the minimum fields required to make a request.+newSigstorePublicKey ::+  SigstorePublicKey+newSigstorePublicKey =+  SigstorePublicKey {publicKeyPem = Core.Nothing}++instance Core.FromJSON SigstorePublicKey where+  parseJSON =+    Core.withObject+      "SigstorePublicKey"+      (\o -> SigstorePublicKey Core.<$> (o Core..:? "publicKeyPem"))++instance Core.ToJSON SigstorePublicKey where+  toJSON SigstorePublicKey {..} =+    Core.object+      (Core.catMaybes [("publicKeyPem" Core..=) Core.<$> publicKeyPem])++-- | A bundle of Sigstore public keys, used to verify Sigstore signatures. A signature is authenticated by a @SigstorePublicKeySet@ if any of the keys verify it.+--+-- /See:/ 'newSigstorePublicKeySet' smart constructor.+newtype SigstorePublicKeySet = SigstorePublicKeySet+  { -- | Required. @public_keys@ must have at least one entry.+    publicKeys :: (Core.Maybe [SigstorePublicKey])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SigstorePublicKeySet' with the minimum fields required to make a request.+newSigstorePublicKeySet ::+  SigstorePublicKeySet+newSigstorePublicKeySet =+  SigstorePublicKeySet {publicKeys = Core.Nothing}++instance Core.FromJSON SigstorePublicKeySet where+  parseJSON =+    Core.withObject+      "SigstorePublicKeySet"+      (\o -> SigstorePublicKeySet Core.<$> (o Core..:? "publicKeys"))++instance Core.ToJSON SigstorePublicKeySet where+  toJSON SigstorePublicKeySet {..} =+    Core.object+      (Core.catMaybes [("publicKeys" Core..=) Core.<$> publicKeys])++-- | A Sigstore signature check, which verifies the Sigstore signature associated with an image.+--+-- /See:/ 'newSigstoreSignatureCheck' smart constructor.+newtype SigstoreSignatureCheck = SigstoreSignatureCheck+  { -- | Required. The authorities required by this check to verify the signature. A signature only needs to be verified by one authority to pass the check.+    sigstoreAuthorities :: (Core.Maybe [SigstoreAuthority])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SigstoreSignatureCheck' with the minimum fields required to make a request.+newSigstoreSignatureCheck ::+  SigstoreSignatureCheck+newSigstoreSignatureCheck =+  SigstoreSignatureCheck {sigstoreAuthorities = Core.Nothing}++instance Core.FromJSON SigstoreSignatureCheck where+  parseJSON =+    Core.withObject+      "SigstoreSignatureCheck"+      ( \o ->+          SigstoreSignatureCheck Core.<$> (o Core..:? "sigstoreAuthorities")+      )++instance Core.ToJSON SigstoreSignatureCheck where+  toJSON SigstoreSignatureCheck {..} =+    Core.object+      ( Core.catMaybes+          [("sigstoreAuthorities" Core..=) Core.<$> sigstoreAuthorities]+      )++-- | Require a signed <https://github.com/secure-systems-lab/dsse DSSE> attestation with type SimpleSigning.+--+-- /See:/ 'newSimpleSigningAttestationCheck' smart constructor.+data SimpleSigningAttestationCheck = SimpleSigningAttestationCheck+  { -- | Required. The authenticators required by this check to verify an attestation. Typically this is one or more PKIX public keys for signature verification. Only one authenticator needs to consider an attestation verified in order for an attestation to be considered fully authenticated. In otherwords, this list of authenticators is an \"OR\" of the authenticator results. At least one authenticator is required.+    attestationAuthenticators :: (Core.Maybe [AttestationAuthenticator]),+    -- | Optional. The projects where attestations are stored as Container Analysis Occurrences, in the format @projects\/[PROJECT_ID]@. Only one attestation needs to successfully verify an image for this check to pass, so a single verified attestation found in any of @container_analysis_attestation_projects@ is sufficient for the check to pass. A project ID must be used, not a project number. When fetching Occurrences from Container Analysis, only @AttestationOccurrence@ kinds are considered. In the future, additional Occurrence kinds may be added to the query. Maximum number of @container_analysis_attestation_projects@ allowed in each @SimpleSigningAttestationCheck@ is 10.+    containerAnalysisAttestationProjects :: (Core.Maybe [Core.Text])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SimpleSigningAttestationCheck' with the minimum fields required to make a request.+newSimpleSigningAttestationCheck ::+  SimpleSigningAttestationCheck+newSimpleSigningAttestationCheck =+  SimpleSigningAttestationCheck+    { attestationAuthenticators =+        Core.Nothing,+      containerAnalysisAttestationProjects = Core.Nothing+    }++instance Core.FromJSON SimpleSigningAttestationCheck where+  parseJSON =+    Core.withObject+      "SimpleSigningAttestationCheck"+      ( \o ->+          SimpleSigningAttestationCheck+            Core.<$> (o Core..:? "attestationAuthenticators")+            Core.<*> (o Core..:? "containerAnalysisAttestationProjects")+      )++instance Core.ToJSON SimpleSigningAttestationCheck where+  toJSON SimpleSigningAttestationCheck {..} =+    Core.object+      ( Core.catMaybes+          [ ("attestationAuthenticators" Core..=)+              Core.<$> attestationAuthenticators,+            ("containerAnalysisAttestationProjects" Core..=)+              Core.<$> containerAnalysisAttestationProjects+          ]+      )++-- | A SLSA provenance attestation check, which ensures that images are built by a trusted builder using source code from its trusted repositories only.+--+-- /See:/ 'newSlsaCheck' smart constructor.+newtype SlsaCheck = SlsaCheck+  { -- | Specifies a list of verification rules for the SLSA attestations. An image is considered compliant with the SlsaCheck if any of the rules are satisfied.+    rules :: (Core.Maybe [VerificationRule])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SlsaCheck' with the minimum fields required to make a request.+newSlsaCheck ::+  SlsaCheck+newSlsaCheck = SlsaCheck {rules = Core.Nothing}++instance Core.FromJSON SlsaCheck where+  parseJSON =+    Core.withObject+      "SlsaCheck"+      (\o -> SlsaCheck Core.<$> (o Core..:? "rules"))++instance Core.ToJSON SlsaCheck where+  toJSON SlsaCheck {..} =+    Core.object (Core.catMaybes [("rules" Core..=) Core.<$> rules])++-- | Request message for @TestIamPermissions@ method.+--+-- /See:/ 'newTestIamPermissionsRequest' smart constructor.+newtype TestIamPermissionsRequest = TestIamPermissionsRequest+  { -- | The set of permissions to check for the @resource@. Permissions with wildcards (such as @*@ or @storage.*@) are not allowed. For more information see <https://cloud.google.com/iam/docs/overview#permissions IAM Overview>.+    permissions :: (Core.Maybe [Core.Text])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'TestIamPermissionsRequest' with the minimum fields required to make a request.+newTestIamPermissionsRequest ::+  TestIamPermissionsRequest+newTestIamPermissionsRequest =+  TestIamPermissionsRequest {permissions = Core.Nothing}++instance Core.FromJSON TestIamPermissionsRequest where+  parseJSON =+    Core.withObject+      "TestIamPermissionsRequest"+      ( \o ->+          TestIamPermissionsRequest Core.<$> (o Core..:? "permissions")+      )++instance Core.ToJSON TestIamPermissionsRequest where+  toJSON TestIamPermissionsRequest {..} =+    Core.object+      (Core.catMaybes [("permissions" Core..=) Core.<$> permissions])++-- | Response message for @TestIamPermissions@ method.+--+-- /See:/ 'newTestIamPermissionsResponse' smart constructor.+newtype TestIamPermissionsResponse = TestIamPermissionsResponse+  { -- | A subset of @TestPermissionsRequest.permissions@ that the caller is allowed.+    permissions :: (Core.Maybe [Core.Text])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'TestIamPermissionsResponse' with the minimum fields required to make a request.+newTestIamPermissionsResponse ::+  TestIamPermissionsResponse+newTestIamPermissionsResponse =+  TestIamPermissionsResponse {permissions = Core.Nothing}++instance Core.FromJSON TestIamPermissionsResponse where+  parseJSON =+    Core.withObject+      "TestIamPermissionsResponse"+      ( \o ->+          TestIamPermissionsResponse Core.<$> (o Core..:? "permissions")+      )++instance Core.ToJSON TestIamPermissionsResponse where+  toJSON TestIamPermissionsResponse {..} =+    Core.object+      (Core.catMaybes [("permissions" Core..=) Core.<$> permissions])++-- | A trusted directory check, which rejects images that do not come from the set of user-configured trusted directories.+--+-- /See:/ 'newTrustedDirectoryCheck' smart constructor.+newtype TrustedDirectoryCheck = TrustedDirectoryCheck+  { -- | Required. List of trusted directory patterns. A pattern is in the form \"registry\/path\/to\/directory\". The registry domain part is defined as two or more dot-separated words, e.g., @us.pkg.dev@, or @gcr.io@. Additionally, @*@ can be used in three ways as wildcards: 1. leading @*@ to match varying prefixes in registry subdomain (useful for location prefixes); 2. trailing @*@ after registry\/ to match varying endings; 3. trailing @**@ after registry\/ to match \"\/\" as well. For example: -- @gcr.io\/my-project\/my-repo@ is valid to match a single directory -- @*-docker.pkg.dev\/my-project\/my-repo@ or @*.gcr.io\/my-project@ are valid to match varying prefixes -- @gcr.io\/my-project\/*@ will match all direct directories in @my-project@ -- @gcr.io\/my-project\/**@ would match all directories in @my-project@ -- @gcr.i*@ is not allowed since the registry is not completely specified -- @sub*domain.gcr.io\/nginx@ is not valid because only leading @*@ or trailing @*@ are allowed. -- @*pkg.dev\/my-project\/my-repo@+    -- is not valid because leading @*@ can only match subdomain -- @**-docker.pkg.dev@ is not valid because one leading @*@ is allowed, and that it cannot match @\/@+    trustedDirPatterns :: (Core.Maybe [Core.Text])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'TrustedDirectoryCheck' with the minimum fields required to make a request.+newTrustedDirectoryCheck ::+  TrustedDirectoryCheck+newTrustedDirectoryCheck =+  TrustedDirectoryCheck {trustedDirPatterns = Core.Nothing}++instance Core.FromJSON TrustedDirectoryCheck where+  parseJSON =+    Core.withObject+      "TrustedDirectoryCheck"+      ( \o ->+          TrustedDirectoryCheck Core.<$> (o Core..:? "trustedDirPatterns")+      )++instance Core.ToJSON TrustedDirectoryCheck where+  toJSON TrustedDirectoryCheck {..} =+    Core.object+      ( Core.catMaybes+          [("trustedDirPatterns" Core..=) Core.<$> trustedDirPatterns]+      )++-- | An user owned Grafeas note references a Grafeas Attestation.Authority Note created by the user.+--+-- /See:/ 'newUserOwnedGrafeasNote' smart constructor.+data UserOwnedGrafeasNote = UserOwnedGrafeasNote+  { -- | Output only. This field will contain the service account email address that this attestor will use as the principal when querying Container Analysis. Attestor administrators must grant this service account the IAM role needed to read attestations from the note_reference in Container Analysis (@containeranalysis.notes.occurrences.viewer@). This email address is fixed for the lifetime of the attestor, but callers should not make any other assumptions about the service account email; future versions may use an email based on a different naming pattern.+    delegationServiceAccountEmail :: (Core.Maybe Core.Text),+    -- | Required. The Grafeas resource name of a Attestation.Authority Note, created by the user, in the format: @projects\/[PROJECT_ID]\/notes\/*@. This field may not be updated. A project ID must be used, not a project number. An attestation by this attestor is stored as a Grafeas Attestation.Authority Occurrence that names a container image and that links to this Note. Grafeas is an external dependency.+    noteReference :: (Core.Maybe Core.Text),+    -- | Optional. Public keys that verify attestations signed by this attestor. This field may be updated. If this field is non-empty, one of the specified public keys must verify that an attestation was signed by this attestor for the image specified in the admission request. If this field is empty, this attestor always returns that no valid attestations exist.+    publicKeys :: (Core.Maybe [AttestorPublicKey])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'UserOwnedGrafeasNote' with the minimum fields required to make a request.+newUserOwnedGrafeasNote ::+  UserOwnedGrafeasNote+newUserOwnedGrafeasNote =+  UserOwnedGrafeasNote+    { delegationServiceAccountEmail =+        Core.Nothing,+      noteReference = Core.Nothing,+      publicKeys = Core.Nothing+    }++instance Core.FromJSON UserOwnedGrafeasNote where+  parseJSON =+    Core.withObject+      "UserOwnedGrafeasNote"+      ( \o ->+          UserOwnedGrafeasNote+            Core.<$> (o Core..:? "delegationServiceAccountEmail")+            Core.<*> (o Core..:? "noteReference")+            Core.<*> (o Core..:? "publicKeys")+      )++instance Core.ToJSON UserOwnedGrafeasNote where+  toJSON UserOwnedGrafeasNote {..} =+    Core.object+      ( Core.catMaybes+          [ ("delegationServiceAccountEmail" Core..=)+              Core.<$> delegationServiceAccountEmail,+            ("noteReference" Core..=) Core.<$> noteReference,+            ("publicKeys" Core..=) Core.<$> publicKeys+          ]+      )++-- | Request message for ValidationHelperV1.ValidateAttestationOccurrence.+--+-- /See:/ 'newValidateAttestationOccurrenceRequest' smart constructor.+data ValidateAttestationOccurrenceRequest = ValidateAttestationOccurrenceRequest+  { -- | Required. An AttestationOccurrence to be checked that it can be verified by the @Attestor@. It does not have to be an existing entity in Container Analysis. It must otherwise be a valid @AttestationOccurrence@.+    attestation :: (Core.Maybe AttestationOccurrence),+    -- | Required. The resource name of the Note to which the containing Occurrence is associated.+    occurrenceNote :: (Core.Maybe Core.Text),+    -- | Required. The URI of the artifact (e.g. container image) that is the subject of the containing Occurrence.+    occurrenceResourceUri :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ValidateAttestationOccurrenceRequest' with the minimum fields required to make a request.+newValidateAttestationOccurrenceRequest ::+  ValidateAttestationOccurrenceRequest+newValidateAttestationOccurrenceRequest =+  ValidateAttestationOccurrenceRequest+    { attestation = Core.Nothing,+      occurrenceNote = Core.Nothing,+      occurrenceResourceUri = Core.Nothing+    }++instance Core.FromJSON ValidateAttestationOccurrenceRequest where+  parseJSON =+    Core.withObject+      "ValidateAttestationOccurrenceRequest"+      ( \o ->+          ValidateAttestationOccurrenceRequest+            Core.<$> (o Core..:? "attestation")+            Core.<*> (o Core..:? "occurrenceNote")+            Core.<*> (o Core..:? "occurrenceResourceUri")+      )++instance Core.ToJSON ValidateAttestationOccurrenceRequest where+  toJSON ValidateAttestationOccurrenceRequest {..} =+    Core.object+      ( Core.catMaybes+          [ ("attestation" Core..=) Core.<$> attestation,+            ("occurrenceNote" Core..=) Core.<$> occurrenceNote,+            ("occurrenceResourceUri" Core..=) Core.<$> occurrenceResourceUri+          ]+      )++-- | Response message for ValidationHelperV1.ValidateAttestationOccurrence.+--+-- /See:/ 'newValidateAttestationOccurrenceResponse' smart constructor.+data ValidateAttestationOccurrenceResponse = ValidateAttestationOccurrenceResponse+  { -- | The reason for denial if the Attestation couldn\'t be validated.+    denialReason :: (Core.Maybe Core.Text),+    -- | The result of the Attestation validation.+    result :: (Core.Maybe ValidateAttestationOccurrenceResponse_Result)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ValidateAttestationOccurrenceResponse' with the minimum fields required to make a request.+newValidateAttestationOccurrenceResponse ::+  ValidateAttestationOccurrenceResponse+newValidateAttestationOccurrenceResponse =+  ValidateAttestationOccurrenceResponse+    { denialReason =+        Core.Nothing,+      result = Core.Nothing+    }++instance Core.FromJSON ValidateAttestationOccurrenceResponse where+  parseJSON =+    Core.withObject+      "ValidateAttestationOccurrenceResponse"+      ( \o ->+          ValidateAttestationOccurrenceResponse+            Core.<$> (o Core..:? "denialReason")+            Core.<*> (o Core..:? "result")+      )++instance Core.ToJSON ValidateAttestationOccurrenceResponse where+  toJSON ValidateAttestationOccurrenceResponse {..} =+    Core.object+      ( Core.catMaybes+          [ ("denialReason" Core..=) Core.<$> denialReason,+            ("result" Core..=) Core.<$> result+          ]+      )++-- | Specifies verification rules for evaluating the SLSA attestations including: which builders to trust, where to fetch the SLSA attestations generated by those builders, and other builder-specific evaluation rules such as which source repositories are trusted. An image is considered verified by the rule if any of the fetched SLSA attestations is verified.+--+-- /See:/ 'newVerificationRule' smart constructor.+data VerificationRule = VerificationRule+  { -- | Specifies where to fetch the provenances attestations generated by the builder (group).+    attestationSource :: (Core.Maybe AttestationSource),+    -- | If true, require the image to be built from a top-level configuration. @trusted_source_repo_patterns@ specifies the repositories containing this configuration.+    configBasedBuildRequired :: (Core.Maybe Core.Bool),+    -- | Each verification rule is used for evaluation against provenances generated by a specific builder (group). For some of the builders, such as the Google Cloud Build, users don\'t need to explicitly specify their roots of trust in the policy since the evaluation service can automatically fetch them based on the builder (group).+    trustedBuilder :: (Core.Maybe VerificationRule_TrustedBuilder),+    -- | List of trusted source code repository URL patterns. These patterns match the full repository URL without its scheme (e.g. @https:\/\/@). The patterns must not include schemes. For example, the pattern @source.cloud.google.com\/my-project\/my-repo-name@ matches the following URLs: - @source.cloud.google.com\/my-project\/my-repo-name@ - @git+ssh:\/\/source.cloud.google.com\/my-project\/my-repo-name@ - @https:\/\/source.cloud.google.com\/my-project\/my-repo-name@ A pattern matches a URL either exactly or with @*@ wildcards. @*@ can be used in only two ways: 1. trailing @*@ after hosturi\/ to match varying endings; 2. trailing @**@ after hosturi\/ to match @\/@ as well. @*@ and @**@ can only be used as wildcards and can only occur at the end of the pattern after a @\/@. (So it\'s not possible to match a URL that contains literal @*@.) For example: - @github.com\/my-project\/my-repo@ is valid to match a single repo - @github.com\/my-project\/*@ will match all direct repos in @my-project@ - @github.com\/**@+    -- matches all repos in GitHub+    trustedSourceRepoPatterns :: (Core.Maybe [Core.Text])+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'VerificationRule' with the minimum fields required to make a request.+newVerificationRule ::+  VerificationRule+newVerificationRule =+  VerificationRule+    { attestationSource = Core.Nothing,+      configBasedBuildRequired = Core.Nothing,+      trustedBuilder = Core.Nothing,+      trustedSourceRepoPatterns = Core.Nothing+    }++instance Core.FromJSON VerificationRule where+  parseJSON =+    Core.withObject+      "VerificationRule"+      ( \o ->+          VerificationRule+            Core.<$> (o Core..:? "attestationSource")+            Core.<*> (o Core..:? "configBasedBuildRequired")+            Core.<*> (o Core..:? "trustedBuilder")+            Core.<*> (o Core..:? "trustedSourceRepoPatterns")+      )++instance Core.ToJSON VerificationRule where+  toJSON VerificationRule {..} =+    Core.object+      ( Core.catMaybes+          [ ("attestationSource" Core..=) Core.<$> attestationSource,+            ("configBasedBuildRequired" Core..=)+              Core.<$> configBasedBuildRequired,+            ("trustedBuilder" Core..=) Core.<$> trustedBuilder,+            ("trustedSourceRepoPatterns" Core..=)+              Core.<$> trustedSourceRepoPatterns+          ]+      )++-- | An image vulnerability check, which rejects images that violate the configured vulnerability rules.+--+-- /See:/ 'newVulnerabilityCheck' smart constructor.+data VulnerabilityCheck = VulnerabilityCheck+  { -- | Optional. A list of specific CVEs to ignore even if the vulnerability level violates @maximumUnfixableSeverity@ or @maximumFixableSeverity@. CVEs are listed in the format of Container Analysis note id. For example: - CVE-2021-20305 - CVE-2020-10543 The CVEs are applicable regardless of note provider project, e.g., an entry of @CVE-2021-20305@ will allow vulnerabilities with a note name of either @projects\/goog-vulnz\/notes\/CVE-2021-20305@ or @projects\/CUSTOM-PROJECT\/notes\/CVE-2021-20305@.+    allowedCves :: (Core.Maybe [Core.Text]),+    -- | Optional. A list of specific CVEs to always raise warnings about even if the vulnerability level meets @maximumUnfixableSeverity@ or @maximumFixableSeverity@. CVEs are listed in the format of Container Analysis note id. For example: - CVE-2021-20305 - CVE-2020-10543 The CVEs are applicable regardless of note provider project, e.g., an entry of @CVE-2021-20305@ will block vulnerabilities with a note name of either @projects\/goog-vulnz\/notes\/CVE-2021-20305@ or @projects\/CUSTOM-PROJECT\/notes\/CVE-2021-20305@.+    blockedCves :: (Core.Maybe [Core.Text]),+    -- | Optional. The projects where vulnerabilities are stored as Container Analysis Occurrences. Each project is expressed in the resource format of @projects\/[PROJECT_ID]@, e.g., @projects\/my-gcp-project@. An attempt will be made for each project to fetch vulnerabilities, and all valid vulnerabilities will be used to check against the vulnerability policy. If no valid scan is found in all projects configured here, an error will be returned for the check. Maximum number of @container_analysis_vulnerability_projects@ allowed in each @VulnerabilityCheck@ is 10.+    containerAnalysisVulnerabilityProjects :: (Core.Maybe [Core.Text]),+    -- | Required. The threshold for severity for which a fix is currently available. This field is required and must be set.+    maximumFixableSeverity :: (Core.Maybe VulnerabilityCheck_MaximumFixableSeverity),+    -- | Required. The threshold for severity for which a fix isn\'t currently available. This field is required and must be set.+    maximumUnfixableSeverity :: (Core.Maybe VulnerabilityCheck_MaximumUnfixableSeverity)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'VulnerabilityCheck' with the minimum fields required to make a request.+newVulnerabilityCheck ::+  VulnerabilityCheck+newVulnerabilityCheck =+  VulnerabilityCheck+    { allowedCves = Core.Nothing,+      blockedCves = Core.Nothing,+      containerAnalysisVulnerabilityProjects = Core.Nothing,+      maximumFixableSeverity = Core.Nothing,+      maximumUnfixableSeverity = Core.Nothing+    }++instance Core.FromJSON VulnerabilityCheck where+  parseJSON =+    Core.withObject+      "VulnerabilityCheck"+      ( \o ->+          VulnerabilityCheck+            Core.<$> (o Core..:? "allowedCves")+            Core.<*> (o Core..:? "blockedCves")+            Core.<*> (o Core..:? "containerAnalysisVulnerabilityProjects")+            Core.<*> (o Core..:? "maximumFixableSeverity")+            Core.<*> (o Core..:? "maximumUnfixableSeverity")+      )++instance Core.ToJSON VulnerabilityCheck where+  toJSON VulnerabilityCheck {..} =+    Core.object+      ( Core.catMaybes+          [ ("allowedCves" Core..=) Core.<$> allowedCves,+            ("blockedCves" Core..=) Core.<$> blockedCves,+            ("containerAnalysisVulnerabilityProjects" Core..=)+              Core.<$> containerAnalysisVulnerabilityProjects,+            ("maximumFixableSeverity" Core..=) Core.<$> maximumFixableSeverity,+            ("maximumUnfixableSeverity" Core..=)+              Core.<$> maximumUnfixableSeverity+          ]+      )
+ gen/Gogol/BinaryAuthorization/Internal/Sum.hs view
@@ -0,0 +1,723 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Internal.Sum+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Gogol.BinaryAuthorization.Internal.Sum+  ( -- * Xgafv+    Xgafv+      ( Xgafv_1,+        Xgafv_2,+        ..+      ),++    -- * AdmissionRule_EnforcementMode+    AdmissionRule_EnforcementMode+      ( AdmissionRule_EnforcementMode_ENFORCEMENTMODEUNSPECIFIED,+        AdmissionRule_EnforcementMode_ENFORCEDBLOCKANDAUDITLOG,+        AdmissionRule_EnforcementMode_DRYRUNAUDITLOGONLY,+        ..+      ),++    -- * AdmissionRule_EvaluationMode+    AdmissionRule_EvaluationMode+      ( AdmissionRule_EvaluationMode_EVALUATIONMODEUNSPECIFIED,+        AdmissionRule_EvaluationMode_ALWAYSALLOW,+        AdmissionRule_EvaluationMode_REQUIREATTESTATION,+        AdmissionRule_EvaluationMode_ALWAYSDENY,+        ..+      ),++    -- * EvaluateGkePolicyResponse_Verdict+    EvaluateGkePolicyResponse_Verdict+      ( EvaluateGkePolicyResponse_Verdict_VERDICTUNSPECIFIED,+        EvaluateGkePolicyResponse_Verdict_Conformant,+        EvaluateGkePolicyResponse_Verdict_NONCONFORMANT,+        EvaluateGkePolicyResponse_Verdict_Error',+        ..+      ),++    -- * EvaluationResult_Verdict+    EvaluationResult_Verdict+      ( EvaluationResult_Verdict_CHECKVERDICTUNSPECIFIED,+        EvaluationResult_Verdict_Conformant,+        EvaluationResult_Verdict_NONCONFORMANT,+        EvaluationResult_Verdict_Error',+        ..+      ),++    -- * ImageResult_Verdict+    ImageResult_Verdict+      ( ImageResult_Verdict_IMAGEVERDICTUNSPECIFIED,+        ImageResult_Verdict_Conformant,+        ImageResult_Verdict_NONCONFORMANT,+        ImageResult_Verdict_Error',+        ..+      ),++    -- * PkixPublicKey_SignatureAlgorithm+    PkixPublicKey_SignatureAlgorithm+      ( PkixPublicKey_SignatureAlgorithm_SIGNATUREALGORITHMUNSPECIFIED,+        PkixPublicKey_SignatureAlgorithm_RSA_PSS_2048_SHA256,+        PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PSS_2048_SHA256,+        PkixPublicKey_SignatureAlgorithm_RSA_PSS_3072_SHA256,+        PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PSS_3072_SHA256,+        PkixPublicKey_SignatureAlgorithm_RSA_PSS_4096_SHA256,+        PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PSS_4096_SHA256,+        PkixPublicKey_SignatureAlgorithm_RSA_PSS_4096_SHA512,+        PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PSS_4096_SHA512,+        PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PKCS1_2048_SHA256,+        PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PKCS1_3072_SHA256,+        PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PKCS1_4096_SHA256,+        PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PKCS1_4096_SHA512,+        PkixPublicKey_SignatureAlgorithm_ECDSA_P256_SHA256,+        PkixPublicKey_SignatureAlgorithm_EC_SIGN_P256_SHA256,+        PkixPublicKey_SignatureAlgorithm_ECDSA_P384_SHA384,+        PkixPublicKey_SignatureAlgorithm_EC_SIGN_P384_SHA384,+        PkixPublicKey_SignatureAlgorithm_ECDSA_P521_SHA512,+        PkixPublicKey_SignatureAlgorithm_EC_SIGN_P521_SHA512,+        ..+      ),++    -- * PodResult_Verdict+    PodResult_Verdict+      ( PodResult_Verdict_PODVERDICTUNSPECIFIED,+        PodResult_Verdict_Conformant,+        PodResult_Verdict_NONCONFORMANT,+        PodResult_Verdict_Error',+        ..+      ),++    -- * Policy_GlobalPolicyEvaluationMode+    Policy_GlobalPolicyEvaluationMode+      ( Policy_GlobalPolicyEvaluationMode_GLOBALPOLICYEVALUATIONMODEUNSPECIFIED,+        Policy_GlobalPolicyEvaluationMode_Enable,+        Policy_GlobalPolicyEvaluationMode_Disable,+        ..+      ),++    -- * ValidateAttestationOccurrenceResponse_Result+    ValidateAttestationOccurrenceResponse_Result+      ( ValidateAttestationOccurrenceResponse_Result_RESULTUNSPECIFIED,+        ValidateAttestationOccurrenceResponse_Result_Verified,+        ValidateAttestationOccurrenceResponse_Result_ATTESTATIONNOTVERIFIABLE,+        ..+      ),++    -- * VerificationRule_TrustedBuilder+    VerificationRule_TrustedBuilder+      ( VerificationRule_TrustedBuilder_BUILDERUNSPECIFIED,+        VerificationRule_TrustedBuilder_GOOGLECLOUDBUILD,+        ..+      ),++    -- * VulnerabilityCheck_MaximumFixableSeverity+    VulnerabilityCheck_MaximumFixableSeverity+      ( VulnerabilityCheck_MaximumFixableSeverity_MAXIMUMALLOWEDSEVERITYUNSPECIFIED,+        VulnerabilityCheck_MaximumFixableSeverity_BLOCKALL,+        VulnerabilityCheck_MaximumFixableSeverity_Minimal,+        VulnerabilityCheck_MaximumFixableSeverity_Low,+        VulnerabilityCheck_MaximumFixableSeverity_Medium,+        VulnerabilityCheck_MaximumFixableSeverity_High,+        VulnerabilityCheck_MaximumFixableSeverity_Critical,+        VulnerabilityCheck_MaximumFixableSeverity_ALLOWALL,+        ..+      ),++    -- * VulnerabilityCheck_MaximumUnfixableSeverity+    VulnerabilityCheck_MaximumUnfixableSeverity+      ( VulnerabilityCheck_MaximumUnfixableSeverity_MAXIMUMALLOWEDSEVERITYUNSPECIFIED,+        VulnerabilityCheck_MaximumUnfixableSeverity_BLOCKALL,+        VulnerabilityCheck_MaximumUnfixableSeverity_Minimal,+        VulnerabilityCheck_MaximumUnfixableSeverity_Low,+        VulnerabilityCheck_MaximumUnfixableSeverity_Medium,+        VulnerabilityCheck_MaximumUnfixableSeverity_High,+        VulnerabilityCheck_MaximumUnfixableSeverity_Critical,+        VulnerabilityCheck_MaximumUnfixableSeverity_ALLOWALL,+        ..+      ),+  )+where++import Gogol.Prelude qualified as Core++-- | V1 error format.+newtype Xgafv = Xgafv {fromXgafv :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | v1 error format+pattern Xgafv_1 :: Xgafv+pattern Xgafv_1 = Xgafv "1"++-- | v2 error format+pattern Xgafv_2 :: Xgafv+pattern Xgafv_2 = Xgafv "2"++{-# COMPLETE+  Xgafv_1,+  Xgafv_2,+  Xgafv+  #-}++-- | Required. The action when a pod creation is denied by the admission rule.+newtype AdmissionRule_EnforcementMode = AdmissionRule_EnforcementMode {fromAdmissionRule_EnforcementMode :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | Do not use.+pattern AdmissionRule_EnforcementMode_ENFORCEMENTMODEUNSPECIFIED :: AdmissionRule_EnforcementMode+pattern AdmissionRule_EnforcementMode_ENFORCEMENTMODEUNSPECIFIED = AdmissionRule_EnforcementMode "ENFORCEMENT_MODE_UNSPECIFIED"++-- | Enforce the admission rule by blocking the pod creation.+pattern AdmissionRule_EnforcementMode_ENFORCEDBLOCKANDAUDITLOG :: AdmissionRule_EnforcementMode+pattern AdmissionRule_EnforcementMode_ENFORCEDBLOCKANDAUDITLOG = AdmissionRule_EnforcementMode "ENFORCED_BLOCK_AND_AUDIT_LOG"++-- | Dryrun mode: Audit logging only. This will allow the pod creation as if the admission request had specified break-glass.+pattern AdmissionRule_EnforcementMode_DRYRUNAUDITLOGONLY :: AdmissionRule_EnforcementMode+pattern AdmissionRule_EnforcementMode_DRYRUNAUDITLOGONLY = AdmissionRule_EnforcementMode "DRYRUN_AUDIT_LOG_ONLY"++{-# COMPLETE+  AdmissionRule_EnforcementMode_ENFORCEMENTMODEUNSPECIFIED,+  AdmissionRule_EnforcementMode_ENFORCEDBLOCKANDAUDITLOG,+  AdmissionRule_EnforcementMode_DRYRUNAUDITLOGONLY,+  AdmissionRule_EnforcementMode+  #-}++-- | Required. How this admission rule will be evaluated.+newtype AdmissionRule_EvaluationMode = AdmissionRule_EvaluationMode {fromAdmissionRule_EvaluationMode :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | Do not use.+pattern AdmissionRule_EvaluationMode_EVALUATIONMODEUNSPECIFIED :: AdmissionRule_EvaluationMode+pattern AdmissionRule_EvaluationMode_EVALUATIONMODEUNSPECIFIED = AdmissionRule_EvaluationMode "EVALUATION_MODE_UNSPECIFIED"++-- | This rule allows all pod creations.+pattern AdmissionRule_EvaluationMode_ALWAYSALLOW :: AdmissionRule_EvaluationMode+pattern AdmissionRule_EvaluationMode_ALWAYSALLOW = AdmissionRule_EvaluationMode "ALWAYS_ALLOW"++-- | This rule allows a pod creation if all the attestors listed in @require_attestations_by@ have valid attestations for all of the images in the pod spec.+pattern AdmissionRule_EvaluationMode_REQUIREATTESTATION :: AdmissionRule_EvaluationMode+pattern AdmissionRule_EvaluationMode_REQUIREATTESTATION = AdmissionRule_EvaluationMode "REQUIRE_ATTESTATION"++-- | This rule denies all pod creations.+pattern AdmissionRule_EvaluationMode_ALWAYSDENY :: AdmissionRule_EvaluationMode+pattern AdmissionRule_EvaluationMode_ALWAYSDENY = AdmissionRule_EvaluationMode "ALWAYS_DENY"++{-# COMPLETE+  AdmissionRule_EvaluationMode_EVALUATIONMODEUNSPECIFIED,+  AdmissionRule_EvaluationMode_ALWAYSALLOW,+  AdmissionRule_EvaluationMode_REQUIREATTESTATION,+  AdmissionRule_EvaluationMode_ALWAYSDENY,+  AdmissionRule_EvaluationMode+  #-}++-- | The result of evaluating all Pods in the request.+newtype EvaluateGkePolicyResponse_Verdict = EvaluateGkePolicyResponse_Verdict {fromEvaluateGkePolicyResponse_Verdict :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | Not specified. This should never be used.+pattern EvaluateGkePolicyResponse_Verdict_VERDICTUNSPECIFIED :: EvaluateGkePolicyResponse_Verdict+pattern EvaluateGkePolicyResponse_Verdict_VERDICTUNSPECIFIED = EvaluateGkePolicyResponse_Verdict "VERDICT_UNSPECIFIED"++-- | All Pods in the request conform to the policy.+pattern EvaluateGkePolicyResponse_Verdict_Conformant :: EvaluateGkePolicyResponse_Verdict+pattern EvaluateGkePolicyResponse_Verdict_Conformant = EvaluateGkePolicyResponse_Verdict "CONFORMANT"++-- | At least one Pod does not conform to the policy.+pattern EvaluateGkePolicyResponse_Verdict_NONCONFORMANT :: EvaluateGkePolicyResponse_Verdict+pattern EvaluateGkePolicyResponse_Verdict_NONCONFORMANT = EvaluateGkePolicyResponse_Verdict "NON_CONFORMANT"++-- | Encountered at least one error evaluating a Pod and all other Pods conform to the policy. Non-conformance has precedence over errors.+pattern EvaluateGkePolicyResponse_Verdict_Error' :: EvaluateGkePolicyResponse_Verdict+pattern EvaluateGkePolicyResponse_Verdict_Error' = EvaluateGkePolicyResponse_Verdict "ERROR"++{-# COMPLETE+  EvaluateGkePolicyResponse_Verdict_VERDICTUNSPECIFIED,+  EvaluateGkePolicyResponse_Verdict_Conformant,+  EvaluateGkePolicyResponse_Verdict_NONCONFORMANT,+  EvaluateGkePolicyResponse_Verdict_Error',+  EvaluateGkePolicyResponse_Verdict+  #-}++-- | The result of evaluating this check.+newtype EvaluationResult_Verdict = EvaluationResult_Verdict {fromEvaluationResult_Verdict :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | Not specified. This should never be used.+pattern EvaluationResult_Verdict_CHECKVERDICTUNSPECIFIED :: EvaluationResult_Verdict+pattern EvaluationResult_Verdict_CHECKVERDICTUNSPECIFIED = EvaluationResult_Verdict "CHECK_VERDICT_UNSPECIFIED"++-- | The check was successfully evaluated and the image satisfied the check.+pattern EvaluationResult_Verdict_Conformant :: EvaluationResult_Verdict+pattern EvaluationResult_Verdict_Conformant = EvaluationResult_Verdict "CONFORMANT"++-- | The check was successfully evaluated and the image did not satisfy the check.+pattern EvaluationResult_Verdict_NONCONFORMANT :: EvaluationResult_Verdict+pattern EvaluationResult_Verdict_NONCONFORMANT = EvaluationResult_Verdict "NON_CONFORMANT"++-- | The check was not successfully evaluated.+pattern EvaluationResult_Verdict_Error' :: EvaluationResult_Verdict+pattern EvaluationResult_Verdict_Error' = EvaluationResult_Verdict "ERROR"++{-# COMPLETE+  EvaluationResult_Verdict_CHECKVERDICTUNSPECIFIED,+  EvaluationResult_Verdict_Conformant,+  EvaluationResult_Verdict_NONCONFORMANT,+  EvaluationResult_Verdict_Error',+  EvaluationResult_Verdict+  #-}++-- | The result of evaluating this image.+newtype ImageResult_Verdict = ImageResult_Verdict {fromImageResult_Verdict :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | Not specified. This should never be used.+pattern ImageResult_Verdict_IMAGEVERDICTUNSPECIFIED :: ImageResult_Verdict+pattern ImageResult_Verdict_IMAGEVERDICTUNSPECIFIED = ImageResult_Verdict "IMAGE_VERDICT_UNSPECIFIED"++-- | Image conforms to the policy.+pattern ImageResult_Verdict_Conformant :: ImageResult_Verdict+pattern ImageResult_Verdict_Conformant = ImageResult_Verdict "CONFORMANT"++-- | Image does not conform to the policy.+pattern ImageResult_Verdict_NONCONFORMANT :: ImageResult_Verdict+pattern ImageResult_Verdict_NONCONFORMANT = ImageResult_Verdict "NON_CONFORMANT"++-- | Error evaluating the image. Non-conformance has precedence over errors.+pattern ImageResult_Verdict_Error' :: ImageResult_Verdict+pattern ImageResult_Verdict_Error' = ImageResult_Verdict "ERROR"++{-# COMPLETE+  ImageResult_Verdict_IMAGEVERDICTUNSPECIFIED,+  ImageResult_Verdict_Conformant,+  ImageResult_Verdict_NONCONFORMANT,+  ImageResult_Verdict_Error',+  ImageResult_Verdict+  #-}++-- | The signature algorithm used to verify a message against a signature using this key. These signature algorithm must match the structure and any object identifiers encoded in @public_key_pem@ (i.e. this algorithm must match that of the public key).+newtype PkixPublicKey_SignatureAlgorithm = PkixPublicKey_SignatureAlgorithm {fromPkixPublicKey_SignatureAlgorithm :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | Not specified.+pattern PkixPublicKey_SignatureAlgorithm_SIGNATUREALGORITHMUNSPECIFIED :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_SIGNATUREALGORITHMUNSPECIFIED = PkixPublicKey_SignatureAlgorithm "SIGNATURE_ALGORITHM_UNSPECIFIED"++-- | RSASSA-PSS 2048 bit key with a SHA256 digest.+pattern PkixPublicKey_SignatureAlgorithm_RSA_PSS_2048_SHA256 :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_RSA_PSS_2048_SHA256 = PkixPublicKey_SignatureAlgorithm "RSA_PSS_2048_SHA256"++-- | RSASSA-PSS 2048 bit key with a SHA256 digest.+pattern PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PSS_2048_SHA256 :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PSS_2048_SHA256 = PkixPublicKey_SignatureAlgorithm "RSA_SIGN_PSS_2048_SHA256"++-- | RSASSA-PSS 3072 bit key with a SHA256 digest.+pattern PkixPublicKey_SignatureAlgorithm_RSA_PSS_3072_SHA256 :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_RSA_PSS_3072_SHA256 = PkixPublicKey_SignatureAlgorithm "RSA_PSS_3072_SHA256"++-- | RSASSA-PSS 3072 bit key with a SHA256 digest.+pattern PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PSS_3072_SHA256 :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PSS_3072_SHA256 = PkixPublicKey_SignatureAlgorithm "RSA_SIGN_PSS_3072_SHA256"++-- | RSASSA-PSS 4096 bit key with a SHA256 digest.+pattern PkixPublicKey_SignatureAlgorithm_RSA_PSS_4096_SHA256 :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_RSA_PSS_4096_SHA256 = PkixPublicKey_SignatureAlgorithm "RSA_PSS_4096_SHA256"++-- | RSASSA-PSS 4096 bit key with a SHA256 digest.+pattern PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PSS_4096_SHA256 :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PSS_4096_SHA256 = PkixPublicKey_SignatureAlgorithm "RSA_SIGN_PSS_4096_SHA256"++-- | RSASSA-PSS 4096 bit key with a SHA512 digest.+pattern PkixPublicKey_SignatureAlgorithm_RSA_PSS_4096_SHA512 :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_RSA_PSS_4096_SHA512 = PkixPublicKey_SignatureAlgorithm "RSA_PSS_4096_SHA512"++-- | RSASSA-PSS 4096 bit key with a SHA512 digest.+pattern PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PSS_4096_SHA512 :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PSS_4096_SHA512 = PkixPublicKey_SignatureAlgorithm "RSA_SIGN_PSS_4096_SHA512"++-- | RSASSA-PKCS1-v1_5 with a 2048 bit key and a SHA256 digest.+pattern PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PKCS1_2048_SHA256 :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PKCS1_2048_SHA256 = PkixPublicKey_SignatureAlgorithm "RSA_SIGN_PKCS1_2048_SHA256"++-- | RSASSA-PKCS1-v1_5 with a 3072 bit key and a SHA256 digest.+pattern PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PKCS1_3072_SHA256 :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PKCS1_3072_SHA256 = PkixPublicKey_SignatureAlgorithm "RSA_SIGN_PKCS1_3072_SHA256"++-- | RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA256 digest.+pattern PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PKCS1_4096_SHA256 :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PKCS1_4096_SHA256 = PkixPublicKey_SignatureAlgorithm "RSA_SIGN_PKCS1_4096_SHA256"++-- | RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA512 digest.+pattern PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PKCS1_4096_SHA512 :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PKCS1_4096_SHA512 = PkixPublicKey_SignatureAlgorithm "RSA_SIGN_PKCS1_4096_SHA512"++-- | ECDSA on the NIST P-256 curve with a SHA256 digest.+pattern PkixPublicKey_SignatureAlgorithm_ECDSA_P256_SHA256 :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_ECDSA_P256_SHA256 = PkixPublicKey_SignatureAlgorithm "ECDSA_P256_SHA256"++-- | ECDSA on the NIST P-256 curve with a SHA256 digest.+pattern PkixPublicKey_SignatureAlgorithm_EC_SIGN_P256_SHA256 :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_EC_SIGN_P256_SHA256 = PkixPublicKey_SignatureAlgorithm "EC_SIGN_P256_SHA256"++-- | ECDSA on the NIST P-384 curve with a SHA384 digest.+pattern PkixPublicKey_SignatureAlgorithm_ECDSA_P384_SHA384 :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_ECDSA_P384_SHA384 = PkixPublicKey_SignatureAlgorithm "ECDSA_P384_SHA384"++-- | ECDSA on the NIST P-384 curve with a SHA384 digest.+pattern PkixPublicKey_SignatureAlgorithm_EC_SIGN_P384_SHA384 :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_EC_SIGN_P384_SHA384 = PkixPublicKey_SignatureAlgorithm "EC_SIGN_P384_SHA384"++-- | ECDSA on the NIST P-521 curve with a SHA512 digest.+pattern PkixPublicKey_SignatureAlgorithm_ECDSA_P521_SHA512 :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_ECDSA_P521_SHA512 = PkixPublicKey_SignatureAlgorithm "ECDSA_P521_SHA512"++-- | ECDSA on the NIST P-521 curve with a SHA512 digest.+pattern PkixPublicKey_SignatureAlgorithm_EC_SIGN_P521_SHA512 :: PkixPublicKey_SignatureAlgorithm+pattern PkixPublicKey_SignatureAlgorithm_EC_SIGN_P521_SHA512 = PkixPublicKey_SignatureAlgorithm "EC_SIGN_P521_SHA512"++{-# COMPLETE+  PkixPublicKey_SignatureAlgorithm_SIGNATUREALGORITHMUNSPECIFIED,+  PkixPublicKey_SignatureAlgorithm_RSA_PSS_2048_SHA256,+  PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PSS_2048_SHA256,+  PkixPublicKey_SignatureAlgorithm_RSA_PSS_3072_SHA256,+  PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PSS_3072_SHA256,+  PkixPublicKey_SignatureAlgorithm_RSA_PSS_4096_SHA256,+  PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PSS_4096_SHA256,+  PkixPublicKey_SignatureAlgorithm_RSA_PSS_4096_SHA512,+  PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PSS_4096_SHA512,+  PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PKCS1_2048_SHA256,+  PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PKCS1_3072_SHA256,+  PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PKCS1_4096_SHA256,+  PkixPublicKey_SignatureAlgorithm_RSA_SIGN_PKCS1_4096_SHA512,+  PkixPublicKey_SignatureAlgorithm_ECDSA_P256_SHA256,+  PkixPublicKey_SignatureAlgorithm_EC_SIGN_P256_SHA256,+  PkixPublicKey_SignatureAlgorithm_ECDSA_P384_SHA384,+  PkixPublicKey_SignatureAlgorithm_EC_SIGN_P384_SHA384,+  PkixPublicKey_SignatureAlgorithm_ECDSA_P521_SHA512,+  PkixPublicKey_SignatureAlgorithm_EC_SIGN_P521_SHA512,+  PkixPublicKey_SignatureAlgorithm+  #-}++-- | The result of evaluating this Pod.+newtype PodResult_Verdict = PodResult_Verdict {fromPodResult_Verdict :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | Not specified. This should never be used.+pattern PodResult_Verdict_PODVERDICTUNSPECIFIED :: PodResult_Verdict+pattern PodResult_Verdict_PODVERDICTUNSPECIFIED = PodResult_Verdict "POD_VERDICT_UNSPECIFIED"++-- | All images conform to the policy.+pattern PodResult_Verdict_Conformant :: PodResult_Verdict+pattern PodResult_Verdict_Conformant = PodResult_Verdict "CONFORMANT"++-- | At least one image does not conform to the policy.+pattern PodResult_Verdict_NONCONFORMANT :: PodResult_Verdict+pattern PodResult_Verdict_NONCONFORMANT = PodResult_Verdict "NON_CONFORMANT"++-- | Encountered at least one error evaluating an image and all other images with non-error verdicts conform to the policy. Non-conformance has precedence over errors.+pattern PodResult_Verdict_Error' :: PodResult_Verdict+pattern PodResult_Verdict_Error' = PodResult_Verdict "ERROR"++{-# COMPLETE+  PodResult_Verdict_PODVERDICTUNSPECIFIED,+  PodResult_Verdict_Conformant,+  PodResult_Verdict_NONCONFORMANT,+  PodResult_Verdict_Error',+  PodResult_Verdict+  #-}++-- | Optional. Controls the evaluation of a Google-maintained global admission policy for common system-level images. Images not covered by the global policy will be subject to the project admission policy. This setting has no effect when specified inside a global admission policy.+newtype Policy_GlobalPolicyEvaluationMode = Policy_GlobalPolicyEvaluationMode {fromPolicy_GlobalPolicyEvaluationMode :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | Not specified: @DISABLE@ is assumed.+pattern Policy_GlobalPolicyEvaluationMode_GLOBALPOLICYEVALUATIONMODEUNSPECIFIED :: Policy_GlobalPolicyEvaluationMode+pattern Policy_GlobalPolicyEvaluationMode_GLOBALPOLICYEVALUATIONMODEUNSPECIFIED = Policy_GlobalPolicyEvaluationMode "GLOBAL_POLICY_EVALUATION_MODE_UNSPECIFIED"++-- | Enables system policy evaluation.+pattern Policy_GlobalPolicyEvaluationMode_Enable :: Policy_GlobalPolicyEvaluationMode+pattern Policy_GlobalPolicyEvaluationMode_Enable = Policy_GlobalPolicyEvaluationMode "ENABLE"++-- | Disables system policy evaluation.+pattern Policy_GlobalPolicyEvaluationMode_Disable :: Policy_GlobalPolicyEvaluationMode+pattern Policy_GlobalPolicyEvaluationMode_Disable = Policy_GlobalPolicyEvaluationMode "DISABLE"++{-# COMPLETE+  Policy_GlobalPolicyEvaluationMode_GLOBALPOLICYEVALUATIONMODEUNSPECIFIED,+  Policy_GlobalPolicyEvaluationMode_Enable,+  Policy_GlobalPolicyEvaluationMode_Disable,+  Policy_GlobalPolicyEvaluationMode+  #-}++-- | The result of the Attestation validation.+newtype ValidateAttestationOccurrenceResponse_Result = ValidateAttestationOccurrenceResponse_Result {fromValidateAttestationOccurrenceResponse_Result :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | Unspecified.+pattern ValidateAttestationOccurrenceResponse_Result_RESULTUNSPECIFIED :: ValidateAttestationOccurrenceResponse_Result+pattern ValidateAttestationOccurrenceResponse_Result_RESULTUNSPECIFIED = ValidateAttestationOccurrenceResponse_Result "RESULT_UNSPECIFIED"++-- | The Attestation was able to verified by the Attestor.+pattern ValidateAttestationOccurrenceResponse_Result_Verified :: ValidateAttestationOccurrenceResponse_Result+pattern ValidateAttestationOccurrenceResponse_Result_Verified = ValidateAttestationOccurrenceResponse_Result "VERIFIED"++-- | The Attestation was not able to verified by the Attestor.+pattern ValidateAttestationOccurrenceResponse_Result_ATTESTATIONNOTVERIFIABLE :: ValidateAttestationOccurrenceResponse_Result+pattern ValidateAttestationOccurrenceResponse_Result_ATTESTATIONNOTVERIFIABLE = ValidateAttestationOccurrenceResponse_Result "ATTESTATION_NOT_VERIFIABLE"++{-# COMPLETE+  ValidateAttestationOccurrenceResponse_Result_RESULTUNSPECIFIED,+  ValidateAttestationOccurrenceResponse_Result_Verified,+  ValidateAttestationOccurrenceResponse_Result_ATTESTATIONNOTVERIFIABLE,+  ValidateAttestationOccurrenceResponse_Result+  #-}++-- | Each verification rule is used for evaluation against provenances generated by a specific builder (group). For some of the builders, such as the Google Cloud Build, users don\'t need to explicitly specify their roots of trust in the policy since the evaluation service can automatically fetch them based on the builder (group).+newtype VerificationRule_TrustedBuilder = VerificationRule_TrustedBuilder {fromVerificationRule_TrustedBuilder :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | Should never happen.+pattern VerificationRule_TrustedBuilder_BUILDERUNSPECIFIED :: VerificationRule_TrustedBuilder+pattern VerificationRule_TrustedBuilder_BUILDERUNSPECIFIED = VerificationRule_TrustedBuilder "BUILDER_UNSPECIFIED"++-- | The whole Google Cloud Build (GCB) builder group, including all GCB builder types.+pattern VerificationRule_TrustedBuilder_GOOGLECLOUDBUILD :: VerificationRule_TrustedBuilder+pattern VerificationRule_TrustedBuilder_GOOGLECLOUDBUILD = VerificationRule_TrustedBuilder "GOOGLE_CLOUD_BUILD"++{-# COMPLETE+  VerificationRule_TrustedBuilder_BUILDERUNSPECIFIED,+  VerificationRule_TrustedBuilder_GOOGLECLOUDBUILD,+  VerificationRule_TrustedBuilder+  #-}++-- | Required. The threshold for severity for which a fix is currently available. This field is required and must be set.+newtype VulnerabilityCheck_MaximumFixableSeverity = VulnerabilityCheck_MaximumFixableSeverity {fromVulnerabilityCheck_MaximumFixableSeverity :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | Not specified.+pattern VulnerabilityCheck_MaximumFixableSeverity_MAXIMUMALLOWEDSEVERITYUNSPECIFIED :: VulnerabilityCheck_MaximumFixableSeverity+pattern VulnerabilityCheck_MaximumFixableSeverity_MAXIMUMALLOWEDSEVERITYUNSPECIFIED = VulnerabilityCheck_MaximumFixableSeverity "MAXIMUM_ALLOWED_SEVERITY_UNSPECIFIED"++-- | Block any vulnerability.+pattern VulnerabilityCheck_MaximumFixableSeverity_BLOCKALL :: VulnerabilityCheck_MaximumFixableSeverity+pattern VulnerabilityCheck_MaximumFixableSeverity_BLOCKALL = VulnerabilityCheck_MaximumFixableSeverity "BLOCK_ALL"++-- | Allow only minimal severity.+pattern VulnerabilityCheck_MaximumFixableSeverity_Minimal :: VulnerabilityCheck_MaximumFixableSeverity+pattern VulnerabilityCheck_MaximumFixableSeverity_Minimal = VulnerabilityCheck_MaximumFixableSeverity "MINIMAL"++-- | Allow only low severity and lower.+pattern VulnerabilityCheck_MaximumFixableSeverity_Low :: VulnerabilityCheck_MaximumFixableSeverity+pattern VulnerabilityCheck_MaximumFixableSeverity_Low = VulnerabilityCheck_MaximumFixableSeverity "LOW"++-- | Allow medium severity and lower.+pattern VulnerabilityCheck_MaximumFixableSeverity_Medium :: VulnerabilityCheck_MaximumFixableSeverity+pattern VulnerabilityCheck_MaximumFixableSeverity_Medium = VulnerabilityCheck_MaximumFixableSeverity "MEDIUM"++-- | Allow high severity and lower.+pattern VulnerabilityCheck_MaximumFixableSeverity_High :: VulnerabilityCheck_MaximumFixableSeverity+pattern VulnerabilityCheck_MaximumFixableSeverity_High = VulnerabilityCheck_MaximumFixableSeverity "HIGH"++-- | Allow critical severity and lower.+pattern VulnerabilityCheck_MaximumFixableSeverity_Critical :: VulnerabilityCheck_MaximumFixableSeverity+pattern VulnerabilityCheck_MaximumFixableSeverity_Critical = VulnerabilityCheck_MaximumFixableSeverity "CRITICAL"++-- | Allow all severity, even vulnerability with unspecified severity.+pattern VulnerabilityCheck_MaximumFixableSeverity_ALLOWALL :: VulnerabilityCheck_MaximumFixableSeverity+pattern VulnerabilityCheck_MaximumFixableSeverity_ALLOWALL = VulnerabilityCheck_MaximumFixableSeverity "ALLOW_ALL"++{-# COMPLETE+  VulnerabilityCheck_MaximumFixableSeverity_MAXIMUMALLOWEDSEVERITYUNSPECIFIED,+  VulnerabilityCheck_MaximumFixableSeverity_BLOCKALL,+  VulnerabilityCheck_MaximumFixableSeverity_Minimal,+  VulnerabilityCheck_MaximumFixableSeverity_Low,+  VulnerabilityCheck_MaximumFixableSeverity_Medium,+  VulnerabilityCheck_MaximumFixableSeverity_High,+  VulnerabilityCheck_MaximumFixableSeverity_Critical,+  VulnerabilityCheck_MaximumFixableSeverity_ALLOWALL,+  VulnerabilityCheck_MaximumFixableSeverity+  #-}++-- | Required. The threshold for severity for which a fix isn\'t currently available. This field is required and must be set.+newtype VulnerabilityCheck_MaximumUnfixableSeverity = VulnerabilityCheck_MaximumUnfixableSeverity {fromVulnerabilityCheck_MaximumUnfixableSeverity :: Core.Text}+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+  deriving newtype+    ( Core.Hashable,+      Core.ToHttpApiData,+      Core.FromHttpApiData,+      Core.ToJSON,+      Core.ToJSONKey,+      Core.FromJSON,+      Core.FromJSONKey+    )++-- | Not specified.+pattern VulnerabilityCheck_MaximumUnfixableSeverity_MAXIMUMALLOWEDSEVERITYUNSPECIFIED :: VulnerabilityCheck_MaximumUnfixableSeverity+pattern VulnerabilityCheck_MaximumUnfixableSeverity_MAXIMUMALLOWEDSEVERITYUNSPECIFIED = VulnerabilityCheck_MaximumUnfixableSeverity "MAXIMUM_ALLOWED_SEVERITY_UNSPECIFIED"++-- | Block any vulnerability.+pattern VulnerabilityCheck_MaximumUnfixableSeverity_BLOCKALL :: VulnerabilityCheck_MaximumUnfixableSeverity+pattern VulnerabilityCheck_MaximumUnfixableSeverity_BLOCKALL = VulnerabilityCheck_MaximumUnfixableSeverity "BLOCK_ALL"++-- | Allow only minimal severity.+pattern VulnerabilityCheck_MaximumUnfixableSeverity_Minimal :: VulnerabilityCheck_MaximumUnfixableSeverity+pattern VulnerabilityCheck_MaximumUnfixableSeverity_Minimal = VulnerabilityCheck_MaximumUnfixableSeverity "MINIMAL"++-- | Allow only low severity and lower.+pattern VulnerabilityCheck_MaximumUnfixableSeverity_Low :: VulnerabilityCheck_MaximumUnfixableSeverity+pattern VulnerabilityCheck_MaximumUnfixableSeverity_Low = VulnerabilityCheck_MaximumUnfixableSeverity "LOW"++-- | Allow medium severity and lower.+pattern VulnerabilityCheck_MaximumUnfixableSeverity_Medium :: VulnerabilityCheck_MaximumUnfixableSeverity+pattern VulnerabilityCheck_MaximumUnfixableSeverity_Medium = VulnerabilityCheck_MaximumUnfixableSeverity "MEDIUM"++-- | Allow high severity and lower.+pattern VulnerabilityCheck_MaximumUnfixableSeverity_High :: VulnerabilityCheck_MaximumUnfixableSeverity+pattern VulnerabilityCheck_MaximumUnfixableSeverity_High = VulnerabilityCheck_MaximumUnfixableSeverity "HIGH"++-- | Allow critical severity and lower.+pattern VulnerabilityCheck_MaximumUnfixableSeverity_Critical :: VulnerabilityCheck_MaximumUnfixableSeverity+pattern VulnerabilityCheck_MaximumUnfixableSeverity_Critical = VulnerabilityCheck_MaximumUnfixableSeverity "CRITICAL"++-- | Allow all severity, even vulnerability with unspecified severity.+pattern VulnerabilityCheck_MaximumUnfixableSeverity_ALLOWALL :: VulnerabilityCheck_MaximumUnfixableSeverity+pattern VulnerabilityCheck_MaximumUnfixableSeverity_ALLOWALL = VulnerabilityCheck_MaximumUnfixableSeverity "ALLOW_ALL"++{-# COMPLETE+  VulnerabilityCheck_MaximumUnfixableSeverity_MAXIMUMALLOWEDSEVERITYUNSPECIFIED,+  VulnerabilityCheck_MaximumUnfixableSeverity_BLOCKALL,+  VulnerabilityCheck_MaximumUnfixableSeverity_Minimal,+  VulnerabilityCheck_MaximumUnfixableSeverity_Low,+  VulnerabilityCheck_MaximumUnfixableSeverity_Medium,+  VulnerabilityCheck_MaximumUnfixableSeverity_High,+  VulnerabilityCheck_MaximumUnfixableSeverity_Critical,+  VulnerabilityCheck_MaximumUnfixableSeverity_ALLOWALL,+  VulnerabilityCheck_MaximumUnfixableSeverity+  #-}
+ gen/Gogol/BinaryAuthorization/Projects/Attestors/Create.hs view
@@ -0,0 +1,127 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.Attestors.Create+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an attestor, and returns a copy of the new attestor. Returns @NOT_FOUND@ if the project does not exist, @INVALID_ARGUMENT@ if the request is malformed, @ALREADY_EXISTS@ if the attestor already exists.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.attestors.create@.+module Gogol.BinaryAuthorization.Projects.Attestors.Create+  ( -- * Resource+    BinaryAuthorizationProjectsAttestorsCreateResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsAttestorsCreate (..),+    newBinaryAuthorizationProjectsAttestorsCreate,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.attestors.create@ method which the+-- 'BinaryAuthorizationProjectsAttestorsCreate' request conforms to.+type BinaryAuthorizationProjectsAttestorsCreateResource =+  "v1"+    Core.:> Core.Capture "parent" Core.Text+    Core.:> "attestors"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "attestorId" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] Attestor+    Core.:> Core.Post '[Core.JSON] Attestor++-- | Creates an attestor, and returns a copy of the new attestor. Returns @NOT_FOUND@ if the project does not exist, @INVALID_ARGUMENT@ if the request is malformed, @ALREADY_EXISTS@ if the attestor already exists.+--+-- /See:/ 'newBinaryAuthorizationProjectsAttestorsCreate' smart constructor.+data BinaryAuthorizationProjectsAttestorsCreate = BinaryAuthorizationProjectsAttestorsCreate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Required. The attestors ID.+    attestorId :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. The parent of this attestor.+    parent :: Core.Text,+    -- | Multipart request metadata.+    payload :: Attestor,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsAttestorsCreate' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsAttestorsCreate ::+  -- |  Required. The parent of this attestor. See 'parent'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  Attestor ->+  BinaryAuthorizationProjectsAttestorsCreate+newBinaryAuthorizationProjectsAttestorsCreate parent payload =+  BinaryAuthorizationProjectsAttestorsCreate+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      attestorId = Core.Nothing,+      callback = Core.Nothing,+      parent = parent,+      payload = payload,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    BinaryAuthorizationProjectsAttestorsCreate+  where+  type Rs BinaryAuthorizationProjectsAttestorsCreate = Attestor+  type+    Scopes BinaryAuthorizationProjectsAttestorsCreate =+      '[CloudPlatform'FullControl]+  requestClient BinaryAuthorizationProjectsAttestorsCreate {..} =+    go+      parent+      xgafv+      accessToken+      attestorId+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      binaryAuthorizationService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy BinaryAuthorizationProjectsAttestorsCreateResource+          )+          Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/Attestors/Delete.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.Attestors.Delete+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an attestor. Returns @NOT_FOUND@ if the attestor does not exist.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.attestors.delete@.+module Gogol.BinaryAuthorization.Projects.Attestors.Delete+  ( -- * Resource+    BinaryAuthorizationProjectsAttestorsDeleteResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsAttestorsDelete (..),+    newBinaryAuthorizationProjectsAttestorsDelete,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.attestors.delete@ method which the+-- 'BinaryAuthorizationProjectsAttestorsDelete' request conforms to.+type BinaryAuthorizationProjectsAttestorsDeleteResource =+  "v1"+    Core.:> Core.Capture "name" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes an attestor. Returns @NOT_FOUND@ if the attestor does not exist.+--+-- /See:/ 'newBinaryAuthorizationProjectsAttestorsDelete' smart constructor.+data BinaryAuthorizationProjectsAttestorsDelete = BinaryAuthorizationProjectsAttestorsDelete+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. The name of the attestors to delete, in the format @projects\/*\/attestors\/*@.+    name :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsAttestorsDelete' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsAttestorsDelete ::+  -- |  Required. The name of the attestors to delete, in the format @projects\/*\/attestors\/*@. See 'name'.+  Core.Text ->+  BinaryAuthorizationProjectsAttestorsDelete+newBinaryAuthorizationProjectsAttestorsDelete name =+  BinaryAuthorizationProjectsAttestorsDelete+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      name = name,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    BinaryAuthorizationProjectsAttestorsDelete+  where+  type Rs BinaryAuthorizationProjectsAttestorsDelete = Empty+  type+    Scopes BinaryAuthorizationProjectsAttestorsDelete =+      '[CloudPlatform'FullControl]+  requestClient BinaryAuthorizationProjectsAttestorsDelete {..} =+    go+      name+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      binaryAuthorizationService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy BinaryAuthorizationProjectsAttestorsDeleteResource+          )+          Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/Attestors/Get.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.Attestors.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets an attestor. Returns @NOT_FOUND@ if the attestor does not exist.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.attestors.get@.+module Gogol.BinaryAuthorization.Projects.Attestors.Get+  ( -- * Resource+    BinaryAuthorizationProjectsAttestorsGetResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsAttestorsGet (..),+    newBinaryAuthorizationProjectsAttestorsGet,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.attestors.get@ method which the+-- 'BinaryAuthorizationProjectsAttestorsGet' request conforms to.+type BinaryAuthorizationProjectsAttestorsGetResource =+  "v1"+    Core.:> Core.Capture "name" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] Attestor++-- | Gets an attestor. Returns @NOT_FOUND@ if the attestor does not exist.+--+-- /See:/ 'newBinaryAuthorizationProjectsAttestorsGet' smart constructor.+data BinaryAuthorizationProjectsAttestorsGet = BinaryAuthorizationProjectsAttestorsGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. The name of the attestor to retrieve, in the format @projects\/*\/attestors\/*@.+    name :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsAttestorsGet' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsAttestorsGet ::+  -- |  Required. The name of the attestor to retrieve, in the format @projects\/*\/attestors\/*@. See 'name'.+  Core.Text ->+  BinaryAuthorizationProjectsAttestorsGet+newBinaryAuthorizationProjectsAttestorsGet name =+  BinaryAuthorizationProjectsAttestorsGet+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      name = name,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest BinaryAuthorizationProjectsAttestorsGet where+  type Rs BinaryAuthorizationProjectsAttestorsGet = Attestor+  type+    Scopes BinaryAuthorizationProjectsAttestorsGet =+      '[CloudPlatform'FullControl]+  requestClient BinaryAuthorizationProjectsAttestorsGet {..} =+    go+      name+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      binaryAuthorizationService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy BinaryAuthorizationProjectsAttestorsGetResource+          )+          Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/Attestors/GetIamPolicy.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.Attestors.GetIamPolicy+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.attestors.getIamPolicy@.+module Gogol.BinaryAuthorization.Projects.Attestors.GetIamPolicy+  ( -- * Resource+    BinaryAuthorizationProjectsAttestorsGetIamPolicyResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsAttestorsGetIamPolicy (..),+    newBinaryAuthorizationProjectsAttestorsGetIamPolicy,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.attestors.getIamPolicy@ method which the+-- 'BinaryAuthorizationProjectsAttestorsGetIamPolicy' request conforms to.+type BinaryAuthorizationProjectsAttestorsGetIamPolicyResource =+  "v1"+    Core.:> Core.CaptureMode "resource" "getIamPolicy" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "options.requestedPolicyVersion" Core.Int32+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] IamPolicy++-- | Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.+--+-- /See:/ 'newBinaryAuthorizationProjectsAttestorsGetIamPolicy' smart constructor.+data BinaryAuthorizationProjectsAttestorsGetIamPolicy = BinaryAuthorizationProjectsAttestorsGetIamPolicy+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the <https://cloud.google.com/iam/help/conditions/resource-policies IAM documentation>.+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),+    -- | REQUIRED: The resource for which the policy is being requested. See <https://cloud.google.com/apis/design/resource_names Resource names> for the appropriate value for this field.+    resource :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsAttestorsGetIamPolicy' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsAttestorsGetIamPolicy ::+  -- |  REQUIRED: The resource for which the policy is being requested. See <https://cloud.google.com/apis/design/resource_names Resource names> for the appropriate value for this field. See 'resource'.+  Core.Text ->+  BinaryAuthorizationProjectsAttestorsGetIamPolicy+newBinaryAuthorizationProjectsAttestorsGetIamPolicy resource =+  BinaryAuthorizationProjectsAttestorsGetIamPolicy+    { xgafv =+        Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      optionsRequestedPolicyVersion = Core.Nothing,+      resource = resource,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    BinaryAuthorizationProjectsAttestorsGetIamPolicy+  where+  type+    Rs BinaryAuthorizationProjectsAttestorsGetIamPolicy =+      IamPolicy+  type+    Scopes BinaryAuthorizationProjectsAttestorsGetIamPolicy =+      '[CloudPlatform'FullControl]+  requestClient BinaryAuthorizationProjectsAttestorsGetIamPolicy {..} =+    go+      resource+      xgafv+      accessToken+      callback+      optionsRequestedPolicyVersion+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      binaryAuthorizationService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy+                BinaryAuthorizationProjectsAttestorsGetIamPolicyResource+          )+          Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/Attestors/List.hs view
@@ -0,0 +1,127 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.Attestors.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists attestors. Returns @INVALID_ARGUMENT@ if the project does not exist.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.attestors.list@.+module Gogol.BinaryAuthorization.Projects.Attestors.List+  ( -- * Resource+    BinaryAuthorizationProjectsAttestorsListResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsAttestorsList (..),+    newBinaryAuthorizationProjectsAttestorsList,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.attestors.list@ method which the+-- 'BinaryAuthorizationProjectsAttestorsList' request conforms to.+type BinaryAuthorizationProjectsAttestorsListResource =+  "v1"+    Core.:> Core.Capture "parent" Core.Text+    Core.:> "attestors"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListAttestorsResponse++-- | Lists attestors. Returns @INVALID_ARGUMENT@ if the project does not exist.+--+-- /See:/ 'newBinaryAuthorizationProjectsAttestorsList' smart constructor.+data BinaryAuthorizationProjectsAttestorsList = BinaryAuthorizationProjectsAttestorsList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Requested page size. The server may return fewer results than requested. If unspecified, the server will pick an appropriate default.+    pageSize :: (Core.Maybe Core.Int32),+    -- | A token identifying a page of results the server should return. Typically, this is the value of ListAttestorsResponse.next/page/token returned from the previous call to the @ListAttestors@ method.+    pageToken :: (Core.Maybe Core.Text),+    -- | Required. The resource name of the project associated with the attestors, in the format @projects\/*@.+    parent :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsAttestorsList' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsAttestorsList ::+  -- |  Required. The resource name of the project associated with the attestors, in the format @projects\/*@. See 'parent'.+  Core.Text ->+  BinaryAuthorizationProjectsAttestorsList+newBinaryAuthorizationProjectsAttestorsList parent =+  BinaryAuthorizationProjectsAttestorsList+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      pageSize = Core.Nothing,+      pageToken = Core.Nothing,+      parent = parent,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    BinaryAuthorizationProjectsAttestorsList+  where+  type+    Rs BinaryAuthorizationProjectsAttestorsList =+      ListAttestorsResponse+  type+    Scopes BinaryAuthorizationProjectsAttestorsList =+      '[CloudPlatform'FullControl]+  requestClient BinaryAuthorizationProjectsAttestorsList {..} =+    go+      parent+      xgafv+      accessToken+      callback+      pageSize+      pageToken+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      binaryAuthorizationService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy BinaryAuthorizationProjectsAttestorsListResource+          )+          Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/Attestors/SetIamPolicy.hs view
@@ -0,0 +1,127 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.Attestors.SetIamPolicy+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets the access control policy on the specified resource. Replaces any existing policy. Can return @NOT_FOUND@, @INVALID_ARGUMENT@, and @PERMISSION_DENIED@ errors.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.attestors.setIamPolicy@.+module Gogol.BinaryAuthorization.Projects.Attestors.SetIamPolicy+  ( -- * Resource+    BinaryAuthorizationProjectsAttestorsSetIamPolicyResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsAttestorsSetIamPolicy (..),+    newBinaryAuthorizationProjectsAttestorsSetIamPolicy,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.attestors.setIamPolicy@ method which the+-- 'BinaryAuthorizationProjectsAttestorsSetIamPolicy' request conforms to.+type BinaryAuthorizationProjectsAttestorsSetIamPolicyResource =+  "v1"+    Core.:> Core.CaptureMode "resource" "setIamPolicy" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] SetIamPolicyRequest+    Core.:> Core.Post '[Core.JSON] IamPolicy++-- | Sets the access control policy on the specified resource. Replaces any existing policy. Can return @NOT_FOUND@, @INVALID_ARGUMENT@, and @PERMISSION_DENIED@ errors.+--+-- /See:/ 'newBinaryAuthorizationProjectsAttestorsSetIamPolicy' smart constructor.+data BinaryAuthorizationProjectsAttestorsSetIamPolicy = BinaryAuthorizationProjectsAttestorsSetIamPolicy+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Multipart request metadata.+    payload :: SetIamPolicyRequest,+    -- | REQUIRED: The resource for which the policy is being specified. See <https://cloud.google.com/apis/design/resource_names Resource names> for the appropriate value for this field.+    resource :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsAttestorsSetIamPolicy' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsAttestorsSetIamPolicy ::+  -- |  Multipart request metadata. See 'payload'.+  SetIamPolicyRequest ->+  -- |  REQUIRED: The resource for which the policy is being specified. See <https://cloud.google.com/apis/design/resource_names Resource names> for the appropriate value for this field. See 'resource'.+  Core.Text ->+  BinaryAuthorizationProjectsAttestorsSetIamPolicy+newBinaryAuthorizationProjectsAttestorsSetIamPolicy+  payload+  resource =+    BinaryAuthorizationProjectsAttestorsSetIamPolicy+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        payload = payload,+        resource = resource,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    BinaryAuthorizationProjectsAttestorsSetIamPolicy+  where+  type+    Rs BinaryAuthorizationProjectsAttestorsSetIamPolicy =+      IamPolicy+  type+    Scopes BinaryAuthorizationProjectsAttestorsSetIamPolicy =+      '[CloudPlatform'FullControl]+  requestClient BinaryAuthorizationProjectsAttestorsSetIamPolicy {..} =+    go+      resource+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      binaryAuthorizationService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy+                BinaryAuthorizationProjectsAttestorsSetIamPolicyResource+          )+          Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/Attestors/TestIamPermissions.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.Attestors.TestIamPermissions+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a @NOT_FOUND@ error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.attestors.testIamPermissions@.+module Gogol.BinaryAuthorization.Projects.Attestors.TestIamPermissions+  ( -- * Resource+    BinaryAuthorizationProjectsAttestorsTestIamPermissionsResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsAttestorsTestIamPermissions (..),+    newBinaryAuthorizationProjectsAttestorsTestIamPermissions,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.attestors.testIamPermissions@ method which the+-- 'BinaryAuthorizationProjectsAttestorsTestIamPermissions' request conforms to.+type BinaryAuthorizationProjectsAttestorsTestIamPermissionsResource =+  "v1"+    Core.:> Core.CaptureMode "resource" "testIamPermissions" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] TestIamPermissionsRequest+    Core.:> Core.Post '[Core.JSON] TestIamPermissionsResponse++-- | Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a @NOT_FOUND@ error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.+--+-- /See:/ 'newBinaryAuthorizationProjectsAttestorsTestIamPermissions' smart constructor.+data BinaryAuthorizationProjectsAttestorsTestIamPermissions = BinaryAuthorizationProjectsAttestorsTestIamPermissions+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Multipart request metadata.+    payload :: TestIamPermissionsRequest,+    -- | REQUIRED: The resource for which the policy detail is being requested. See <https://cloud.google.com/apis/design/resource_names Resource names> for the appropriate value for this field.+    resource :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsAttestorsTestIamPermissions' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsAttestorsTestIamPermissions ::+  -- |  Multipart request metadata. See 'payload'.+  TestIamPermissionsRequest ->+  -- |  REQUIRED: The resource for which the policy detail is being requested. See <https://cloud.google.com/apis/design/resource_names Resource names> for the appropriate value for this field. See 'resource'.+  Core.Text ->+  BinaryAuthorizationProjectsAttestorsTestIamPermissions+newBinaryAuthorizationProjectsAttestorsTestIamPermissions+  payload+  resource =+    BinaryAuthorizationProjectsAttestorsTestIamPermissions+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        payload = payload,+        resource = resource,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    BinaryAuthorizationProjectsAttestorsTestIamPermissions+  where+  type+    Rs BinaryAuthorizationProjectsAttestorsTestIamPermissions =+      TestIamPermissionsResponse+  type+    Scopes BinaryAuthorizationProjectsAttestorsTestIamPermissions =+      '[CloudPlatform'FullControl]+  requestClient+    BinaryAuthorizationProjectsAttestorsTestIamPermissions {..} =+      go+        resource+        xgafv+        accessToken+        callback+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        payload+        binaryAuthorizationService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  BinaryAuthorizationProjectsAttestorsTestIamPermissionsResource+            )+            Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/Attestors/Update.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.Attestors.Update+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an attestor. Returns @NOT_FOUND@ if the attestor does not exist.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.attestors.update@.+module Gogol.BinaryAuthorization.Projects.Attestors.Update+  ( -- * Resource+    BinaryAuthorizationProjectsAttestorsUpdateResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsAttestorsUpdate (..),+    newBinaryAuthorizationProjectsAttestorsUpdate,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.attestors.update@ method which the+-- 'BinaryAuthorizationProjectsAttestorsUpdate' request conforms to.+type BinaryAuthorizationProjectsAttestorsUpdateResource =+  "v1"+    Core.:> Core.Capture "name" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] Attestor+    Core.:> Core.Put '[Core.JSON] Attestor++-- | Updates an attestor. Returns @NOT_FOUND@ if the attestor does not exist.+--+-- /See:/ 'newBinaryAuthorizationProjectsAttestorsUpdate' smart constructor.+data BinaryAuthorizationProjectsAttestorsUpdate = BinaryAuthorizationProjectsAttestorsUpdate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. The resource name, in the format: @projects\/*\/attestors\/*@. This field may not be updated.+    name :: Core.Text,+    -- | Multipart request metadata.+    payload :: Attestor,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsAttestorsUpdate' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsAttestorsUpdate ::+  -- |  Required. The resource name, in the format: @projects\/*\/attestors\/*@. This field may not be updated. See 'name'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  Attestor ->+  BinaryAuthorizationProjectsAttestorsUpdate+newBinaryAuthorizationProjectsAttestorsUpdate name payload =+  BinaryAuthorizationProjectsAttestorsUpdate+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      name = name,+      payload = payload,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    BinaryAuthorizationProjectsAttestorsUpdate+  where+  type Rs BinaryAuthorizationProjectsAttestorsUpdate = Attestor+  type+    Scopes BinaryAuthorizationProjectsAttestorsUpdate =+      '[CloudPlatform'FullControl]+  requestClient BinaryAuthorizationProjectsAttestorsUpdate {..} =+    go+      name+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      binaryAuthorizationService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy BinaryAuthorizationProjectsAttestorsUpdateResource+          )+          Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/Attestors/ValidateAttestationOccurrence.hs view
@@ -0,0 +1,133 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.Attestors.ValidateAttestationOccurrence+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns whether the given @Attestation@ for the given image URI was signed by the given @Attestor@+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.attestors.validateAttestationOccurrence@.+module Gogol.BinaryAuthorization.Projects.Attestors.ValidateAttestationOccurrence+  ( -- * Resource+    BinaryAuthorizationProjectsAttestorsValidateAttestationOccurrenceResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsAttestorsValidateAttestationOccurrence (..),+    newBinaryAuthorizationProjectsAttestorsValidateAttestationOccurrence,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.attestors.validateAttestationOccurrence@ method which the+-- 'BinaryAuthorizationProjectsAttestorsValidateAttestationOccurrence' request conforms to.+type BinaryAuthorizationProjectsAttestorsValidateAttestationOccurrenceResource =+  "v1"+    Core.:> Core.CaptureMode+              "attestor"+              "validateAttestationOccurrence"+              Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] ValidateAttestationOccurrenceRequest+    Core.:> Core.Post '[Core.JSON] ValidateAttestationOccurrenceResponse++-- | Returns whether the given @Attestation@ for the given image URI was signed by the given @Attestor@+--+-- /See:/ 'newBinaryAuthorizationProjectsAttestorsValidateAttestationOccurrence' smart constructor.+data BinaryAuthorizationProjectsAttestorsValidateAttestationOccurrence = BinaryAuthorizationProjectsAttestorsValidateAttestationOccurrence+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | Required. The resource name of the Attestor of the occurrence, in the format @projects\/*\/attestors\/*@.+    attestor :: Core.Text,+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Multipart request metadata.+    payload :: ValidateAttestationOccurrenceRequest,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsAttestorsValidateAttestationOccurrence' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsAttestorsValidateAttestationOccurrence ::+  -- |  Required. The resource name of the Attestor of the occurrence, in the format @projects\/*\/attestors\/*@. See 'attestor'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  ValidateAttestationOccurrenceRequest ->+  BinaryAuthorizationProjectsAttestorsValidateAttestationOccurrence+newBinaryAuthorizationProjectsAttestorsValidateAttestationOccurrence+  attestor+  payload =+    BinaryAuthorizationProjectsAttestorsValidateAttestationOccurrence+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        attestor = attestor,+        callback = Core.Nothing,+        payload = payload,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    BinaryAuthorizationProjectsAttestorsValidateAttestationOccurrence+  where+  type+    Rs+      BinaryAuthorizationProjectsAttestorsValidateAttestationOccurrence =+      ValidateAttestationOccurrenceResponse+  type+    Scopes+      BinaryAuthorizationProjectsAttestorsValidateAttestationOccurrence =+      '[CloudPlatform'FullControl]+  requestClient+    BinaryAuthorizationProjectsAttestorsValidateAttestationOccurrence {..} =+      go+        attestor+        xgafv+        accessToken+        callback+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        payload+        binaryAuthorizationService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  BinaryAuthorizationProjectsAttestorsValidateAttestationOccurrenceResource+            )+            Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/GetPolicy.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.GetPolicy+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- A policy specifies the attestors that must attest to a container image, before the project is allowed to deploy that image. There is at most one policy per project. All image admission requests are permitted if a project has no policy. Gets the policy for this project. Returns a default policy if the project does not have one.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.getPolicy@.+module Gogol.BinaryAuthorization.Projects.GetPolicy+  ( -- * Resource+    BinaryAuthorizationProjectsGetPolicyResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsGetPolicy (..),+    newBinaryAuthorizationProjectsGetPolicy,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.getPolicy@ method which the+-- 'BinaryAuthorizationProjectsGetPolicy' request conforms to.+type BinaryAuthorizationProjectsGetPolicyResource =+  "v1"+    Core.:> Core.Capture "name" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] Policy++-- | A policy specifies the attestors that must attest to a container image, before the project is allowed to deploy that image. There is at most one policy per project. All image admission requests are permitted if a project has no policy. Gets the policy for this project. Returns a default policy if the project does not have one.+--+-- /See:/ 'newBinaryAuthorizationProjectsGetPolicy' smart constructor.+data BinaryAuthorizationProjectsGetPolicy = BinaryAuthorizationProjectsGetPolicy+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. The resource name of the policy to retrieve, in the format @projects\/*\/policy@.+    name :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsGetPolicy' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsGetPolicy ::+  -- |  Required. The resource name of the policy to retrieve, in the format @projects\/*\/policy@. See 'name'.+  Core.Text ->+  BinaryAuthorizationProjectsGetPolicy+newBinaryAuthorizationProjectsGetPolicy name =+  BinaryAuthorizationProjectsGetPolicy+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      name = name,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest BinaryAuthorizationProjectsGetPolicy where+  type Rs BinaryAuthorizationProjectsGetPolicy = Policy+  type+    Scopes BinaryAuthorizationProjectsGetPolicy =+      '[CloudPlatform'FullControl]+  requestClient BinaryAuthorizationProjectsGetPolicy {..} =+    go+      name+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      binaryAuthorizationService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy BinaryAuthorizationProjectsGetPolicyResource+          )+          Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/Platforms/Gke/Policies/Evaluate.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.Platforms.Gke.Policies.Evaluate+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Evaluates a Kubernetes object versus a GKE platform policy. Returns @NOT_FOUND@ if the policy doesn\'t exist, @INVALID_ARGUMENT@ if the policy or request is malformed and @PERMISSION_DENIED@ if the client does not have sufficient permissions.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.platforms.gke.policies.evaluate@.+module Gogol.BinaryAuthorization.Projects.Platforms.Gke.Policies.Evaluate+  ( -- * Resource+    BinaryAuthorizationProjectsPlatformsGkePoliciesEvaluateResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsPlatformsGkePoliciesEvaluate (..),+    newBinaryAuthorizationProjectsPlatformsGkePoliciesEvaluate,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.platforms.gke.policies.evaluate@ method which the+-- 'BinaryAuthorizationProjectsPlatformsGkePoliciesEvaluate' request conforms to.+type BinaryAuthorizationProjectsPlatformsGkePoliciesEvaluateResource =+  "v1"+    Core.:> Core.CaptureMode "name" "evaluate" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] EvaluateGkePolicyRequest+    Core.:> Core.Post '[Core.JSON] EvaluateGkePolicyResponse++-- | Evaluates a Kubernetes object versus a GKE platform policy. Returns @NOT_FOUND@ if the policy doesn\'t exist, @INVALID_ARGUMENT@ if the policy or request is malformed and @PERMISSION_DENIED@ if the client does not have sufficient permissions.+--+-- /See:/ 'newBinaryAuthorizationProjectsPlatformsGkePoliciesEvaluate' smart constructor.+data BinaryAuthorizationProjectsPlatformsGkePoliciesEvaluate = BinaryAuthorizationProjectsPlatformsGkePoliciesEvaluate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. The name of the platform policy to evaluate in the format @projects\/*\/platforms\/*\/policies\/*@.+    name :: Core.Text,+    -- | Multipart request metadata.+    payload :: EvaluateGkePolicyRequest,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsPlatformsGkePoliciesEvaluate' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsPlatformsGkePoliciesEvaluate ::+  -- |  Required. The name of the platform policy to evaluate in the format @projects\/*\/platforms\/*\/policies\/*@. See 'name'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  EvaluateGkePolicyRequest ->+  BinaryAuthorizationProjectsPlatformsGkePoliciesEvaluate+newBinaryAuthorizationProjectsPlatformsGkePoliciesEvaluate+  name+  payload =+    BinaryAuthorizationProjectsPlatformsGkePoliciesEvaluate+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        name = name,+        payload = payload,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    BinaryAuthorizationProjectsPlatformsGkePoliciesEvaluate+  where+  type+    Rs BinaryAuthorizationProjectsPlatformsGkePoliciesEvaluate =+      EvaluateGkePolicyResponse+  type+    Scopes BinaryAuthorizationProjectsPlatformsGkePoliciesEvaluate =+      '[CloudPlatform'FullControl]+  requestClient+    BinaryAuthorizationProjectsPlatformsGkePoliciesEvaluate {..} =+      go+        name+        xgafv+        accessToken+        callback+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        payload+        binaryAuthorizationService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  BinaryAuthorizationProjectsPlatformsGkePoliciesEvaluateResource+            )+            Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/Platforms/Policies/Create.hs view
@@ -0,0 +1,134 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.Platforms.Policies.Create+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a platform policy, and returns a copy of it. Returns @NOT_FOUND@ if the project or platform doesn\'t exist, @INVALID_ARGUMENT@ if the request is malformed, @ALREADY_EXISTS@ if the policy already exists, and @INVALID_ARGUMENT@ if the policy contains a platform-specific policy that does not match the platform value specified in the URL.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.platforms.policies.create@.+module Gogol.BinaryAuthorization.Projects.Platforms.Policies.Create+  ( -- * Resource+    BinaryAuthorizationProjectsPlatformsPoliciesCreateResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsPlatformsPoliciesCreate (..),+    newBinaryAuthorizationProjectsPlatformsPoliciesCreate,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.platforms.policies.create@ method which the+-- 'BinaryAuthorizationProjectsPlatformsPoliciesCreate' request conforms to.+type BinaryAuthorizationProjectsPlatformsPoliciesCreateResource =+  "v1"+    Core.:> Core.Capture "parent" Core.Text+    Core.:> "policies"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "policyId" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] PlatformPolicy+    Core.:> Core.Post '[Core.JSON] PlatformPolicy++-- | Creates a platform policy, and returns a copy of it. Returns @NOT_FOUND@ if the project or platform doesn\'t exist, @INVALID_ARGUMENT@ if the request is malformed, @ALREADY_EXISTS@ if the policy already exists, and @INVALID_ARGUMENT@ if the policy contains a platform-specific policy that does not match the platform value specified in the URL.+--+-- /See:/ 'newBinaryAuthorizationProjectsPlatformsPoliciesCreate' smart constructor.+data BinaryAuthorizationProjectsPlatformsPoliciesCreate = BinaryAuthorizationProjectsPlatformsPoliciesCreate+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. The parent of this platform policy.+    parent :: Core.Text,+    -- | Multipart request metadata.+    payload :: PlatformPolicy,+    -- | Required. The platform policy ID.+    policyId :: (Core.Maybe Core.Text),+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsPlatformsPoliciesCreate' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsPlatformsPoliciesCreate ::+  -- |  Required. The parent of this platform policy. See 'parent'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  PlatformPolicy ->+  BinaryAuthorizationProjectsPlatformsPoliciesCreate+newBinaryAuthorizationProjectsPlatformsPoliciesCreate+  parent+  payload =+    BinaryAuthorizationProjectsPlatformsPoliciesCreate+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        parent = parent,+        payload = payload,+        policyId = Core.Nothing,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    BinaryAuthorizationProjectsPlatformsPoliciesCreate+  where+  type+    Rs BinaryAuthorizationProjectsPlatformsPoliciesCreate =+      PlatformPolicy+  type+    Scopes BinaryAuthorizationProjectsPlatformsPoliciesCreate =+      '[CloudPlatform'FullControl]+  requestClient+    BinaryAuthorizationProjectsPlatformsPoliciesCreate {..} =+      go+        parent+        xgafv+        accessToken+        callback+        policyId+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        payload+        binaryAuthorizationService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  BinaryAuthorizationProjectsPlatformsPoliciesCreateResource+            )+            Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/Platforms/Policies/Delete.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.Platforms.Policies.Delete+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a platform policy. Returns @NOT_FOUND@ if the policy doesn\'t exist.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.platforms.policies.delete@.+module Gogol.BinaryAuthorization.Projects.Platforms.Policies.Delete+  ( -- * Resource+    BinaryAuthorizationProjectsPlatformsPoliciesDeleteResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsPlatformsPoliciesDelete (..),+    newBinaryAuthorizationProjectsPlatformsPoliciesDelete,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.platforms.policies.delete@ method which the+-- 'BinaryAuthorizationProjectsPlatformsPoliciesDelete' request conforms to.+type BinaryAuthorizationProjectsPlatformsPoliciesDeleteResource =+  "v1"+    Core.:> Core.Capture "name" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "etag" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes a platform policy. Returns @NOT_FOUND@ if the policy doesn\'t exist.+--+-- /See:/ 'newBinaryAuthorizationProjectsPlatformsPoliciesDelete' smart constructor.+data BinaryAuthorizationProjectsPlatformsPoliciesDelete = BinaryAuthorizationProjectsPlatformsPoliciesDelete+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Optional. Used to prevent deleting the policy when another request has updated it since it was retrieved.+    etag :: (Core.Maybe Core.Text),+    -- | Required. The name of the platform policy to delete, in the format @projects\/*\/platforms\/*\/policies\/*@.+    name :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsPlatformsPoliciesDelete' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsPlatformsPoliciesDelete ::+  -- |  Required. The name of the platform policy to delete, in the format @projects\/*\/platforms\/*\/policies\/*@. See 'name'.+  Core.Text ->+  BinaryAuthorizationProjectsPlatformsPoliciesDelete+newBinaryAuthorizationProjectsPlatformsPoliciesDelete name =+  BinaryAuthorizationProjectsPlatformsPoliciesDelete+    { xgafv =+        Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      etag = Core.Nothing,+      name = name,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    BinaryAuthorizationProjectsPlatformsPoliciesDelete+  where+  type Rs BinaryAuthorizationProjectsPlatformsPoliciesDelete = Empty+  type+    Scopes BinaryAuthorizationProjectsPlatformsPoliciesDelete =+      '[CloudPlatform'FullControl]+  requestClient+    BinaryAuthorizationProjectsPlatformsPoliciesDelete {..} =+      go+        name+        xgafv+        accessToken+        callback+        etag+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        binaryAuthorizationService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  BinaryAuthorizationProjectsPlatformsPoliciesDeleteResource+            )+            Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/Platforms/Policies/Get.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.Platforms.Policies.Get+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a platform policy. Returns @NOT_FOUND@ if the policy doesn\'t exist.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.platforms.policies.get@.+module Gogol.BinaryAuthorization.Projects.Platforms.Policies.Get+  ( -- * Resource+    BinaryAuthorizationProjectsPlatformsPoliciesGetResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsPlatformsPoliciesGet (..),+    newBinaryAuthorizationProjectsPlatformsPoliciesGet,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.platforms.policies.get@ method which the+-- 'BinaryAuthorizationProjectsPlatformsPoliciesGet' request conforms to.+type BinaryAuthorizationProjectsPlatformsPoliciesGetResource =+  "v1"+    Core.:> Core.Capture "name" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] PlatformPolicy++-- | Gets a platform policy. Returns @NOT_FOUND@ if the policy doesn\'t exist.+--+-- /See:/ 'newBinaryAuthorizationProjectsPlatformsPoliciesGet' smart constructor.+data BinaryAuthorizationProjectsPlatformsPoliciesGet = BinaryAuthorizationProjectsPlatformsPoliciesGet+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. The name of the platform policy to retrieve in the format @projects\/*\/platforms\/*\/policies\/*@.+    name :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsPlatformsPoliciesGet' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsPlatformsPoliciesGet ::+  -- |  Required. The name of the platform policy to retrieve in the format @projects\/*\/platforms\/*\/policies\/*@. See 'name'.+  Core.Text ->+  BinaryAuthorizationProjectsPlatformsPoliciesGet+newBinaryAuthorizationProjectsPlatformsPoliciesGet name =+  BinaryAuthorizationProjectsPlatformsPoliciesGet+    { xgafv =+        Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      name = name,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    BinaryAuthorizationProjectsPlatformsPoliciesGet+  where+  type+    Rs BinaryAuthorizationProjectsPlatformsPoliciesGet =+      PlatformPolicy+  type+    Scopes BinaryAuthorizationProjectsPlatformsPoliciesGet =+      '[CloudPlatform'FullControl]+  requestClient BinaryAuthorizationProjectsPlatformsPoliciesGet {..} =+    go+      name+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      binaryAuthorizationService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy BinaryAuthorizationProjectsPlatformsPoliciesGetResource+          )+          Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/Platforms/Policies/List.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.Platforms.Policies.List+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists platform policies owned by a project in the specified platform. Returns @INVALID_ARGUMENT@ if the project or the platform doesn\'t exist.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.platforms.policies.list@.+module Gogol.BinaryAuthorization.Projects.Platforms.Policies.List+  ( -- * Resource+    BinaryAuthorizationProjectsPlatformsPoliciesListResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsPlatformsPoliciesList (..),+    newBinaryAuthorizationProjectsPlatformsPoliciesList,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.platforms.policies.list@ method which the+-- 'BinaryAuthorizationProjectsPlatformsPoliciesList' request conforms to.+type BinaryAuthorizationProjectsPlatformsPoliciesListResource =+  "v1"+    Core.:> Core.Capture "parent" Core.Text+    Core.:> "policies"+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "pageSize" Core.Int32+    Core.:> Core.QueryParam "pageToken" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] ListPlatformPoliciesResponse++-- | Lists platform policies owned by a project in the specified platform. Returns @INVALID_ARGUMENT@ if the project or the platform doesn\'t exist.+--+-- /See:/ 'newBinaryAuthorizationProjectsPlatformsPoliciesList' smart constructor.+data BinaryAuthorizationProjectsPlatformsPoliciesList = BinaryAuthorizationProjectsPlatformsPoliciesList+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Requested page size. The server may return fewer results than requested. If unspecified, the server picks an appropriate default.+    pageSize :: (Core.Maybe Core.Int32),+    -- | A token identifying a page of results the server should return. Typically, this is the value of ListPlatformPoliciesResponse.next/page/token returned from the previous call to the @ListPlatformPolicies@ method.+    pageToken :: (Core.Maybe Core.Text),+    -- | Required. The resource name of the platform associated with the platform policies using the format @projects\/*\/platforms\/*@.+    parent :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsPlatformsPoliciesList' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsPlatformsPoliciesList ::+  -- |  Required. The resource name of the platform associated with the platform policies using the format @projects\/*\/platforms\/*@. See 'parent'.+  Core.Text ->+  BinaryAuthorizationProjectsPlatformsPoliciesList+newBinaryAuthorizationProjectsPlatformsPoliciesList parent =+  BinaryAuthorizationProjectsPlatformsPoliciesList+    { xgafv =+        Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      pageSize = Core.Nothing,+      pageToken = Core.Nothing,+      parent = parent,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    BinaryAuthorizationProjectsPlatformsPoliciesList+  where+  type+    Rs BinaryAuthorizationProjectsPlatformsPoliciesList =+      ListPlatformPoliciesResponse+  type+    Scopes BinaryAuthorizationProjectsPlatformsPoliciesList =+      '[CloudPlatform'FullControl]+  requestClient BinaryAuthorizationProjectsPlatformsPoliciesList {..} =+    go+      parent+      xgafv+      accessToken+      callback+      pageSize+      pageToken+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      binaryAuthorizationService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy+                BinaryAuthorizationProjectsPlatformsPoliciesListResource+          )+          Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/Platforms/Policies/ReplacePlatformPolicy.hs view
@@ -0,0 +1,130 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.Platforms.Policies.ReplacePlatformPolicy+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Replaces a platform policy. Returns @NOT_FOUND@ if the policy doesn\'t exist.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.platforms.policies.replacePlatformPolicy@.+module Gogol.BinaryAuthorization.Projects.Platforms.Policies.ReplacePlatformPolicy+  ( -- * Resource+    BinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicyResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicy (..),+    newBinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicy,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.platforms.policies.replacePlatformPolicy@ method which the+-- 'BinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicy' request conforms to.+type BinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicyResource =+  "v1"+    Core.:> Core.Capture "name" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] PlatformPolicy+    Core.:> Core.Put '[Core.JSON] PlatformPolicy++-- | Replaces a platform policy. Returns @NOT_FOUND@ if the policy doesn\'t exist.+--+-- /See:/ 'newBinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicy' smart constructor.+data BinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicy = BinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicy+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Output only. The relative resource name of the Binary Authorization platform policy, in the form of @projects\/*\/platforms\/*\/policies\/*@.+    name :: Core.Text,+    -- | Multipart request metadata.+    payload :: PlatformPolicy,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicy' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicy ::+  -- |  Output only. The relative resource name of the Binary Authorization platform policy, in the form of @projects\/*\/platforms\/*\/policies\/*@. See 'name'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  PlatformPolicy ->+  BinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicy+newBinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicy+  name+  payload =+    BinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicy+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        name = name,+        payload = payload,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    BinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicy+  where+  type+    Rs+      BinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicy =+      PlatformPolicy+  type+    Scopes+      BinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicy =+      '[CloudPlatform'FullControl]+  requestClient+    BinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicy {..} =+      go+        name+        xgafv+        accessToken+        callback+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        payload+        binaryAuthorizationService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  BinaryAuthorizationProjectsPlatformsPoliciesReplacePlatformPolicyResource+            )+            Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/Policy/GetIamPolicy.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.Policy.GetIamPolicy+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.policy.getIamPolicy@.+module Gogol.BinaryAuthorization.Projects.Policy.GetIamPolicy+  ( -- * Resource+    BinaryAuthorizationProjectsPolicyGetIamPolicyResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsPolicyGetIamPolicy (..),+    newBinaryAuthorizationProjectsPolicyGetIamPolicy,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.policy.getIamPolicy@ method which the+-- 'BinaryAuthorizationProjectsPolicyGetIamPolicy' request conforms to.+type BinaryAuthorizationProjectsPolicyGetIamPolicyResource =+  "v1"+    Core.:> Core.CaptureMode "resource" "getIamPolicy" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "options.requestedPolicyVersion" Core.Int32+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] IamPolicy++-- | Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.+--+-- /See:/ 'newBinaryAuthorizationProjectsPolicyGetIamPolicy' smart constructor.+data BinaryAuthorizationProjectsPolicyGetIamPolicy = BinaryAuthorizationProjectsPolicyGetIamPolicy+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the <https://cloud.google.com/iam/help/conditions/resource-policies IAM documentation>.+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),+    -- | REQUIRED: The resource for which the policy is being requested. See <https://cloud.google.com/apis/design/resource_names Resource names> for the appropriate value for this field.+    resource :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsPolicyGetIamPolicy' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsPolicyGetIamPolicy ::+  -- |  REQUIRED: The resource for which the policy is being requested. See <https://cloud.google.com/apis/design/resource_names Resource names> for the appropriate value for this field. See 'resource'.+  Core.Text ->+  BinaryAuthorizationProjectsPolicyGetIamPolicy+newBinaryAuthorizationProjectsPolicyGetIamPolicy resource =+  BinaryAuthorizationProjectsPolicyGetIamPolicy+    { xgafv =+        Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      optionsRequestedPolicyVersion = Core.Nothing,+      resource = resource,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    BinaryAuthorizationProjectsPolicyGetIamPolicy+  where+  type Rs BinaryAuthorizationProjectsPolicyGetIamPolicy = IamPolicy+  type+    Scopes BinaryAuthorizationProjectsPolicyGetIamPolicy =+      '[CloudPlatform'FullControl]+  requestClient BinaryAuthorizationProjectsPolicyGetIamPolicy {..} =+    go+      resource+      xgafv+      accessToken+      callback+      optionsRequestedPolicyVersion+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      binaryAuthorizationService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy BinaryAuthorizationProjectsPolicyGetIamPolicyResource+          )+          Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/Policy/SetIamPolicy.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.Policy.SetIamPolicy+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets the access control policy on the specified resource. Replaces any existing policy. Can return @NOT_FOUND@, @INVALID_ARGUMENT@, and @PERMISSION_DENIED@ errors.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.policy.setIamPolicy@.+module Gogol.BinaryAuthorization.Projects.Policy.SetIamPolicy+  ( -- * Resource+    BinaryAuthorizationProjectsPolicySetIamPolicyResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsPolicySetIamPolicy (..),+    newBinaryAuthorizationProjectsPolicySetIamPolicy,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.policy.setIamPolicy@ method which the+-- 'BinaryAuthorizationProjectsPolicySetIamPolicy' request conforms to.+type BinaryAuthorizationProjectsPolicySetIamPolicyResource =+  "v1"+    Core.:> Core.CaptureMode "resource" "setIamPolicy" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] SetIamPolicyRequest+    Core.:> Core.Post '[Core.JSON] IamPolicy++-- | Sets the access control policy on the specified resource. Replaces any existing policy. Can return @NOT_FOUND@, @INVALID_ARGUMENT@, and @PERMISSION_DENIED@ errors.+--+-- /See:/ 'newBinaryAuthorizationProjectsPolicySetIamPolicy' smart constructor.+data BinaryAuthorizationProjectsPolicySetIamPolicy = BinaryAuthorizationProjectsPolicySetIamPolicy+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Multipart request metadata.+    payload :: SetIamPolicyRequest,+    -- | REQUIRED: The resource for which the policy is being specified. See <https://cloud.google.com/apis/design/resource_names Resource names> for the appropriate value for this field.+    resource :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsPolicySetIamPolicy' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsPolicySetIamPolicy ::+  -- |  Multipart request metadata. See 'payload'.+  SetIamPolicyRequest ->+  -- |  REQUIRED: The resource for which the policy is being specified. See <https://cloud.google.com/apis/design/resource_names Resource names> for the appropriate value for this field. See 'resource'.+  Core.Text ->+  BinaryAuthorizationProjectsPolicySetIamPolicy+newBinaryAuthorizationProjectsPolicySetIamPolicy payload resource =+  BinaryAuthorizationProjectsPolicySetIamPolicy+    { xgafv =+        Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      payload = payload,+      resource = resource,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    BinaryAuthorizationProjectsPolicySetIamPolicy+  where+  type Rs BinaryAuthorizationProjectsPolicySetIamPolicy = IamPolicy+  type+    Scopes BinaryAuthorizationProjectsPolicySetIamPolicy =+      '[CloudPlatform'FullControl]+  requestClient BinaryAuthorizationProjectsPolicySetIamPolicy {..} =+    go+      resource+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      binaryAuthorizationService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy BinaryAuthorizationProjectsPolicySetIamPolicyResource+          )+          Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/Policy/TestIamPermissions.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.Policy.TestIamPermissions+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a @NOT_FOUND@ error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.policy.testIamPermissions@.+module Gogol.BinaryAuthorization.Projects.Policy.TestIamPermissions+  ( -- * Resource+    BinaryAuthorizationProjectsPolicyTestIamPermissionsResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsPolicyTestIamPermissions (..),+    newBinaryAuthorizationProjectsPolicyTestIamPermissions,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.policy.testIamPermissions@ method which the+-- 'BinaryAuthorizationProjectsPolicyTestIamPermissions' request conforms to.+type BinaryAuthorizationProjectsPolicyTestIamPermissionsResource =+  "v1"+    Core.:> Core.CaptureMode "resource" "testIamPermissions" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] TestIamPermissionsRequest+    Core.:> Core.Post '[Core.JSON] TestIamPermissionsResponse++-- | Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a @NOT_FOUND@ error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.+--+-- /See:/ 'newBinaryAuthorizationProjectsPolicyTestIamPermissions' smart constructor.+data BinaryAuthorizationProjectsPolicyTestIamPermissions = BinaryAuthorizationProjectsPolicyTestIamPermissions+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Multipart request metadata.+    payload :: TestIamPermissionsRequest,+    -- | REQUIRED: The resource for which the policy detail is being requested. See <https://cloud.google.com/apis/design/resource_names Resource names> for the appropriate value for this field.+    resource :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsPolicyTestIamPermissions' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsPolicyTestIamPermissions ::+  -- |  Multipart request metadata. See 'payload'.+  TestIamPermissionsRequest ->+  -- |  REQUIRED: The resource for which the policy detail is being requested. See <https://cloud.google.com/apis/design/resource_names Resource names> for the appropriate value for this field. See 'resource'.+  Core.Text ->+  BinaryAuthorizationProjectsPolicyTestIamPermissions+newBinaryAuthorizationProjectsPolicyTestIamPermissions+  payload+  resource =+    BinaryAuthorizationProjectsPolicyTestIamPermissions+      { xgafv =+          Core.Nothing,+        accessToken = Core.Nothing,+        callback = Core.Nothing,+        payload = payload,+        resource = resource,+        uploadType = Core.Nothing,+        uploadProtocol = Core.Nothing+      }++instance+  Core.GoogleRequest+    BinaryAuthorizationProjectsPolicyTestIamPermissions+  where+  type+    Rs BinaryAuthorizationProjectsPolicyTestIamPermissions =+      TestIamPermissionsResponse+  type+    Scopes BinaryAuthorizationProjectsPolicyTestIamPermissions =+      '[CloudPlatform'FullControl]+  requestClient+    BinaryAuthorizationProjectsPolicyTestIamPermissions {..} =+      go+        resource+        xgafv+        accessToken+        callback+        uploadType+        uploadProtocol+        (Core.Just Core.AltJSON)+        payload+        binaryAuthorizationService+      where+        go =+          Core.buildClient+            ( Core.Proxy ::+                Core.Proxy+                  BinaryAuthorizationProjectsPolicyTestIamPermissionsResource+            )+            Core.mempty
+ gen/Gogol/BinaryAuthorization/Projects/UpdatePolicy.hs view
@@ -0,0 +1,118 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Projects.UpdatePolicy+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates or updates a project\'s policy, and returns a copy of the new policy. A policy is always updated as a whole, to avoid race conditions with concurrent policy enforcement (or management!) requests. Returns @NOT_FOUND@ if the project does not exist, @INVALID_ARGUMENT@ if the request is malformed.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.updatePolicy@.+module Gogol.BinaryAuthorization.Projects.UpdatePolicy+  ( -- * Resource+    BinaryAuthorizationProjectsUpdatePolicyResource,++    -- ** Constructing a Request+    BinaryAuthorizationProjectsUpdatePolicy (..),+    newBinaryAuthorizationProjectsUpdatePolicy,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.projects.updatePolicy@ method which the+-- 'BinaryAuthorizationProjectsUpdatePolicy' request conforms to.+type BinaryAuthorizationProjectsUpdatePolicyResource =+  "v1"+    Core.:> Core.Capture "name" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.ReqBody '[Core.JSON] Policy+    Core.:> Core.Put '[Core.JSON] Policy++-- | Creates or updates a project\'s policy, and returns a copy of the new policy. A policy is always updated as a whole, to avoid race conditions with concurrent policy enforcement (or management!) requests. Returns @NOT_FOUND@ if the project does not exist, @INVALID_ARGUMENT@ if the request is malformed.+--+-- /See:/ 'newBinaryAuthorizationProjectsUpdatePolicy' smart constructor.+data BinaryAuthorizationProjectsUpdatePolicy = BinaryAuthorizationProjectsUpdatePolicy+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Output only. The resource name, in the format @projects\/*\/policy@. There is at most one policy per project.+    name :: Core.Text,+    -- | Multipart request metadata.+    payload :: Policy,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationProjectsUpdatePolicy' with the minimum fields required to make a request.+newBinaryAuthorizationProjectsUpdatePolicy ::+  -- |  Output only. The resource name, in the format @projects\/*\/policy@. There is at most one policy per project. See 'name'.+  Core.Text ->+  -- |  Multipart request metadata. See 'payload'.+  Policy ->+  BinaryAuthorizationProjectsUpdatePolicy+newBinaryAuthorizationProjectsUpdatePolicy name payload =+  BinaryAuthorizationProjectsUpdatePolicy+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      name = name,+      payload = payload,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance Core.GoogleRequest BinaryAuthorizationProjectsUpdatePolicy where+  type Rs BinaryAuthorizationProjectsUpdatePolicy = Policy+  type+    Scopes BinaryAuthorizationProjectsUpdatePolicy =+      '[CloudPlatform'FullControl]+  requestClient BinaryAuthorizationProjectsUpdatePolicy {..} =+    go+      name+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      payload+      binaryAuthorizationService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy BinaryAuthorizationProjectsUpdatePolicyResource+          )+          Core.mempty
+ gen/Gogol/BinaryAuthorization/Systempolicy/GetPolicy.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Systempolicy.GetPolicy+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the current system policy in the specified location.+--+-- /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.systempolicy.getPolicy@.+module Gogol.BinaryAuthorization.Systempolicy.GetPolicy+  ( -- * Resource+    BinaryAuthorizationSystempolicyGetPolicyResource,++    -- ** Constructing a Request+    BinaryAuthorizationSystempolicyGetPolicy (..),+    newBinaryAuthorizationSystempolicyGetPolicy,+  )+where++import Gogol.BinaryAuthorization.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @binaryauthorization.systempolicy.getPolicy@ method which the+-- 'BinaryAuthorizationSystempolicyGetPolicy' request conforms to.+type BinaryAuthorizationSystempolicyGetPolicyResource =+  "v1"+    Core.:> Core.Capture "name" Core.Text+    Core.:> Core.QueryParam "$.xgafv" Xgafv+    Core.:> Core.QueryParam "access_token" Core.Text+    Core.:> Core.QueryParam "callback" Core.Text+    Core.:> Core.QueryParam "uploadType" Core.Text+    Core.:> Core.QueryParam "upload_protocol" Core.Text+    Core.:> Core.QueryParam "alt" Core.AltJSON+    Core.:> Core.Get '[Core.JSON] Policy++-- | Gets the current system policy in the specified location.+--+-- /See:/ 'newBinaryAuthorizationSystempolicyGetPolicy' smart constructor.+data BinaryAuthorizationSystempolicyGetPolicy = BinaryAuthorizationSystempolicyGetPolicy+  { -- | V1 error format.+    xgafv :: (Core.Maybe Xgafv),+    -- | OAuth access token.+    accessToken :: (Core.Maybe Core.Text),+    -- | JSONP+    callback :: (Core.Maybe Core.Text),+    -- | Required. The resource name, in the format @locations\/*\/policy@. Note that the system policy is not associated with a project.+    name :: Core.Text,+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+    uploadType :: (Core.Maybe Core.Text),+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+    uploadProtocol :: (Core.Maybe Core.Text)+  }+  deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'BinaryAuthorizationSystempolicyGetPolicy' with the minimum fields required to make a request.+newBinaryAuthorizationSystempolicyGetPolicy ::+  -- |  Required. The resource name, in the format @locations\/*\/policy@. Note that the system policy is not associated with a project. See 'name'.+  Core.Text ->+  BinaryAuthorizationSystempolicyGetPolicy+newBinaryAuthorizationSystempolicyGetPolicy name =+  BinaryAuthorizationSystempolicyGetPolicy+    { xgafv = Core.Nothing,+      accessToken = Core.Nothing,+      callback = Core.Nothing,+      name = name,+      uploadType = Core.Nothing,+      uploadProtocol = Core.Nothing+    }++instance+  Core.GoogleRequest+    BinaryAuthorizationSystempolicyGetPolicy+  where+  type Rs BinaryAuthorizationSystempolicyGetPolicy = Policy+  type+    Scopes BinaryAuthorizationSystempolicyGetPolicy =+      '[CloudPlatform'FullControl]+  requestClient BinaryAuthorizationSystempolicyGetPolicy {..} =+    go+      name+      xgafv+      accessToken+      callback+      uploadType+      uploadProtocol+      (Core.Just Core.AltJSON)+      binaryAuthorizationService+    where+      go =+        Core.buildClient+          ( Core.Proxy ::+              Core.Proxy BinaryAuthorizationSystempolicyGetPolicyResource+          )+          Core.mempty
+ gen/Gogol/BinaryAuthorization/Types.hs view
@@ -0,0 +1,305 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module      : Gogol.BinaryAuthorization.Types+-- Copyright   : (c) 2015-2025 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>+--               Toni Cebrián <toni@tonicebrian.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Gogol.BinaryAuthorization.Types+  ( -- * Configuration+    binaryAuthorizationService,++    -- * OAuth Scopes+    CloudPlatform'FullControl,++    -- * Types++    -- ** Xgafv+    Xgafv (..),++    -- ** AdmissionRule+    AdmissionRule (..),+    newAdmissionRule,++    -- ** AdmissionRule_EnforcementMode+    AdmissionRule_EnforcementMode (..),++    -- ** AdmissionRule_EvaluationMode+    AdmissionRule_EvaluationMode (..),++    -- ** AdmissionWhitelistPattern+    AdmissionWhitelistPattern (..),+    newAdmissionWhitelistPattern,++    -- ** AllowlistResult+    AllowlistResult (..),+    newAllowlistResult,++    -- ** AttestationAuthenticator+    AttestationAuthenticator (..),+    newAttestationAuthenticator,++    -- ** AttestationOccurrence+    AttestationOccurrence (..),+    newAttestationOccurrence,++    -- ** AttestationSource+    AttestationSource (..),+    newAttestationSource,++    -- ** Attestor+    Attestor (..),+    newAttestor,++    -- ** AttestorPublicKey+    AttestorPublicKey (..),+    newAttestorPublicKey,++    -- ** Binding+    Binding (..),+    newBinding,++    -- ** Check+    Check (..),+    newCheck,++    -- ** CheckResult+    CheckResult (..),+    newCheckResult,++    -- ** CheckResults+    CheckResults (..),+    newCheckResults,++    -- ** CheckSet+    CheckSet (..),+    newCheckSet,++    -- ** CheckSetResult+    CheckSetResult (..),+    newCheckSetResult,++    -- ** Empty+    Empty (..),+    newEmpty,++    -- ** EvaluateGkePolicyRequest+    EvaluateGkePolicyRequest (..),+    newEvaluateGkePolicyRequest,++    -- ** EvaluateGkePolicyRequest_Resource+    EvaluateGkePolicyRequest_Resource (..),+    newEvaluateGkePolicyRequest_Resource,++    -- ** EvaluateGkePolicyResponse+    EvaluateGkePolicyResponse (..),+    newEvaluateGkePolicyResponse,++    -- ** EvaluateGkePolicyResponse_Verdict+    EvaluateGkePolicyResponse_Verdict (..),++    -- ** EvaluationResult+    EvaluationResult (..),+    newEvaluationResult,++    -- ** EvaluationResult_Verdict+    EvaluationResult_Verdict (..),++    -- ** Expr+    Expr (..),+    newExpr,++    -- ** GkePolicy+    GkePolicy (..),+    newGkePolicy,++    -- ** IamPolicy+    IamPolicy (..),+    newIamPolicy,++    -- ** ImageAllowlist+    ImageAllowlist (..),+    newImageAllowlist,++    -- ** ImageFreshnessCheck+    ImageFreshnessCheck (..),+    newImageFreshnessCheck,++    -- ** ImageResult+    ImageResult (..),+    newImageResult,++    -- ** ImageResult_Verdict+    ImageResult_Verdict (..),++    -- ** Jwt+    Jwt (..),+    newJwt,++    -- ** ListAttestorsResponse+    ListAttestorsResponse (..),+    newListAttestorsResponse,++    -- ** ListPlatformPoliciesResponse+    ListPlatformPoliciesResponse (..),+    newListPlatformPoliciesResponse,++    -- ** PkixPublicKey+    PkixPublicKey (..),+    newPkixPublicKey,++    -- ** PkixPublicKey_SignatureAlgorithm+    PkixPublicKey_SignatureAlgorithm (..),++    -- ** PkixPublicKeySet+    PkixPublicKeySet (..),+    newPkixPublicKeySet,++    -- ** PlatformPolicy+    PlatformPolicy (..),+    newPlatformPolicy,++    -- ** PodResult+    PodResult (..),+    newPodResult,++    -- ** PodResult_Verdict+    PodResult_Verdict (..),++    -- ** Policy+    Policy (..),+    newPolicy,++    -- ** Policy_ClusterAdmissionRules+    Policy_ClusterAdmissionRules (..),+    newPolicy_ClusterAdmissionRules,++    -- ** Policy_GlobalPolicyEvaluationMode+    Policy_GlobalPolicyEvaluationMode (..),++    -- ** Policy_IstioServiceIdentityAdmissionRules+    Policy_IstioServiceIdentityAdmissionRules (..),+    newPolicy_IstioServiceIdentityAdmissionRules,++    -- ** Policy_KubernetesNamespaceAdmissionRules+    Policy_KubernetesNamespaceAdmissionRules (..),+    newPolicy_KubernetesNamespaceAdmissionRules,++    -- ** Policy_KubernetesServiceAccountAdmissionRules+    Policy_KubernetesServiceAccountAdmissionRules (..),+    newPolicy_KubernetesServiceAccountAdmissionRules,++    -- ** Scope+    Scope (..),+    newScope,++    -- ** SetIamPolicyRequest+    SetIamPolicyRequest (..),+    newSetIamPolicyRequest,++    -- ** Signature+    Signature (..),+    newSignature,++    -- ** SigstoreAuthority+    SigstoreAuthority (..),+    newSigstoreAuthority,++    -- ** SigstorePublicKey+    SigstorePublicKey (..),+    newSigstorePublicKey,++    -- ** SigstorePublicKeySet+    SigstorePublicKeySet (..),+    newSigstorePublicKeySet,++    -- ** SigstoreSignatureCheck+    SigstoreSignatureCheck (..),+    newSigstoreSignatureCheck,++    -- ** SimpleSigningAttestationCheck+    SimpleSigningAttestationCheck (..),+    newSimpleSigningAttestationCheck,++    -- ** SlsaCheck+    SlsaCheck (..),+    newSlsaCheck,++    -- ** TestIamPermissionsRequest+    TestIamPermissionsRequest (..),+    newTestIamPermissionsRequest,++    -- ** TestIamPermissionsResponse+    TestIamPermissionsResponse (..),+    newTestIamPermissionsResponse,++    -- ** TrustedDirectoryCheck+    TrustedDirectoryCheck (..),+    newTrustedDirectoryCheck,++    -- ** UserOwnedGrafeasNote+    UserOwnedGrafeasNote (..),+    newUserOwnedGrafeasNote,++    -- ** ValidateAttestationOccurrenceRequest+    ValidateAttestationOccurrenceRequest (..),+    newValidateAttestationOccurrenceRequest,++    -- ** ValidateAttestationOccurrenceResponse+    ValidateAttestationOccurrenceResponse (..),+    newValidateAttestationOccurrenceResponse,++    -- ** ValidateAttestationOccurrenceResponse_Result+    ValidateAttestationOccurrenceResponse_Result (..),++    -- ** VerificationRule+    VerificationRule (..),+    newVerificationRule,++    -- ** VerificationRule_TrustedBuilder+    VerificationRule_TrustedBuilder (..),++    -- ** VulnerabilityCheck+    VulnerabilityCheck (..),+    newVulnerabilityCheck,++    -- ** VulnerabilityCheck_MaximumFixableSeverity+    VulnerabilityCheck_MaximumFixableSeverity (..),++    -- ** VulnerabilityCheck_MaximumUnfixableSeverity+    VulnerabilityCheck_MaximumUnfixableSeverity (..),+  )+where++import Gogol.BinaryAuthorization.Internal.Product+import Gogol.BinaryAuthorization.Internal.Sum+import Gogol.Prelude qualified as Core++-- | Default request referring to version @v1@ of the Binary Authorization API. This contains the host and root path used as a starting point for constructing service requests.+binaryAuthorizationService :: Core.ServiceConfig+binaryAuthorizationService =+  Core.defaultService+    (Core.ServiceId "binaryauthorization:v1")+    "binaryauthorization.googleapis.com"++-- | See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account.+type CloudPlatform'FullControl =+  "https://www.googleapis.com/auth/cloud-platform"
− gen/Network/Google/BinaryAuthorization.hs
@@ -1,228 +0,0 @@-{-# LANGUAGE DataKinds         #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE TypeOperators     #-}--{-# OPTIONS_GHC -fno-warn-unused-imports    #-}-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}---- |--- Module      : Network.Google.BinaryAuthorization--- Copyright   : (c) 2015-2016 Brendan Hay--- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : auto-generated--- Portability : non-portable (GHC extensions)------ The management interface for Binary Authorization, a system providing--- policy control for images deployed to Kubernetes Engine clusters.------ /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference>-module Network.Google.BinaryAuthorization-    (-    -- * Service Configuration-      binaryAuthorizationService--    -- * OAuth Scopes-    , cloudPlatformScope--    -- * API Declaration-    , BinaryAuthorizationAPI--    -- * Resources--    -- ** binaryauthorization.projects.attestors.create-    , module Network.Google.Resource.BinaryAuthorization.Projects.Attestors.Create--    -- ** binaryauthorization.projects.attestors.delete-    , module Network.Google.Resource.BinaryAuthorization.Projects.Attestors.Delete--    -- ** binaryauthorization.projects.attestors.get-    , module Network.Google.Resource.BinaryAuthorization.Projects.Attestors.Get--    -- ** binaryauthorization.projects.attestors.getIamPolicy-    , module Network.Google.Resource.BinaryAuthorization.Projects.Attestors.GetIAMPolicy--    -- ** binaryauthorization.projects.attestors.list-    , module Network.Google.Resource.BinaryAuthorization.Projects.Attestors.List--    -- ** binaryauthorization.projects.attestors.setIamPolicy-    , module Network.Google.Resource.BinaryAuthorization.Projects.Attestors.SetIAMPolicy--    -- ** binaryauthorization.projects.attestors.testIamPermissions-    , module Network.Google.Resource.BinaryAuthorization.Projects.Attestors.TestIAMPermissions--    -- ** binaryauthorization.projects.attestors.update-    , module Network.Google.Resource.BinaryAuthorization.Projects.Attestors.Update--    -- ** binaryauthorization.projects.getPolicy-    , module Network.Google.Resource.BinaryAuthorization.Projects.GetPolicy--    -- ** binaryauthorization.projects.policy.getIamPolicy-    , module Network.Google.Resource.BinaryAuthorization.Projects.Policy.GetIAMPolicy--    -- ** binaryauthorization.projects.policy.setIamPolicy-    , module Network.Google.Resource.BinaryAuthorization.Projects.Policy.SetIAMPolicy--    -- ** binaryauthorization.projects.policy.testIamPermissions-    , module Network.Google.Resource.BinaryAuthorization.Projects.Policy.TestIAMPermissions--    -- ** binaryauthorization.projects.updatePolicy-    , module Network.Google.Resource.BinaryAuthorization.Projects.UpdatePolicy--    -- * Types--    -- ** PkixPublicKey-    , PkixPublicKey-    , pkixPublicKey-    , ppkPublicKeyPem-    , ppkSignatureAlgorithm--    -- ** Expr-    , Expr-    , expr-    , eLocation-    , eExpression-    , eTitle-    , eDescription--    -- ** UserOwnedDrydockNote-    , UserOwnedDrydockNote-    , userOwnedDrydockNote-    , uodnDelegationServiceAccountEmail-    , uodnPublicKeys-    , uodnNoteReference--    -- ** Empty-    , Empty-    , empty--    -- ** AdmissionRuleEnforcementMode-    , AdmissionRuleEnforcementMode (..)--    -- ** PolicyGlobalPolicyEvaluationMode-    , PolicyGlobalPolicyEvaluationMode (..)--    -- ** SetIAMPolicyRequest-    , SetIAMPolicyRequest-    , setIAMPolicyRequest-    , siprPolicy--    -- ** ListAttestorsResponse-    , ListAttestorsResponse-    , listAttestorsResponse-    , larNextPageToken-    , larAttestors--    -- ** AdmissionWhiteListPattern-    , AdmissionWhiteListPattern-    , admissionWhiteListPattern-    , awlpNamePattern--    -- ** PkixPublicKeySignatureAlgorithm-    , PkixPublicKeySignatureAlgorithm (..)--    -- ** AdmissionRule-    , AdmissionRule-    , admissionRule-    , arEnforcementMode-    , arEvaluationMode-    , arRequireAttestationsBy--    -- ** AdmissionRuleEvaluationMode-    , AdmissionRuleEvaluationMode (..)--    -- ** Xgafv-    , Xgafv (..)--    -- ** TestIAMPermissionsRequest-    , TestIAMPermissionsRequest-    , testIAMPermissionsRequest-    , tiprPermissions--    -- ** IAMPolicy-    , IAMPolicy-    , iamPolicy-    , ipEtag-    , ipVersion-    , ipBindings--    -- ** AttestorPublicKey-    , AttestorPublicKey-    , attestorPublicKey-    , apkPkixPublicKey-    , apkAsciiArmoredPgpPublicKey-    , apkId-    , apkComment--    -- ** TestIAMPermissionsResponse-    , TestIAMPermissionsResponse-    , testIAMPermissionsResponse-    , tiamprPermissions--    -- ** Policy-    , Policy-    , policy-    , pDefaultAdmissionRule-    , pAdmissionWhiteListPatterns-    , pClusterAdmissionRules-    , pUpdateTime-    , pName-    , pGlobalPolicyEvaluationMode-    , pDescription--    -- ** PolicyClusterAdmissionRules-    , PolicyClusterAdmissionRules-    , policyClusterAdmissionRules-    , pcarAddtional--    -- ** Attestor-    , Attestor-    , attestor-    , aUserOwnedDrydockNote-    , aUpdateTime-    , aName-    , aDescription--    -- ** Binding-    , Binding-    , binding-    , bMembers-    , bRole-    , bCondition-    ) where--import           Network.Google.BinaryAuthorization.Types-import           Network.Google.Prelude-import           Network.Google.Resource.BinaryAuthorization.Projects.Attestors.Create-import           Network.Google.Resource.BinaryAuthorization.Projects.Attestors.Delete-import           Network.Google.Resource.BinaryAuthorization.Projects.Attestors.Get-import           Network.Google.Resource.BinaryAuthorization.Projects.Attestors.GetIAMPolicy-import           Network.Google.Resource.BinaryAuthorization.Projects.Attestors.List-import           Network.Google.Resource.BinaryAuthorization.Projects.Attestors.SetIAMPolicy-import           Network.Google.Resource.BinaryAuthorization.Projects.Attestors.TestIAMPermissions-import           Network.Google.Resource.BinaryAuthorization.Projects.Attestors.Update-import           Network.Google.Resource.BinaryAuthorization.Projects.GetPolicy-import           Network.Google.Resource.BinaryAuthorization.Projects.Policy.GetIAMPolicy-import           Network.Google.Resource.BinaryAuthorization.Projects.Policy.SetIAMPolicy-import           Network.Google.Resource.BinaryAuthorization.Projects.Policy.TestIAMPermissions-import           Network.Google.Resource.BinaryAuthorization.Projects.UpdatePolicy--{- $resources-TODO--}---- | Represents the entirety of the methods and resources available for the Binary Authorization API service.-type BinaryAuthorizationAPI =-     ProjectsAttestorsListResource :<|>-       ProjectsAttestorsGetIAMPolicyResource-       :<|> ProjectsAttestorsGetResource-       :<|> ProjectsAttestorsCreateResource-       :<|> ProjectsAttestorsSetIAMPolicyResource-       :<|> ProjectsAttestorsTestIAMPermissionsResource-       :<|> ProjectsAttestorsDeleteResource-       :<|> ProjectsAttestorsUpdateResource-       :<|> ProjectsPolicyGetIAMPolicyResource-       :<|> ProjectsPolicySetIAMPolicyResource-       :<|> ProjectsPolicyTestIAMPermissionsResource-       :<|> ProjectsUpdatePolicyResource-       :<|> ProjectsGetPolicyResource
− gen/Network/Google/BinaryAuthorization/Types.hs
@@ -1,158 +0,0 @@-{-# LANGUAGE DataKinds          #-}-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric      #-}-{-# LANGUAGE NoImplicitPrelude  #-}-{-# LANGUAGE OverloadedStrings  #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- |--- Module      : Network.Google.BinaryAuthorization.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.BinaryAuthorization.Types-    (-    -- * Service Configuration-      binaryAuthorizationService--    -- * OAuth Scopes-    , cloudPlatformScope--    -- * PkixPublicKey-    , PkixPublicKey-    , pkixPublicKey-    , ppkPublicKeyPem-    , ppkSignatureAlgorithm--    -- * Expr-    , Expr-    , expr-    , eLocation-    , eExpression-    , eTitle-    , eDescription--    -- * UserOwnedDrydockNote-    , UserOwnedDrydockNote-    , userOwnedDrydockNote-    , uodnDelegationServiceAccountEmail-    , uodnPublicKeys-    , uodnNoteReference--    -- * Empty-    , Empty-    , empty--    -- * AdmissionRuleEnforcementMode-    , AdmissionRuleEnforcementMode (..)--    -- * PolicyGlobalPolicyEvaluationMode-    , PolicyGlobalPolicyEvaluationMode (..)--    -- * SetIAMPolicyRequest-    , SetIAMPolicyRequest-    , setIAMPolicyRequest-    , siprPolicy--    -- * ListAttestorsResponse-    , ListAttestorsResponse-    , listAttestorsResponse-    , larNextPageToken-    , larAttestors--    -- * AdmissionWhiteListPattern-    , AdmissionWhiteListPattern-    , admissionWhiteListPattern-    , awlpNamePattern--    -- * PkixPublicKeySignatureAlgorithm-    , PkixPublicKeySignatureAlgorithm (..)--    -- * AdmissionRule-    , AdmissionRule-    , admissionRule-    , arEnforcementMode-    , arEvaluationMode-    , arRequireAttestationsBy--    -- * AdmissionRuleEvaluationMode-    , AdmissionRuleEvaluationMode (..)--    -- * Xgafv-    , Xgafv (..)--    -- * TestIAMPermissionsRequest-    , TestIAMPermissionsRequest-    , testIAMPermissionsRequest-    , tiprPermissions--    -- * IAMPolicy-    , IAMPolicy-    , iamPolicy-    , ipEtag-    , ipVersion-    , ipBindings--    -- * AttestorPublicKey-    , AttestorPublicKey-    , attestorPublicKey-    , apkPkixPublicKey-    , apkAsciiArmoredPgpPublicKey-    , apkId-    , apkComment--    -- * TestIAMPermissionsResponse-    , TestIAMPermissionsResponse-    , testIAMPermissionsResponse-    , tiamprPermissions--    -- * Policy-    , Policy-    , policy-    , pDefaultAdmissionRule-    , pAdmissionWhiteListPatterns-    , pClusterAdmissionRules-    , pUpdateTime-    , pName-    , pGlobalPolicyEvaluationMode-    , pDescription--    -- * PolicyClusterAdmissionRules-    , PolicyClusterAdmissionRules-    , policyClusterAdmissionRules-    , pcarAddtional--    -- * Attestor-    , Attestor-    , attestor-    , aUserOwnedDrydockNote-    , aUpdateTime-    , aName-    , aDescription--    -- * Binding-    , Binding-    , binding-    , bMembers-    , bRole-    , bCondition-    ) where--import           Network.Google.BinaryAuthorization.Types.Product-import           Network.Google.BinaryAuthorization.Types.Sum-import           Network.Google.Prelude---- | Default request referring to version 'v1beta1' of the Binary Authorization API. This contains the host and root path used as a starting point for constructing service requests.-binaryAuthorizationService :: ServiceConfig-binaryAuthorizationService-  = defaultService-      (ServiceId "binaryauthorization:v1beta1")-      "binaryauthorization.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/BinaryAuthorization/Types/Product.hs
@@ -1,1078 +0,0 @@-{-# 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.BinaryAuthorization.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.BinaryAuthorization.Types.Product where--import           Network.Google.BinaryAuthorization.Types.Sum-import           Network.Google.Prelude---- | A public key in the PkixPublicKey format (see--- https:\/\/tools.ietf.org\/html\/rfc5280#section-4.1.2.7 for details).--- Public keys of this type are typically textually encoded using the PEM--- format.------ /See:/ 'pkixPublicKey' smart constructor.-data PkixPublicKey =-  PkixPublicKey'-    { _ppkPublicKeyPem       :: !(Maybe Text)-    , _ppkSignatureAlgorithm :: !(Maybe PkixPublicKeySignatureAlgorithm)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'PkixPublicKey' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ppkPublicKeyPem'------ * 'ppkSignatureAlgorithm'-pkixPublicKey-    :: PkixPublicKey-pkixPublicKey =-  PkixPublicKey' {_ppkPublicKeyPem = Nothing, _ppkSignatureAlgorithm = Nothing}----- | A PEM-encoded public key, as described in--- https:\/\/tools.ietf.org\/html\/rfc7468#section-13-ppkPublicKeyPem :: Lens' PkixPublicKey (Maybe Text)-ppkPublicKeyPem-  = lens _ppkPublicKeyPem-      (\ s a -> s{_ppkPublicKeyPem = a})---- | The signature algorithm used to verify a message against a signature--- using this key. These signature algorithm must match the structure and--- any object identifiers encoded in \`public_key_pem\` (i.e. this--- algorithm must match that of the public key).-ppkSignatureAlgorithm :: Lens' PkixPublicKey (Maybe PkixPublicKeySignatureAlgorithm)-ppkSignatureAlgorithm-  = lens _ppkSignatureAlgorithm-      (\ s a -> s{_ppkSignatureAlgorithm = a})--instance FromJSON PkixPublicKey where-        parseJSON-          = withObject "PkixPublicKey"-              (\ o ->-                 PkixPublicKey' <$>-                   (o .:? "publicKeyPem") <*>-                     (o .:? "signatureAlgorithm"))--instance ToJSON PkixPublicKey where-        toJSON PkixPublicKey'{..}-          = object-              (catMaybes-                 [("publicKeyPem" .=) <$> _ppkPublicKeyPem,-                  ("signatureAlgorithm" .=) <$>-                    _ppkSignatureAlgorithm])---- | 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])---- | An user owned drydock note references a Drydock ATTESTATION_AUTHORITY--- Note created by the user.------ /See:/ 'userOwnedDrydockNote' smart constructor.-data UserOwnedDrydockNote =-  UserOwnedDrydockNote'-    { _uodnDelegationServiceAccountEmail :: !(Maybe Text)-    , _uodnPublicKeys                    :: !(Maybe [AttestorPublicKey])-    , _uodnNoteReference                 :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'UserOwnedDrydockNote' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uodnDelegationServiceAccountEmail'------ * 'uodnPublicKeys'------ * 'uodnNoteReference'-userOwnedDrydockNote-    :: UserOwnedDrydockNote-userOwnedDrydockNote =-  UserOwnedDrydockNote'-    { _uodnDelegationServiceAccountEmail = Nothing-    , _uodnPublicKeys = Nothing-    , _uodnNoteReference = Nothing-    }----- | Output only. This field will contain the service account email address--- that this Attestor will use as the principal when querying Container--- Analysis. Attestor administrators must grant this service account the--- IAM role needed to read attestations from the note_reference in--- Container Analysis (\`containeranalysis.notes.occurrences.viewer\`).--- This email address is fixed for the lifetime of the Attestor, but--- callers should not make any other assumptions about the service account--- email; future versions may use an email based on a different naming--- pattern.-uodnDelegationServiceAccountEmail :: Lens' UserOwnedDrydockNote (Maybe Text)-uodnDelegationServiceAccountEmail-  = lens _uodnDelegationServiceAccountEmail-      (\ s a -> s{_uodnDelegationServiceAccountEmail = a})---- | Optional. Public keys that verify attestations signed by this attestor.--- This field may be updated. If this field is non-empty, one of the--- specified public keys must verify that an attestation was signed by this--- attestor for the image specified in the admission request. If this field--- is empty, this attestor always returns that no valid attestations exist.-uodnPublicKeys :: Lens' UserOwnedDrydockNote [AttestorPublicKey]-uodnPublicKeys-  = lens _uodnPublicKeys-      (\ s a -> s{_uodnPublicKeys = a})-      . _Default-      . _Coerce---- | Required. The Drydock resource name of a ATTESTATION_AUTHORITY Note,--- created by the user, in the format: \`projects\/*\/notes\/*\` (or the--- legacy \`providers\/*\/notes\/*\`). This field may not be updated. An--- attestation by this attestor is stored as a Drydock--- ATTESTATION_AUTHORITY Occurrence that names a container image and that--- links to this Note. Drydock is an external dependency.-uodnNoteReference :: Lens' UserOwnedDrydockNote (Maybe Text)-uodnNoteReference-  = lens _uodnNoteReference-      (\ s a -> s{_uodnNoteReference = a})--instance FromJSON UserOwnedDrydockNote where-        parseJSON-          = withObject "UserOwnedDrydockNote"-              (\ o ->-                 UserOwnedDrydockNote' <$>-                   (o .:? "delegationServiceAccountEmail") <*>-                     (o .:? "publicKeys" .!= mempty)-                     <*> (o .:? "noteReference"))--instance ToJSON UserOwnedDrydockNote where-        toJSON UserOwnedDrydockNote'{..}-          = object-              (catMaybes-                 [("delegationServiceAccountEmail" .=) <$>-                    _uodnDelegationServiceAccountEmail,-                  ("publicKeys" .=) <$> _uodnPublicKeys,-                  ("noteReference" .=) <$> _uodnNoteReference])---- | 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---- | Request message for \`SetIamPolicy\` method.------ /See:/ 'setIAMPolicyRequest' smart constructor.-newtype SetIAMPolicyRequest =-  SetIAMPolicyRequest'-    { _siprPolicy :: Maybe IAMPolicy-    }-  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:------ * 'siprPolicy'-setIAMPolicyRequest-    :: SetIAMPolicyRequest-setIAMPolicyRequest = SetIAMPolicyRequest' {_siprPolicy = Nothing}----- | 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 IAMPolicy)-siprPolicy-  = lens _siprPolicy (\ s a -> s{_siprPolicy = a})--instance FromJSON SetIAMPolicyRequest where-        parseJSON-          = withObject "SetIAMPolicyRequest"-              (\ o -> SetIAMPolicyRequest' <$> (o .:? "policy"))--instance ToJSON SetIAMPolicyRequest where-        toJSON SetIAMPolicyRequest'{..}-          = object (catMaybes [("policy" .=) <$> _siprPolicy])---- | Response message for BinauthzManagementService.ListAttestors.------ /See:/ 'listAttestorsResponse' smart constructor.-data ListAttestorsResponse =-  ListAttestorsResponse'-    { _larNextPageToken :: !(Maybe Text)-    , _larAttestors     :: !(Maybe [Attestor])-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ListAttestorsResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'larNextPageToken'------ * 'larAttestors'-listAttestorsResponse-    :: ListAttestorsResponse-listAttestorsResponse =-  ListAttestorsResponse' {_larNextPageToken = Nothing, _larAttestors = Nothing}----- | A token to retrieve the next page of results. Pass this value in the--- ListAttestorsRequest.page_token field in the subsequent call to the--- \`ListAttestors\` method to retrieve the next page of results.-larNextPageToken :: Lens' ListAttestorsResponse (Maybe Text)-larNextPageToken-  = lens _larNextPageToken-      (\ s a -> s{_larNextPageToken = a})---- | The list of attestors.-larAttestors :: Lens' ListAttestorsResponse [Attestor]-larAttestors-  = lens _larAttestors (\ s a -> s{_larAttestors = a})-      . _Default-      . _Coerce--instance FromJSON ListAttestorsResponse where-        parseJSON-          = withObject "ListAttestorsResponse"-              (\ o ->-                 ListAttestorsResponse' <$>-                   (o .:? "nextPageToken") <*>-                     (o .:? "attestors" .!= mempty))--instance ToJSON ListAttestorsResponse where-        toJSON ListAttestorsResponse'{..}-          = object-              (catMaybes-                 [("nextPageToken" .=) <$> _larNextPageToken,-                  ("attestors" .=) <$> _larAttestors])---- | An admission whitelist pattern exempts images from checks by admission--- rules.------ /See:/ 'admissionWhiteListPattern' smart constructor.-newtype AdmissionWhiteListPattern =-  AdmissionWhiteListPattern'-    { _awlpNamePattern :: Maybe Text-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'AdmissionWhiteListPattern' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'awlpNamePattern'-admissionWhiteListPattern-    :: AdmissionWhiteListPattern-admissionWhiteListPattern =-  AdmissionWhiteListPattern' {_awlpNamePattern = Nothing}----- | An image name pattern to whitelist, in the form--- \`registry\/path\/to\/image\`. This supports a trailing \`*\` as a--- wildcard, but this is allowed only in text after the \`registry\/\`--- part.-awlpNamePattern :: Lens' AdmissionWhiteListPattern (Maybe Text)-awlpNamePattern-  = lens _awlpNamePattern-      (\ s a -> s{_awlpNamePattern = a})--instance FromJSON AdmissionWhiteListPattern where-        parseJSON-          = withObject "AdmissionWhiteListPattern"-              (\ o ->-                 AdmissionWhiteListPattern' <$> (o .:? "namePattern"))--instance ToJSON AdmissionWhiteListPattern where-        toJSON AdmissionWhiteListPattern'{..}-          = object-              (catMaybes [("namePattern" .=) <$> _awlpNamePattern])---- | An admission rule specifies either that all container images used in a--- pod creation request must be attested to by one or more attestors, that--- all pod creations will be allowed, or that all pod creations will be--- denied. Images matching an admission whitelist pattern are exempted from--- admission rules and will never block a pod creation.------ /See:/ 'admissionRule' smart constructor.-data AdmissionRule =-  AdmissionRule'-    { _arEnforcementMode       :: !(Maybe AdmissionRuleEnforcementMode)-    , _arEvaluationMode        :: !(Maybe AdmissionRuleEvaluationMode)-    , _arRequireAttestationsBy :: !(Maybe [Text])-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'AdmissionRule' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'arEnforcementMode'------ * 'arEvaluationMode'------ * 'arRequireAttestationsBy'-admissionRule-    :: AdmissionRule-admissionRule =-  AdmissionRule'-    { _arEnforcementMode = Nothing-    , _arEvaluationMode = Nothing-    , _arRequireAttestationsBy = Nothing-    }----- | Required. The action when a pod creation is denied by the admission--- rule.-arEnforcementMode :: Lens' AdmissionRule (Maybe AdmissionRuleEnforcementMode)-arEnforcementMode-  = lens _arEnforcementMode-      (\ s a -> s{_arEnforcementMode = a})---- | Required. How this admission rule will be evaluated.-arEvaluationMode :: Lens' AdmissionRule (Maybe AdmissionRuleEvaluationMode)-arEvaluationMode-  = lens _arEvaluationMode-      (\ s a -> s{_arEvaluationMode = a})---- | Optional. The resource names of the attestors that must attest to a--- container image, in the format \`projects\/*\/attestors\/*\`. Each--- attestor must exist before a policy can reference it. To add an attestor--- to a policy the principal issuing the policy change request must be able--- to read the attestor resource. Note: this field must be non-empty when--- the evaluation_mode field specifies REQUIRE_ATTESTATION, otherwise it--- must be empty.-arRequireAttestationsBy :: Lens' AdmissionRule [Text]-arRequireAttestationsBy-  = lens _arRequireAttestationsBy-      (\ s a -> s{_arRequireAttestationsBy = a})-      . _Default-      . _Coerce--instance FromJSON AdmissionRule where-        parseJSON-          = withObject "AdmissionRule"-              (\ o ->-                 AdmissionRule' <$>-                   (o .:? "enforcementMode") <*>-                     (o .:? "evaluationMode")-                     <*> (o .:? "requireAttestationsBy" .!= mempty))--instance ToJSON AdmissionRule where-        toJSON AdmissionRule'{..}-          = object-              (catMaybes-                 [("enforcementMode" .=) <$> _arEnforcementMode,-                  ("evaluationMode" .=) <$> _arEvaluationMode,-                  ("requireAttestationsBy" .=) <$>-                    _arRequireAttestationsBy])---- | 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])---- | 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:/ 'iamPolicy' smart constructor.-data IAMPolicy =-  IAMPolicy'-    { _ipEtag     :: !(Maybe Bytes)-    , _ipVersion  :: !(Maybe (Textual Int32))-    , _ipBindings :: !(Maybe [Binding])-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'IAMPolicy' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ipEtag'------ * 'ipVersion'------ * 'ipBindings'-iamPolicy-    :: IAMPolicy-iamPolicy =-  IAMPolicy' {_ipEtag = Nothing, _ipVersion = Nothing, _ipBindings = Nothing}----- | \`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.-ipEtag :: Lens' IAMPolicy (Maybe ByteString)-ipEtag-  = lens _ipEtag (\ s a -> s{_ipEtag = a}) .-      mapping _Bytes---- | Deprecated.-ipVersion :: Lens' IAMPolicy (Maybe Int32)-ipVersion-  = lens _ipVersion (\ s a -> s{_ipVersion = a}) .-      mapping _Coerce---- | Associates a list of \`members\` to a \`role\`. \`bindings\` with no--- members will result in an error.-ipBindings :: Lens' IAMPolicy [Binding]-ipBindings-  = lens _ipBindings (\ s a -> s{_ipBindings = a}) .-      _Default-      . _Coerce--instance FromJSON IAMPolicy where-        parseJSON-          = withObject "IAMPolicy"-              (\ o ->-                 IAMPolicy' <$>-                   (o .:? "etag") <*> (o .:? "version") <*>-                     (o .:? "bindings" .!= mempty))--instance ToJSON IAMPolicy where-        toJSON IAMPolicy'{..}-          = object-              (catMaybes-                 [("etag" .=) <$> _ipEtag,-                  ("version" .=) <$> _ipVersion,-                  ("bindings" .=) <$> _ipBindings])---- | An attestor public key that will be used to verify attestations signed--- by this attestor.------ /See:/ 'attestorPublicKey' smart constructor.-data AttestorPublicKey =-  AttestorPublicKey'-    { _apkPkixPublicKey            :: !(Maybe PkixPublicKey)-    , _apkAsciiArmoredPgpPublicKey :: !(Maybe Text)-    , _apkId                       :: !(Maybe Text)-    , _apkComment                  :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'AttestorPublicKey' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'apkPkixPublicKey'------ * 'apkAsciiArmoredPgpPublicKey'------ * 'apkId'------ * 'apkComment'-attestorPublicKey-    :: AttestorPublicKey-attestorPublicKey =-  AttestorPublicKey'-    { _apkPkixPublicKey = Nothing-    , _apkAsciiArmoredPgpPublicKey = Nothing-    , _apkId = Nothing-    , _apkComment = Nothing-    }----- | A raw PKIX SubjectPublicKeyInfo format public key. NOTE: \`id\` may be--- explicitly provided by the caller when using this type of public key,--- but it MUST be a valid RFC3986 URI. If \`id\` is left blank, a default--- one will be computed based on the digest of the DER encoding of the--- public key.-apkPkixPublicKey :: Lens' AttestorPublicKey (Maybe PkixPublicKey)-apkPkixPublicKey-  = lens _apkPkixPublicKey-      (\ s a -> s{_apkPkixPublicKey = a})---- | ASCII-armored representation of a PGP public key, as the entire output--- by the command \`gpg --export --armor foo\'example.com\` (either LF or--- CRLF line endings). When using this field, \`id\` should be left blank.--- The BinAuthz API handlers will calculate the ID and fill it in--- automatically. BinAuthz computes this ID as the OpenPGP RFC4880 V4--- fingerprint, represented as upper-case hex. If \`id\` is provided by the--- caller, it will be overwritten by the API-calculated ID.-apkAsciiArmoredPgpPublicKey :: Lens' AttestorPublicKey (Maybe Text)-apkAsciiArmoredPgpPublicKey-  = lens _apkAsciiArmoredPgpPublicKey-      (\ s a -> s{_apkAsciiArmoredPgpPublicKey = a})---- | The ID of this public key. Signatures verified by BinAuthz must include--- the ID of the public key that can be used to verify them, and that ID--- must match the contents of this field exactly. Additional restrictions--- on this field can be imposed based on which public key type is--- encapsulated. See the documentation on \`public_key\` cases below for--- details.-apkId :: Lens' AttestorPublicKey (Maybe Text)-apkId = lens _apkId (\ s a -> s{_apkId = a})---- | Optional. A descriptive comment. This field may be updated.-apkComment :: Lens' AttestorPublicKey (Maybe Text)-apkComment-  = lens _apkComment (\ s a -> s{_apkComment = a})--instance FromJSON AttestorPublicKey where-        parseJSON-          = withObject "AttestorPublicKey"-              (\ o ->-                 AttestorPublicKey' <$>-                   (o .:? "pkixPublicKey") <*>-                     (o .:? "asciiArmoredPgpPublicKey")-                     <*> (o .:? "id")-                     <*> (o .:? "comment"))--instance ToJSON AttestorPublicKey where-        toJSON AttestorPublicKey'{..}-          = object-              (catMaybes-                 [("pkixPublicKey" .=) <$> _apkPkixPublicKey,-                  ("asciiArmoredPgpPublicKey" .=) <$>-                    _apkAsciiArmoredPgpPublicKey,-                  ("id" .=) <$> _apkId,-                  ("comment" .=) <$> _apkComment])---- | 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])---- | A policy for container image binary authorization.------ /See:/ 'policy' smart constructor.-data Policy =-  Policy'-    { _pDefaultAdmissionRule       :: !(Maybe AdmissionRule)-    , _pAdmissionWhiteListPatterns :: !(Maybe [AdmissionWhiteListPattern])-    , _pClusterAdmissionRules      :: !(Maybe PolicyClusterAdmissionRules)-    , _pUpdateTime                 :: !(Maybe DateTime')-    , _pName                       :: !(Maybe Text)-    , _pGlobalPolicyEvaluationMode :: !(Maybe PolicyGlobalPolicyEvaluationMode)-    , _pDescription                :: !(Maybe Text)-    }-  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:------ * 'pDefaultAdmissionRule'------ * 'pAdmissionWhiteListPatterns'------ * 'pClusterAdmissionRules'------ * 'pUpdateTime'------ * 'pName'------ * 'pGlobalPolicyEvaluationMode'------ * 'pDescription'-policy-    :: Policy-policy =-  Policy'-    { _pDefaultAdmissionRule = Nothing-    , _pAdmissionWhiteListPatterns = Nothing-    , _pClusterAdmissionRules = Nothing-    , _pUpdateTime = Nothing-    , _pName = Nothing-    , _pGlobalPolicyEvaluationMode = Nothing-    , _pDescription = Nothing-    }----- | Required. Default admission rule for a cluster without a per-cluster,--- per- kubernetes-service-account, or per-istio-service-identity admission--- rule.-pDefaultAdmissionRule :: Lens' Policy (Maybe AdmissionRule)-pDefaultAdmissionRule-  = lens _pDefaultAdmissionRule-      (\ s a -> s{_pDefaultAdmissionRule = a})---- | Optional. Admission policy whitelisting. A matching admission request--- will always be permitted. This feature is typically used to exclude--- Google or third-party infrastructure images from Binary Authorization--- policies.-pAdmissionWhiteListPatterns :: Lens' Policy [AdmissionWhiteListPattern]-pAdmissionWhiteListPatterns-  = lens _pAdmissionWhiteListPatterns-      (\ s a -> s{_pAdmissionWhiteListPatterns = a})-      . _Default-      . _Coerce---- | Optional. Per-cluster admission rules. Cluster spec format:--- \`location.clusterId\`. There can be at most one admission rule per--- cluster spec. A \`location\` is either a compute zone (e.g.--- us-central1-a) or a region (e.g. us-central1). For \`clusterId\` syntax--- restrictions see--- https:\/\/cloud.google.com\/container-engine\/reference\/rest\/v1\/projects.zones.clusters.-pClusterAdmissionRules :: Lens' Policy (Maybe PolicyClusterAdmissionRules)-pClusterAdmissionRules-  = lens _pClusterAdmissionRules-      (\ s a -> s{_pClusterAdmissionRules = a})---- | Output only. Time when the policy was last updated.-pUpdateTime :: Lens' Policy (Maybe UTCTime)-pUpdateTime-  = lens _pUpdateTime (\ s a -> s{_pUpdateTime = a}) .-      mapping _DateTime---- | Output only. The resource name, in the format \`projects\/*\/policy\`.--- There is at most one policy per project.-pName :: Lens' Policy (Maybe Text)-pName = lens _pName (\ s a -> s{_pName = a})---- | Optional. Controls the evaluation of a Google-maintained global--- admission policy for common system-level images. Images not covered by--- the global policy will be subject to the project admission policy. This--- setting has no effect when specified inside a global admission policy.-pGlobalPolicyEvaluationMode :: Lens' Policy (Maybe PolicyGlobalPolicyEvaluationMode)-pGlobalPolicyEvaluationMode-  = lens _pGlobalPolicyEvaluationMode-      (\ s a -> s{_pGlobalPolicyEvaluationMode = a})---- | Optional. A descriptive comment.-pDescription :: Lens' Policy (Maybe Text)-pDescription-  = lens _pDescription (\ s a -> s{_pDescription = a})--instance FromJSON Policy where-        parseJSON-          = withObject "Policy"-              (\ o ->-                 Policy' <$>-                   (o .:? "defaultAdmissionRule") <*>-                     (o .:? "admissionWhitelistPatterns" .!= mempty)-                     <*> (o .:? "clusterAdmissionRules")-                     <*> (o .:? "updateTime")-                     <*> (o .:? "name")-                     <*> (o .:? "globalPolicyEvaluationMode")-                     <*> (o .:? "description"))--instance ToJSON Policy where-        toJSON Policy'{..}-          = object-              (catMaybes-                 [("defaultAdmissionRule" .=) <$>-                    _pDefaultAdmissionRule,-                  ("admissionWhitelistPatterns" .=) <$>-                    _pAdmissionWhiteListPatterns,-                  ("clusterAdmissionRules" .=) <$>-                    _pClusterAdmissionRules,-                  ("updateTime" .=) <$> _pUpdateTime,-                  ("name" .=) <$> _pName,-                  ("globalPolicyEvaluationMode" .=) <$>-                    _pGlobalPolicyEvaluationMode,-                  ("description" .=) <$> _pDescription])---- | Optional. Per-cluster admission rules. Cluster spec format:--- \`location.clusterId\`. There can be at most one admission rule per--- cluster spec. A \`location\` is either a compute zone (e.g.--- us-central1-a) or a region (e.g. us-central1). For \`clusterId\` syntax--- restrictions see--- https:\/\/cloud.google.com\/container-engine\/reference\/rest\/v1\/projects.zones.clusters.------ /See:/ 'policyClusterAdmissionRules' smart constructor.-newtype PolicyClusterAdmissionRules =-  PolicyClusterAdmissionRules'-    { _pcarAddtional :: HashMap Text AdmissionRule-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'PolicyClusterAdmissionRules' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pcarAddtional'-policyClusterAdmissionRules-    :: HashMap Text AdmissionRule -- ^ 'pcarAddtional'-    -> PolicyClusterAdmissionRules-policyClusterAdmissionRules pPcarAddtional_ =-  PolicyClusterAdmissionRules' {_pcarAddtional = _Coerce # pPcarAddtional_}---pcarAddtional :: Lens' PolicyClusterAdmissionRules (HashMap Text AdmissionRule)-pcarAddtional-  = lens _pcarAddtional-      (\ s a -> s{_pcarAddtional = a})-      . _Coerce--instance FromJSON PolicyClusterAdmissionRules where-        parseJSON-          = withObject "PolicyClusterAdmissionRules"-              (\ o ->-                 PolicyClusterAdmissionRules' <$> (parseJSONObject o))--instance ToJSON PolicyClusterAdmissionRules where-        toJSON = toJSON . _pcarAddtional---- | An attestor that attests to container image artifacts. An existing--- attestor cannot be modified except where indicated.------ /See:/ 'attestor' smart constructor.-data Attestor =-  Attestor'-    { _aUserOwnedDrydockNote :: !(Maybe UserOwnedDrydockNote)-    , _aUpdateTime           :: !(Maybe DateTime')-    , _aName                 :: !(Maybe Text)-    , _aDescription          :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Attestor' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aUserOwnedDrydockNote'------ * 'aUpdateTime'------ * 'aName'------ * 'aDescription'-attestor-    :: Attestor-attestor =-  Attestor'-    { _aUserOwnedDrydockNote = Nothing-    , _aUpdateTime = Nothing-    , _aName = Nothing-    , _aDescription = Nothing-    }----- | A Drydock ATTESTATION_AUTHORITY Note, created by the user.-aUserOwnedDrydockNote :: Lens' Attestor (Maybe UserOwnedDrydockNote)-aUserOwnedDrydockNote-  = lens _aUserOwnedDrydockNote-      (\ s a -> s{_aUserOwnedDrydockNote = a})---- | Output only. Time when the attestor was last updated.-aUpdateTime :: Lens' Attestor (Maybe UTCTime)-aUpdateTime-  = lens _aUpdateTime (\ s a -> s{_aUpdateTime = a}) .-      mapping _DateTime---- | Required. The resource name, in the format:--- \`projects\/*\/attestors\/*\`. This field may not be updated.-aName :: Lens' Attestor (Maybe Text)-aName = lens _aName (\ s a -> s{_aName = a})---- | Optional. A descriptive comment. This field may be updated. The field--- may be displayed in chooser dialogs.-aDescription :: Lens' Attestor (Maybe Text)-aDescription-  = lens _aDescription (\ s a -> s{_aDescription = a})--instance FromJSON Attestor where-        parseJSON-          = withObject "Attestor"-              (\ o ->-                 Attestor' <$>-                   (o .:? "userOwnedDrydockNote") <*>-                     (o .:? "updateTime")-                     <*> (o .:? "name")-                     <*> (o .:? "description"))--instance ToJSON Attestor where-        toJSON Attestor'{..}-          = object-              (catMaybes-                 [("userOwnedDrydockNote" .=) <$>-                    _aUserOwnedDrydockNote,-                  ("updateTime" .=) <$> _aUpdateTime,-                  ("name" .=) <$> _aName,-                  ("description" .=) <$> _aDescription])---- | 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}\`: The G Suite domain--- (primary) 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})---- | The condition that is associated with this binding. NOTE: An unsatisfied--- condition will not allow user access via current binding. Different--- bindings, including their conditions, are examined independently.-bCondition :: Lens' Binding (Maybe Expr)-bCondition-  = lens _bCondition (\ s a -> s{_bCondition = a})--instance FromJSON Binding where-        parseJSON-          = withObject "Binding"-              (\ o ->-                 Binding' <$>-                   (o .:? "members" .!= mempty) <*> (o .:? "role") <*>-                     (o .:? "condition"))--instance ToJSON Binding where-        toJSON Binding'{..}-          = object-              (catMaybes-                 [("members" .=) <$> _bMembers,-                  ("role" .=) <$> _bRole,-                  ("condition" .=) <$> _bCondition])
− gen/Network/Google/BinaryAuthorization/Types/Sum.hs
@@ -1,244 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric      #-}-{-# LANGUAGE LambdaCase         #-}-{-# LANGUAGE NoImplicitPrelude  #-}-{-# LANGUAGE OverloadedStrings  #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- |--- Module      : Network.Google.BinaryAuthorization.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.BinaryAuthorization.Types.Sum where--import           Network.Google.Prelude hiding (Bytes)---- | Required. The action when a pod creation is denied by the admission--- rule.-data AdmissionRuleEnforcementMode-    = EnforcementModeUnspecified-      -- ^ @ENFORCEMENT_MODE_UNSPECIFIED@-      -- Do not use.-    | EnforcedBlockAndAuditLog-      -- ^ @ENFORCED_BLOCK_AND_AUDIT_LOG@-      -- Enforce the admission rule by blocking the pod creation.-    | DryrunAuditLogOnly-      -- ^ @DRYRUN_AUDIT_LOG_ONLY@-      -- Dryrun mode: Audit logging only. This will allow the pod creation as if-      -- the admission request had specified break-glass.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable AdmissionRuleEnforcementMode--instance FromHttpApiData AdmissionRuleEnforcementMode where-    parseQueryParam = \case-        "ENFORCEMENT_MODE_UNSPECIFIED" -> Right EnforcementModeUnspecified-        "ENFORCED_BLOCK_AND_AUDIT_LOG" -> Right EnforcedBlockAndAuditLog-        "DRYRUN_AUDIT_LOG_ONLY" -> Right DryrunAuditLogOnly-        x -> Left ("Unable to parse AdmissionRuleEnforcementMode from: " <> x)--instance ToHttpApiData AdmissionRuleEnforcementMode where-    toQueryParam = \case-        EnforcementModeUnspecified -> "ENFORCEMENT_MODE_UNSPECIFIED"-        EnforcedBlockAndAuditLog -> "ENFORCED_BLOCK_AND_AUDIT_LOG"-        DryrunAuditLogOnly -> "DRYRUN_AUDIT_LOG_ONLY"--instance FromJSON AdmissionRuleEnforcementMode where-    parseJSON = parseJSONText "AdmissionRuleEnforcementMode"--instance ToJSON AdmissionRuleEnforcementMode where-    toJSON = toJSONText---- | Optional. Controls the evaluation of a Google-maintained global--- admission policy for common system-level images. Images not covered by--- the global policy will be subject to the project admission policy. This--- setting has no effect when specified inside a global admission policy.-data PolicyGlobalPolicyEvaluationMode-    = GlobalPolicyEvaluationModeUnspecified-      -- ^ @GLOBAL_POLICY_EVALUATION_MODE_UNSPECIFIED@-      -- Not specified: DISABLE is assumed.-    | Enable-      -- ^ @ENABLE@-      -- Enables global policy evaluation.-    | Disable-      -- ^ @DISABLE@-      -- Disables global policy evaluation.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable PolicyGlobalPolicyEvaluationMode--instance FromHttpApiData PolicyGlobalPolicyEvaluationMode where-    parseQueryParam = \case-        "GLOBAL_POLICY_EVALUATION_MODE_UNSPECIFIED" -> Right GlobalPolicyEvaluationModeUnspecified-        "ENABLE" -> Right Enable-        "DISABLE" -> Right Disable-        x -> Left ("Unable to parse PolicyGlobalPolicyEvaluationMode from: " <> x)--instance ToHttpApiData PolicyGlobalPolicyEvaluationMode where-    toQueryParam = \case-        GlobalPolicyEvaluationModeUnspecified -> "GLOBAL_POLICY_EVALUATION_MODE_UNSPECIFIED"-        Enable -> "ENABLE"-        Disable -> "DISABLE"--instance FromJSON PolicyGlobalPolicyEvaluationMode where-    parseJSON = parseJSONText "PolicyGlobalPolicyEvaluationMode"--instance ToJSON PolicyGlobalPolicyEvaluationMode where-    toJSON = toJSONText---- | The signature algorithm used to verify a message against a signature--- using this key. These signature algorithm must match the structure and--- any object identifiers encoded in \`public_key_pem\` (i.e. this--- algorithm must match that of the public key).-data PkixPublicKeySignatureAlgorithm-    = SignatureAlgorithmUnspecified-      -- ^ @SIGNATURE_ALGORITHM_UNSPECIFIED@-      -- Not specified.-    | RsaPss2048SHA256-      -- ^ @RSA_PSS_2048_SHA256@-      -- RSASSA-PSS 2048 bit key with a SHA256 digest.-    | RsaPss3072SHA256-      -- ^ @RSA_PSS_3072_SHA256@-      -- RSASSA-PSS 3072 bit key with a SHA256 digest.-    | RsaPss4096SHA256-      -- ^ @RSA_PSS_4096_SHA256@-      -- RSASSA-PSS 4096 bit key with a SHA256 digest.-    | RsaPss4096SHA512-      -- ^ @RSA_PSS_4096_SHA512@-      -- RSASSA-PSS 4096 bit key with a SHA512 digest.-    | RsaSignPKCS12048SHA256-      -- ^ @RSA_SIGN_PKCS1_2048_SHA256@-      -- RSASSA-PKCS1-v1_5 with a 2048 bit key and a SHA256 digest.-    | RsaSignPKCS13072SHA256-      -- ^ @RSA_SIGN_PKCS1_3072_SHA256@-      -- RSASSA-PKCS1-v1_5 with a 3072 bit key and a SHA256 digest.-    | RsaSignPKCS14096SHA256-      -- ^ @RSA_SIGN_PKCS1_4096_SHA256@-      -- RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA256 digest.-    | RsaSignPKCS14096SHA512-      -- ^ @RSA_SIGN_PKCS1_4096_SHA512@-      -- RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA512 digest.-    | EcdsaP256SHA256-      -- ^ @ECDSA_P256_SHA256@-      -- ECDSA on the NIST P-256 curve with a SHA256 digest.-    | EcdsaP384SHA384-      -- ^ @ECDSA_P384_SHA384@-      -- ECDSA on the NIST P-384 curve with a SHA384 digest.-    | EcdsaP521SHA512-      -- ^ @ECDSA_P521_SHA512@-      -- ECDSA on the NIST P-521 curve with a SHA512 digest.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable PkixPublicKeySignatureAlgorithm--instance FromHttpApiData PkixPublicKeySignatureAlgorithm where-    parseQueryParam = \case-        "SIGNATURE_ALGORITHM_UNSPECIFIED" -> Right SignatureAlgorithmUnspecified-        "RSA_PSS_2048_SHA256" -> Right RsaPss2048SHA256-        "RSA_PSS_3072_SHA256" -> Right RsaPss3072SHA256-        "RSA_PSS_4096_SHA256" -> Right RsaPss4096SHA256-        "RSA_PSS_4096_SHA512" -> Right RsaPss4096SHA512-        "RSA_SIGN_PKCS1_2048_SHA256" -> Right RsaSignPKCS12048SHA256-        "RSA_SIGN_PKCS1_3072_SHA256" -> Right RsaSignPKCS13072SHA256-        "RSA_SIGN_PKCS1_4096_SHA256" -> Right RsaSignPKCS14096SHA256-        "RSA_SIGN_PKCS1_4096_SHA512" -> Right RsaSignPKCS14096SHA512-        "ECDSA_P256_SHA256" -> Right EcdsaP256SHA256-        "ECDSA_P384_SHA384" -> Right EcdsaP384SHA384-        "ECDSA_P521_SHA512" -> Right EcdsaP521SHA512-        x -> Left ("Unable to parse PkixPublicKeySignatureAlgorithm from: " <> x)--instance ToHttpApiData PkixPublicKeySignatureAlgorithm where-    toQueryParam = \case-        SignatureAlgorithmUnspecified -> "SIGNATURE_ALGORITHM_UNSPECIFIED"-        RsaPss2048SHA256 -> "RSA_PSS_2048_SHA256"-        RsaPss3072SHA256 -> "RSA_PSS_3072_SHA256"-        RsaPss4096SHA256 -> "RSA_PSS_4096_SHA256"-        RsaPss4096SHA512 -> "RSA_PSS_4096_SHA512"-        RsaSignPKCS12048SHA256 -> "RSA_SIGN_PKCS1_2048_SHA256"-        RsaSignPKCS13072SHA256 -> "RSA_SIGN_PKCS1_3072_SHA256"-        RsaSignPKCS14096SHA256 -> "RSA_SIGN_PKCS1_4096_SHA256"-        RsaSignPKCS14096SHA512 -> "RSA_SIGN_PKCS1_4096_SHA512"-        EcdsaP256SHA256 -> "ECDSA_P256_SHA256"-        EcdsaP384SHA384 -> "ECDSA_P384_SHA384"-        EcdsaP521SHA512 -> "ECDSA_P521_SHA512"--instance FromJSON PkixPublicKeySignatureAlgorithm where-    parseJSON = parseJSONText "PkixPublicKeySignatureAlgorithm"--instance ToJSON PkixPublicKeySignatureAlgorithm where-    toJSON = toJSONText---- | Required. How this admission rule will be evaluated.-data AdmissionRuleEvaluationMode-    = EvaluationModeUnspecified-      -- ^ @EVALUATION_MODE_UNSPECIFIED@-      -- Do not use.-    | AlwaysAllow-      -- ^ @ALWAYS_ALLOW@-      -- This rule allows all all pod creations.-    | RequireAttestation-      -- ^ @REQUIRE_ATTESTATION@-      -- This rule allows a pod creation if all the attestors listed in-      -- \'require_attestations_by\' have valid attestations for all of the-      -- images in the pod spec.-    | AlwaysDeny-      -- ^ @ALWAYS_DENY@-      -- This rule denies all pod creations.-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable AdmissionRuleEvaluationMode--instance FromHttpApiData AdmissionRuleEvaluationMode where-    parseQueryParam = \case-        "EVALUATION_MODE_UNSPECIFIED" -> Right EvaluationModeUnspecified-        "ALWAYS_ALLOW" -> Right AlwaysAllow-        "REQUIRE_ATTESTATION" -> Right RequireAttestation-        "ALWAYS_DENY" -> Right AlwaysDeny-        x -> Left ("Unable to parse AdmissionRuleEvaluationMode from: " <> x)--instance ToHttpApiData AdmissionRuleEvaluationMode where-    toQueryParam = \case-        EvaluationModeUnspecified -> "EVALUATION_MODE_UNSPECIFIED"-        AlwaysAllow -> "ALWAYS_ALLOW"-        RequireAttestation -> "REQUIRE_ATTESTATION"-        AlwaysDeny -> "ALWAYS_DENY"--instance FromJSON AdmissionRuleEvaluationMode where-    parseJSON = parseJSONText "AdmissionRuleEvaluationMode"--instance ToJSON AdmissionRuleEvaluationMode where-    toJSON = toJSONText---- | V1 error format.-data Xgafv-    = X1-      -- ^ @1@-      -- v1 error format-    | X2-      -- ^ @2@-      -- v2 error format-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable Xgafv--instance FromHttpApiData Xgafv where-    parseQueryParam = \case-        "1" -> Right X1-        "2" -> Right X2-        x -> Left ("Unable to parse Xgafv from: " <> x)--instance ToHttpApiData Xgafv where-    toQueryParam = \case-        X1 -> "1"-        X2 -> "2"--instance FromJSON Xgafv where-    parseJSON = parseJSONText "Xgafv"--instance ToJSON Xgafv where-    toJSON = toJSONText
− gen/Network/Google/Resource/BinaryAuthorization/Projects/Attestors/Create.hs
@@ -1,180 +0,0 @@-{-# 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.BinaryAuthorization.Projects.Attestors.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 an attestor, and returns a copy of the new attestor. Returns--- NOT_FOUND if the project does not exist, INVALID_ARGUMENT if the request--- is malformed, ALREADY_EXISTS if the attestor already exists.------ /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.attestors.create@.-module Network.Google.Resource.BinaryAuthorization.Projects.Attestors.Create-    (-    -- * REST Resource-      ProjectsAttestorsCreateResource--    -- * Creating a Request-    , projectsAttestorsCreate-    , ProjectsAttestorsCreate--    -- * Request Lenses-    , pacParent-    , pacXgafv-    , pacUploadProtocol-    , pacAccessToken-    , pacUploadType-    , pacPayload-    , pacAttestorId-    , pacCallback-    ) where--import           Network.Google.BinaryAuthorization.Types-import           Network.Google.Prelude---- | A resource alias for @binaryauthorization.projects.attestors.create@ method which the--- 'ProjectsAttestorsCreate' request conforms to.-type ProjectsAttestorsCreateResource =-     "v1beta1" :>-       Capture "parent" Text :>-         "attestors" :>-           QueryParam "$.xgafv" Xgafv :>-             QueryParam "upload_protocol" Text :>-               QueryParam "access_token" Text :>-                 QueryParam "uploadType" Text :>-                   QueryParam "attestorId" Text :>-                     QueryParam "callback" Text :>-                       QueryParam "alt" AltJSON :>-                         ReqBody '[JSON] Attestor :> Post '[JSON] Attestor---- | Creates an attestor, and returns a copy of the new attestor. Returns--- NOT_FOUND if the project does not exist, INVALID_ARGUMENT if the request--- is malformed, ALREADY_EXISTS if the attestor already exists.------ /See:/ 'projectsAttestorsCreate' smart constructor.-data ProjectsAttestorsCreate =-  ProjectsAttestorsCreate'-    { _pacParent         :: !Text-    , _pacXgafv          :: !(Maybe Xgafv)-    , _pacUploadProtocol :: !(Maybe Text)-    , _pacAccessToken    :: !(Maybe Text)-    , _pacUploadType     :: !(Maybe Text)-    , _pacPayload        :: !Attestor-    , _pacAttestorId     :: !(Maybe Text)-    , _pacCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ProjectsAttestorsCreate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pacParent'------ * 'pacXgafv'------ * 'pacUploadProtocol'------ * 'pacAccessToken'------ * 'pacUploadType'------ * 'pacPayload'------ * 'pacAttestorId'------ * 'pacCallback'-projectsAttestorsCreate-    :: Text -- ^ 'pacParent'-    -> Attestor -- ^ 'pacPayload'-    -> ProjectsAttestorsCreate-projectsAttestorsCreate pPacParent_ pPacPayload_ =-  ProjectsAttestorsCreate'-    { _pacParent = pPacParent_-    , _pacXgafv = Nothing-    , _pacUploadProtocol = Nothing-    , _pacAccessToken = Nothing-    , _pacUploadType = Nothing-    , _pacPayload = pPacPayload_-    , _pacAttestorId = Nothing-    , _pacCallback = Nothing-    }----- | Required. The parent of this attestor.-pacParent :: Lens' ProjectsAttestorsCreate Text-pacParent-  = lens _pacParent (\ s a -> s{_pacParent = a})---- | V1 error format.-pacXgafv :: Lens' ProjectsAttestorsCreate (Maybe Xgafv)-pacXgafv = lens _pacXgafv (\ s a -> s{_pacXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-pacUploadProtocol :: Lens' ProjectsAttestorsCreate (Maybe Text)-pacUploadProtocol-  = lens _pacUploadProtocol-      (\ s a -> s{_pacUploadProtocol = a})---- | OAuth access token.-pacAccessToken :: Lens' ProjectsAttestorsCreate (Maybe Text)-pacAccessToken-  = lens _pacAccessToken-      (\ s a -> s{_pacAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-pacUploadType :: Lens' ProjectsAttestorsCreate (Maybe Text)-pacUploadType-  = lens _pacUploadType-      (\ s a -> s{_pacUploadType = a})---- | Multipart request metadata.-pacPayload :: Lens' ProjectsAttestorsCreate Attestor-pacPayload-  = lens _pacPayload (\ s a -> s{_pacPayload = a})---- | Required. The attestors ID.-pacAttestorId :: Lens' ProjectsAttestorsCreate (Maybe Text)-pacAttestorId-  = lens _pacAttestorId-      (\ s a -> s{_pacAttestorId = a})---- | JSONP-pacCallback :: Lens' ProjectsAttestorsCreate (Maybe Text)-pacCallback-  = lens _pacCallback (\ s a -> s{_pacCallback = a})--instance GoogleRequest ProjectsAttestorsCreate where-        type Rs ProjectsAttestorsCreate = Attestor-        type Scopes ProjectsAttestorsCreate =-             '["https://www.googleapis.com/auth/cloud-platform"]-        requestClient ProjectsAttestorsCreate'{..}-          = go _pacParent _pacXgafv _pacUploadProtocol-              _pacAccessToken-              _pacUploadType-              _pacAttestorId-              _pacCallback-              (Just AltJSON)-              _pacPayload-              binaryAuthorizationService-          where go-                  = buildClient-                      (Proxy :: Proxy ProjectsAttestorsCreateResource)-                      mempty
− gen/Network/Google/Resource/BinaryAuthorization/Projects/Attestors/Delete.hs
@@ -1,149 +0,0 @@-{-# 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.BinaryAuthorization.Projects.Attestors.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 an attestor. Returns NOT_FOUND if the attestor does not exist.------ /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.attestors.delete@.-module Network.Google.Resource.BinaryAuthorization.Projects.Attestors.Delete-    (-    -- * REST Resource-      ProjectsAttestorsDeleteResource--    -- * Creating a Request-    , projectsAttestorsDelete-    , ProjectsAttestorsDelete--    -- * Request Lenses-    , padXgafv-    , padUploadProtocol-    , padAccessToken-    , padUploadType-    , padName-    , padCallback-    ) where--import           Network.Google.BinaryAuthorization.Types-import           Network.Google.Prelude---- | A resource alias for @binaryauthorization.projects.attestors.delete@ method which the--- 'ProjectsAttestorsDelete' request conforms to.-type ProjectsAttestorsDeleteResource =-     "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 an attestor. Returns NOT_FOUND if the attestor does not exist.------ /See:/ 'projectsAttestorsDelete' smart constructor.-data ProjectsAttestorsDelete =-  ProjectsAttestorsDelete'-    { _padXgafv          :: !(Maybe Xgafv)-    , _padUploadProtocol :: !(Maybe Text)-    , _padAccessToken    :: !(Maybe Text)-    , _padUploadType     :: !(Maybe Text)-    , _padName           :: !Text-    , _padCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ProjectsAttestorsDelete' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'padXgafv'------ * 'padUploadProtocol'------ * 'padAccessToken'------ * 'padUploadType'------ * 'padName'------ * 'padCallback'-projectsAttestorsDelete-    :: Text -- ^ 'padName'-    -> ProjectsAttestorsDelete-projectsAttestorsDelete pPadName_ =-  ProjectsAttestorsDelete'-    { _padXgafv = Nothing-    , _padUploadProtocol = Nothing-    , _padAccessToken = Nothing-    , _padUploadType = Nothing-    , _padName = pPadName_-    , _padCallback = Nothing-    }----- | V1 error format.-padXgafv :: Lens' ProjectsAttestorsDelete (Maybe Xgafv)-padXgafv = lens _padXgafv (\ s a -> s{_padXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-padUploadProtocol :: Lens' ProjectsAttestorsDelete (Maybe Text)-padUploadProtocol-  = lens _padUploadProtocol-      (\ s a -> s{_padUploadProtocol = a})---- | OAuth access token.-padAccessToken :: Lens' ProjectsAttestorsDelete (Maybe Text)-padAccessToken-  = lens _padAccessToken-      (\ s a -> s{_padAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-padUploadType :: Lens' ProjectsAttestorsDelete (Maybe Text)-padUploadType-  = lens _padUploadType-      (\ s a -> s{_padUploadType = a})---- | Required. The name of the attestors to delete, in the format--- \`projects\/*\/attestors\/*\`.-padName :: Lens' ProjectsAttestorsDelete Text-padName = lens _padName (\ s a -> s{_padName = a})---- | JSONP-padCallback :: Lens' ProjectsAttestorsDelete (Maybe Text)-padCallback-  = lens _padCallback (\ s a -> s{_padCallback = a})--instance GoogleRequest ProjectsAttestorsDelete where-        type Rs ProjectsAttestorsDelete = Empty-        type Scopes ProjectsAttestorsDelete =-             '["https://www.googleapis.com/auth/cloud-platform"]-        requestClient ProjectsAttestorsDelete'{..}-          = go _padName _padXgafv _padUploadProtocol-              _padAccessToken-              _padUploadType-              _padCallback-              (Just AltJSON)-              binaryAuthorizationService-          where go-                  = buildClient-                      (Proxy :: Proxy ProjectsAttestorsDeleteResource)-                      mempty
− gen/Network/Google/Resource/BinaryAuthorization/Projects/Attestors/Get.hs
@@ -1,149 +0,0 @@-{-# 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.BinaryAuthorization.Projects.Attestors.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 an attestor. Returns NOT_FOUND if the attestor does not exist.------ /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.attestors.get@.-module Network.Google.Resource.BinaryAuthorization.Projects.Attestors.Get-    (-    -- * REST Resource-      ProjectsAttestorsGetResource--    -- * Creating a Request-    , projectsAttestorsGet-    , ProjectsAttestorsGet--    -- * Request Lenses-    , pagXgafv-    , pagUploadProtocol-    , pagAccessToken-    , pagUploadType-    , pagName-    , pagCallback-    ) where--import           Network.Google.BinaryAuthorization.Types-import           Network.Google.Prelude---- | A resource alias for @binaryauthorization.projects.attestors.get@ method which the--- 'ProjectsAttestorsGet' request conforms to.-type ProjectsAttestorsGetResource =-     "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] Attestor---- | Gets an attestor. Returns NOT_FOUND if the attestor does not exist.------ /See:/ 'projectsAttestorsGet' smart constructor.-data ProjectsAttestorsGet =-  ProjectsAttestorsGet'-    { _pagXgafv          :: !(Maybe Xgafv)-    , _pagUploadProtocol :: !(Maybe Text)-    , _pagAccessToken    :: !(Maybe Text)-    , _pagUploadType     :: !(Maybe Text)-    , _pagName           :: !Text-    , _pagCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ProjectsAttestorsGet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pagXgafv'------ * 'pagUploadProtocol'------ * 'pagAccessToken'------ * 'pagUploadType'------ * 'pagName'------ * 'pagCallback'-projectsAttestorsGet-    :: Text -- ^ 'pagName'-    -> ProjectsAttestorsGet-projectsAttestorsGet pPagName_ =-  ProjectsAttestorsGet'-    { _pagXgafv = Nothing-    , _pagUploadProtocol = Nothing-    , _pagAccessToken = Nothing-    , _pagUploadType = Nothing-    , _pagName = pPagName_-    , _pagCallback = Nothing-    }----- | V1 error format.-pagXgafv :: Lens' ProjectsAttestorsGet (Maybe Xgafv)-pagXgafv = lens _pagXgafv (\ s a -> s{_pagXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-pagUploadProtocol :: Lens' ProjectsAttestorsGet (Maybe Text)-pagUploadProtocol-  = lens _pagUploadProtocol-      (\ s a -> s{_pagUploadProtocol = a})---- | OAuth access token.-pagAccessToken :: Lens' ProjectsAttestorsGet (Maybe Text)-pagAccessToken-  = lens _pagAccessToken-      (\ s a -> s{_pagAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-pagUploadType :: Lens' ProjectsAttestorsGet (Maybe Text)-pagUploadType-  = lens _pagUploadType-      (\ s a -> s{_pagUploadType = a})---- | Required. The name of the attestor to retrieve, in the format--- \`projects\/*\/attestors\/*\`.-pagName :: Lens' ProjectsAttestorsGet Text-pagName = lens _pagName (\ s a -> s{_pagName = a})---- | JSONP-pagCallback :: Lens' ProjectsAttestorsGet (Maybe Text)-pagCallback-  = lens _pagCallback (\ s a -> s{_pagCallback = a})--instance GoogleRequest ProjectsAttestorsGet where-        type Rs ProjectsAttestorsGet = Attestor-        type Scopes ProjectsAttestorsGet =-             '["https://www.googleapis.com/auth/cloud-platform"]-        requestClient ProjectsAttestorsGet'{..}-          = go _pagName _pagXgafv _pagUploadProtocol-              _pagAccessToken-              _pagUploadType-              _pagCallback-              (Just AltJSON)-              binaryAuthorizationService-          where go-                  = buildClient-                      (Proxy :: Proxy ProjectsAttestorsGetResource)-                      mempty
− gen/Network/Google/Resource/BinaryAuthorization/Projects/Attestors/GetIAMPolicy.hs
@@ -1,157 +0,0 @@-{-# 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.BinaryAuthorization.Projects.Attestors.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 resource. Returns an empty policy--- if the resource exists and does not have a policy set.------ /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.attestors.getIamPolicy@.-module Network.Google.Resource.BinaryAuthorization.Projects.Attestors.GetIAMPolicy-    (-    -- * REST Resource-      ProjectsAttestorsGetIAMPolicyResource--    -- * Creating a Request-    , projectsAttestorsGetIAMPolicy-    , ProjectsAttestorsGetIAMPolicy--    -- * Request Lenses-    , pagipXgafv-    , pagipUploadProtocol-    , pagipAccessToken-    , pagipUploadType-    , pagipResource-    , pagipCallback-    ) where--import           Network.Google.BinaryAuthorization.Types-import           Network.Google.Prelude---- | A resource alias for @binaryauthorization.projects.attestors.getIamPolicy@ method which the--- 'ProjectsAttestorsGetIAMPolicy' request conforms to.-type ProjectsAttestorsGetIAMPolicyResource =-     "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 :> Get '[JSON] IAMPolicy---- | Gets the access control policy for a resource. Returns an empty policy--- if the resource exists and does not have a policy set.------ /See:/ 'projectsAttestorsGetIAMPolicy' smart constructor.-data ProjectsAttestorsGetIAMPolicy =-  ProjectsAttestorsGetIAMPolicy'-    { _pagipXgafv          :: !(Maybe Xgafv)-    , _pagipUploadProtocol :: !(Maybe Text)-    , _pagipAccessToken    :: !(Maybe Text)-    , _pagipUploadType     :: !(Maybe Text)-    , _pagipResource       :: !Text-    , _pagipCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ProjectsAttestorsGetIAMPolicy' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pagipXgafv'------ * 'pagipUploadProtocol'------ * 'pagipAccessToken'------ * 'pagipUploadType'------ * 'pagipResource'------ * 'pagipCallback'-projectsAttestorsGetIAMPolicy-    :: Text -- ^ 'pagipResource'-    -> ProjectsAttestorsGetIAMPolicy-projectsAttestorsGetIAMPolicy pPagipResource_ =-  ProjectsAttestorsGetIAMPolicy'-    { _pagipXgafv = Nothing-    , _pagipUploadProtocol = Nothing-    , _pagipAccessToken = Nothing-    , _pagipUploadType = Nothing-    , _pagipResource = pPagipResource_-    , _pagipCallback = Nothing-    }----- | V1 error format.-pagipXgafv :: Lens' ProjectsAttestorsGetIAMPolicy (Maybe Xgafv)-pagipXgafv-  = lens _pagipXgafv (\ s a -> s{_pagipXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-pagipUploadProtocol :: Lens' ProjectsAttestorsGetIAMPolicy (Maybe Text)-pagipUploadProtocol-  = lens _pagipUploadProtocol-      (\ s a -> s{_pagipUploadProtocol = a})---- | OAuth access token.-pagipAccessToken :: Lens' ProjectsAttestorsGetIAMPolicy (Maybe Text)-pagipAccessToken-  = lens _pagipAccessToken-      (\ s a -> s{_pagipAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-pagipUploadType :: Lens' ProjectsAttestorsGetIAMPolicy (Maybe Text)-pagipUploadType-  = lens _pagipUploadType-      (\ s a -> s{_pagipUploadType = a})---- | REQUIRED: The resource for which the policy is being requested. See the--- operation documentation for the appropriate value for this field.-pagipResource :: Lens' ProjectsAttestorsGetIAMPolicy Text-pagipResource-  = lens _pagipResource-      (\ s a -> s{_pagipResource = a})---- | JSONP-pagipCallback :: Lens' ProjectsAttestorsGetIAMPolicy (Maybe Text)-pagipCallback-  = lens _pagipCallback-      (\ s a -> s{_pagipCallback = a})--instance GoogleRequest ProjectsAttestorsGetIAMPolicy-         where-        type Rs ProjectsAttestorsGetIAMPolicy = IAMPolicy-        type Scopes ProjectsAttestorsGetIAMPolicy =-             '["https://www.googleapis.com/auth/cloud-platform"]-        requestClient ProjectsAttestorsGetIAMPolicy'{..}-          = go _pagipResource _pagipXgafv _pagipUploadProtocol-              _pagipAccessToken-              _pagipUploadType-              _pagipCallback-              (Just AltJSON)-              binaryAuthorizationService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy ProjectsAttestorsGetIAMPolicyResource)-                      mempty
− gen/Network/Google/Resource/BinaryAuthorization/Projects/Attestors/List.hs
@@ -1,180 +0,0 @@-{-# 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.BinaryAuthorization.Projects.Attestors.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 attestors. Returns INVALID_ARGUMENT if the project does not exist.------ /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.attestors.list@.-module Network.Google.Resource.BinaryAuthorization.Projects.Attestors.List-    (-    -- * REST Resource-      ProjectsAttestorsListResource--    -- * Creating a Request-    , projectsAttestorsList-    , ProjectsAttestorsList--    -- * Request Lenses-    , palParent-    , palXgafv-    , palUploadProtocol-    , palAccessToken-    , palUploadType-    , palPageToken-    , palPageSize-    , palCallback-    ) where--import           Network.Google.BinaryAuthorization.Types-import           Network.Google.Prelude---- | A resource alias for @binaryauthorization.projects.attestors.list@ method which the--- 'ProjectsAttestorsList' request conforms to.-type ProjectsAttestorsListResource =-     "v1beta1" :>-       Capture "parent" Text :>-         "attestors" :>-           QueryParam "$.xgafv" Xgafv :>-             QueryParam "upload_protocol" Text :>-               QueryParam "access_token" Text :>-                 QueryParam "uploadType" Text :>-                   QueryParam "pageToken" Text :>-                     QueryParam "pageSize" (Textual Int32) :>-                       QueryParam "callback" Text :>-                         QueryParam "alt" AltJSON :>-                           Get '[JSON] ListAttestorsResponse---- | Lists attestors. Returns INVALID_ARGUMENT if the project does not exist.------ /See:/ 'projectsAttestorsList' smart constructor.-data ProjectsAttestorsList =-  ProjectsAttestorsList'-    { _palParent         :: !Text-    , _palXgafv          :: !(Maybe Xgafv)-    , _palUploadProtocol :: !(Maybe Text)-    , _palAccessToken    :: !(Maybe Text)-    , _palUploadType     :: !(Maybe Text)-    , _palPageToken      :: !(Maybe Text)-    , _palPageSize       :: !(Maybe (Textual Int32))-    , _palCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ProjectsAttestorsList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'palParent'------ * 'palXgafv'------ * 'palUploadProtocol'------ * 'palAccessToken'------ * 'palUploadType'------ * 'palPageToken'------ * 'palPageSize'------ * 'palCallback'-projectsAttestorsList-    :: Text -- ^ 'palParent'-    -> ProjectsAttestorsList-projectsAttestorsList pPalParent_ =-  ProjectsAttestorsList'-    { _palParent = pPalParent_-    , _palXgafv = Nothing-    , _palUploadProtocol = Nothing-    , _palAccessToken = Nothing-    , _palUploadType = Nothing-    , _palPageToken = Nothing-    , _palPageSize = Nothing-    , _palCallback = Nothing-    }----- | Required. The resource name of the project associated with the--- attestors, in the format \`projects\/*\`.-palParent :: Lens' ProjectsAttestorsList Text-palParent-  = lens _palParent (\ s a -> s{_palParent = a})---- | V1 error format.-palXgafv :: Lens' ProjectsAttestorsList (Maybe Xgafv)-palXgafv = lens _palXgafv (\ s a -> s{_palXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-palUploadProtocol :: Lens' ProjectsAttestorsList (Maybe Text)-palUploadProtocol-  = lens _palUploadProtocol-      (\ s a -> s{_palUploadProtocol = a})---- | OAuth access token.-palAccessToken :: Lens' ProjectsAttestorsList (Maybe Text)-palAccessToken-  = lens _palAccessToken-      (\ s a -> s{_palAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-palUploadType :: Lens' ProjectsAttestorsList (Maybe Text)-palUploadType-  = lens _palUploadType-      (\ s a -> s{_palUploadType = a})---- | A token identifying a page of results the server should return.--- Typically, this is the value of ListAttestorsResponse.next_page_token--- returned from the previous call to the \`ListAttestors\` method.-palPageToken :: Lens' ProjectsAttestorsList (Maybe Text)-palPageToken-  = lens _palPageToken (\ s a -> s{_palPageToken = a})---- | Requested page size. The server may return fewer results than requested.--- If unspecified, the server will pick an appropriate default.-palPageSize :: Lens' ProjectsAttestorsList (Maybe Int32)-palPageSize-  = lens _palPageSize (\ s a -> s{_palPageSize = a}) .-      mapping _Coerce---- | JSONP-palCallback :: Lens' ProjectsAttestorsList (Maybe Text)-palCallback-  = lens _palCallback (\ s a -> s{_palCallback = a})--instance GoogleRequest ProjectsAttestorsList where-        type Rs ProjectsAttestorsList = ListAttestorsResponse-        type Scopes ProjectsAttestorsList =-             '["https://www.googleapis.com/auth/cloud-platform"]-        requestClient ProjectsAttestorsList'{..}-          = go _palParent _palXgafv _palUploadProtocol-              _palAccessToken-              _palUploadType-              _palPageToken-              _palPageSize-              _palCallback-              (Just AltJSON)-              binaryAuthorizationService-          where go-                  = buildClient-                      (Proxy :: Proxy ProjectsAttestorsListResource)-                      mempty
− gen/Network/Google/Resource/BinaryAuthorization/Projects/Attestors/SetIAMPolicy.hs
@@ -1,171 +0,0 @@-{-# 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.BinaryAuthorization.Projects.Attestors.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 resource. Replaces any--- existing policy.------ /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.attestors.setIamPolicy@.-module Network.Google.Resource.BinaryAuthorization.Projects.Attestors.SetIAMPolicy-    (-    -- * REST Resource-      ProjectsAttestorsSetIAMPolicyResource--    -- * Creating a Request-    , projectsAttestorsSetIAMPolicy-    , ProjectsAttestorsSetIAMPolicy--    -- * Request Lenses-    , pasipXgafv-    , pasipUploadProtocol-    , pasipAccessToken-    , pasipUploadType-    , pasipPayload-    , pasipResource-    , pasipCallback-    ) where--import           Network.Google.BinaryAuthorization.Types-import           Network.Google.Prelude---- | A resource alias for @binaryauthorization.projects.attestors.setIamPolicy@ method which the--- 'ProjectsAttestorsSetIAMPolicy' request conforms to.-type ProjectsAttestorsSetIAMPolicyResource =-     "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] IAMPolicy---- | Sets the access control policy on the specified resource. Replaces any--- existing policy.------ /See:/ 'projectsAttestorsSetIAMPolicy' smart constructor.-data ProjectsAttestorsSetIAMPolicy =-  ProjectsAttestorsSetIAMPolicy'-    { _pasipXgafv          :: !(Maybe Xgafv)-    , _pasipUploadProtocol :: !(Maybe Text)-    , _pasipAccessToken    :: !(Maybe Text)-    , _pasipUploadType     :: !(Maybe Text)-    , _pasipPayload        :: !SetIAMPolicyRequest-    , _pasipResource       :: !Text-    , _pasipCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ProjectsAttestorsSetIAMPolicy' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pasipXgafv'------ * 'pasipUploadProtocol'------ * 'pasipAccessToken'------ * 'pasipUploadType'------ * 'pasipPayload'------ * 'pasipResource'------ * 'pasipCallback'-projectsAttestorsSetIAMPolicy-    :: SetIAMPolicyRequest -- ^ 'pasipPayload'-    -> Text -- ^ 'pasipResource'-    -> ProjectsAttestorsSetIAMPolicy-projectsAttestorsSetIAMPolicy pPasipPayload_ pPasipResource_ =-  ProjectsAttestorsSetIAMPolicy'-    { _pasipXgafv = Nothing-    , _pasipUploadProtocol = Nothing-    , _pasipAccessToken = Nothing-    , _pasipUploadType = Nothing-    , _pasipPayload = pPasipPayload_-    , _pasipResource = pPasipResource_-    , _pasipCallback = Nothing-    }----- | V1 error format.-pasipXgafv :: Lens' ProjectsAttestorsSetIAMPolicy (Maybe Xgafv)-pasipXgafv-  = lens _pasipXgafv (\ s a -> s{_pasipXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-pasipUploadProtocol :: Lens' ProjectsAttestorsSetIAMPolicy (Maybe Text)-pasipUploadProtocol-  = lens _pasipUploadProtocol-      (\ s a -> s{_pasipUploadProtocol = a})---- | OAuth access token.-pasipAccessToken :: Lens' ProjectsAttestorsSetIAMPolicy (Maybe Text)-pasipAccessToken-  = lens _pasipAccessToken-      (\ s a -> s{_pasipAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-pasipUploadType :: Lens' ProjectsAttestorsSetIAMPolicy (Maybe Text)-pasipUploadType-  = lens _pasipUploadType-      (\ s a -> s{_pasipUploadType = a})---- | Multipart request metadata.-pasipPayload :: Lens' ProjectsAttestorsSetIAMPolicy SetIAMPolicyRequest-pasipPayload-  = lens _pasipPayload (\ s a -> s{_pasipPayload = a})---- | REQUIRED: The resource for which the policy is being specified. See the--- operation documentation for the appropriate value for this field.-pasipResource :: Lens' ProjectsAttestorsSetIAMPolicy Text-pasipResource-  = lens _pasipResource-      (\ s a -> s{_pasipResource = a})---- | JSONP-pasipCallback :: Lens' ProjectsAttestorsSetIAMPolicy (Maybe Text)-pasipCallback-  = lens _pasipCallback-      (\ s a -> s{_pasipCallback = a})--instance GoogleRequest ProjectsAttestorsSetIAMPolicy-         where-        type Rs ProjectsAttestorsSetIAMPolicy = IAMPolicy-        type Scopes ProjectsAttestorsSetIAMPolicy =-             '["https://www.googleapis.com/auth/cloud-platform"]-        requestClient ProjectsAttestorsSetIAMPolicy'{..}-          = go _pasipResource _pasipXgafv _pasipUploadProtocol-              _pasipAccessToken-              _pasipUploadType-              _pasipCallback-              (Just AltJSON)-              _pasipPayload-              binaryAuthorizationService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy ProjectsAttestorsSetIAMPolicyResource)-                      mempty
− gen/Network/Google/Resource/BinaryAuthorization/Projects/Attestors/TestIAMPermissions.hs
@@ -1,183 +0,0 @@-{-# 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.BinaryAuthorization.Projects.Attestors.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 permissions that a caller has on the specified resource. If the--- resource does not exist, this will return an empty set of permissions,--- not a NOT_FOUND error. Note: This operation is designed to be used for--- building permission-aware UIs and command-line tools, not for--- authorization checking. This operation may \"fail open\" without--- warning.------ /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.attestors.testIamPermissions@.-module Network.Google.Resource.BinaryAuthorization.Projects.Attestors.TestIAMPermissions-    (-    -- * REST Resource-      ProjectsAttestorsTestIAMPermissionsResource--    -- * Creating a Request-    , projectsAttestorsTestIAMPermissions-    , ProjectsAttestorsTestIAMPermissions--    -- * Request Lenses-    , patipXgafv-    , patipUploadProtocol-    , patipAccessToken-    , patipUploadType-    , patipPayload-    , patipResource-    , patipCallback-    ) where--import           Network.Google.BinaryAuthorization.Types-import           Network.Google.Prelude---- | A resource alias for @binaryauthorization.projects.attestors.testIamPermissions@ method which the--- 'ProjectsAttestorsTestIAMPermissions' request conforms to.-type ProjectsAttestorsTestIAMPermissionsResource =-     "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 permissions that a caller has on the specified resource. If the--- resource does not exist, this will return an empty set of permissions,--- not a NOT_FOUND error. Note: This operation is designed to be used for--- building permission-aware UIs and command-line tools, not for--- authorization checking. This operation may \"fail open\" without--- warning.------ /See:/ 'projectsAttestorsTestIAMPermissions' smart constructor.-data ProjectsAttestorsTestIAMPermissions =-  ProjectsAttestorsTestIAMPermissions'-    { _patipXgafv          :: !(Maybe Xgafv)-    , _patipUploadProtocol :: !(Maybe Text)-    , _patipAccessToken    :: !(Maybe Text)-    , _patipUploadType     :: !(Maybe Text)-    , _patipPayload        :: !TestIAMPermissionsRequest-    , _patipResource       :: !Text-    , _patipCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ProjectsAttestorsTestIAMPermissions' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'patipXgafv'------ * 'patipUploadProtocol'------ * 'patipAccessToken'------ * 'patipUploadType'------ * 'patipPayload'------ * 'patipResource'------ * 'patipCallback'-projectsAttestorsTestIAMPermissions-    :: TestIAMPermissionsRequest -- ^ 'patipPayload'-    -> Text -- ^ 'patipResource'-    -> ProjectsAttestorsTestIAMPermissions-projectsAttestorsTestIAMPermissions pPatipPayload_ pPatipResource_ =-  ProjectsAttestorsTestIAMPermissions'-    { _patipXgafv = Nothing-    , _patipUploadProtocol = Nothing-    , _patipAccessToken = Nothing-    , _patipUploadType = Nothing-    , _patipPayload = pPatipPayload_-    , _patipResource = pPatipResource_-    , _patipCallback = Nothing-    }----- | V1 error format.-patipXgafv :: Lens' ProjectsAttestorsTestIAMPermissions (Maybe Xgafv)-patipXgafv-  = lens _patipXgafv (\ s a -> s{_patipXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-patipUploadProtocol :: Lens' ProjectsAttestorsTestIAMPermissions (Maybe Text)-patipUploadProtocol-  = lens _patipUploadProtocol-      (\ s a -> s{_patipUploadProtocol = a})---- | OAuth access token.-patipAccessToken :: Lens' ProjectsAttestorsTestIAMPermissions (Maybe Text)-patipAccessToken-  = lens _patipAccessToken-      (\ s a -> s{_patipAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-patipUploadType :: Lens' ProjectsAttestorsTestIAMPermissions (Maybe Text)-patipUploadType-  = lens _patipUploadType-      (\ s a -> s{_patipUploadType = a})---- | Multipart request metadata.-patipPayload :: Lens' ProjectsAttestorsTestIAMPermissions TestIAMPermissionsRequest-patipPayload-  = lens _patipPayload (\ s a -> s{_patipPayload = a})---- | REQUIRED: The resource for which the policy detail is being requested.--- See the operation documentation for the appropriate value for this--- field.-patipResource :: Lens' ProjectsAttestorsTestIAMPermissions Text-patipResource-  = lens _patipResource-      (\ s a -> s{_patipResource = a})---- | JSONP-patipCallback :: Lens' ProjectsAttestorsTestIAMPermissions (Maybe Text)-patipCallback-  = lens _patipCallback-      (\ s a -> s{_patipCallback = a})--instance GoogleRequest-           ProjectsAttestorsTestIAMPermissions-         where-        type Rs ProjectsAttestorsTestIAMPermissions =-             TestIAMPermissionsResponse-        type Scopes ProjectsAttestorsTestIAMPermissions =-             '["https://www.googleapis.com/auth/cloud-platform"]-        requestClient-          ProjectsAttestorsTestIAMPermissions'{..}-          = go _patipResource _patipXgafv _patipUploadProtocol-              _patipAccessToken-              _patipUploadType-              _patipCallback-              (Just AltJSON)-              _patipPayload-              binaryAuthorizationService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy ProjectsAttestorsTestIAMPermissionsResource)-                      mempty
− gen/Network/Google/Resource/BinaryAuthorization/Projects/Attestors/Update.hs
@@ -1,162 +0,0 @@-{-# 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.BinaryAuthorization.Projects.Attestors.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 an attestor. Returns NOT_FOUND if the attestor does not exist.------ /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.attestors.update@.-module Network.Google.Resource.BinaryAuthorization.Projects.Attestors.Update-    (-    -- * REST Resource-      ProjectsAttestorsUpdateResource--    -- * Creating a Request-    , projectsAttestorsUpdate-    , ProjectsAttestorsUpdate--    -- * Request Lenses-    , pauXgafv-    , pauUploadProtocol-    , pauAccessToken-    , pauUploadType-    , pauPayload-    , pauName-    , pauCallback-    ) where--import           Network.Google.BinaryAuthorization.Types-import           Network.Google.Prelude---- | A resource alias for @binaryauthorization.projects.attestors.update@ method which the--- 'ProjectsAttestorsUpdate' request conforms to.-type ProjectsAttestorsUpdateResource =-     "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] Attestor :> Put '[JSON] Attestor---- | Updates an attestor. Returns NOT_FOUND if the attestor does not exist.------ /See:/ 'projectsAttestorsUpdate' smart constructor.-data ProjectsAttestorsUpdate =-  ProjectsAttestorsUpdate'-    { _pauXgafv          :: !(Maybe Xgafv)-    , _pauUploadProtocol :: !(Maybe Text)-    , _pauAccessToken    :: !(Maybe Text)-    , _pauUploadType     :: !(Maybe Text)-    , _pauPayload        :: !Attestor-    , _pauName           :: !Text-    , _pauCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ProjectsAttestorsUpdate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pauXgafv'------ * 'pauUploadProtocol'------ * 'pauAccessToken'------ * 'pauUploadType'------ * 'pauPayload'------ * 'pauName'------ * 'pauCallback'-projectsAttestorsUpdate-    :: Attestor -- ^ 'pauPayload'-    -> Text -- ^ 'pauName'-    -> ProjectsAttestorsUpdate-projectsAttestorsUpdate pPauPayload_ pPauName_ =-  ProjectsAttestorsUpdate'-    { _pauXgafv = Nothing-    , _pauUploadProtocol = Nothing-    , _pauAccessToken = Nothing-    , _pauUploadType = Nothing-    , _pauPayload = pPauPayload_-    , _pauName = pPauName_-    , _pauCallback = Nothing-    }----- | V1 error format.-pauXgafv :: Lens' ProjectsAttestorsUpdate (Maybe Xgafv)-pauXgafv = lens _pauXgafv (\ s a -> s{_pauXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-pauUploadProtocol :: Lens' ProjectsAttestorsUpdate (Maybe Text)-pauUploadProtocol-  = lens _pauUploadProtocol-      (\ s a -> s{_pauUploadProtocol = a})---- | OAuth access token.-pauAccessToken :: Lens' ProjectsAttestorsUpdate (Maybe Text)-pauAccessToken-  = lens _pauAccessToken-      (\ s a -> s{_pauAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-pauUploadType :: Lens' ProjectsAttestorsUpdate (Maybe Text)-pauUploadType-  = lens _pauUploadType-      (\ s a -> s{_pauUploadType = a})---- | Multipart request metadata.-pauPayload :: Lens' ProjectsAttestorsUpdate Attestor-pauPayload-  = lens _pauPayload (\ s a -> s{_pauPayload = a})---- | Required. The resource name, in the format:--- \`projects\/*\/attestors\/*\`. This field may not be updated.-pauName :: Lens' ProjectsAttestorsUpdate Text-pauName = lens _pauName (\ s a -> s{_pauName = a})---- | JSONP-pauCallback :: Lens' ProjectsAttestorsUpdate (Maybe Text)-pauCallback-  = lens _pauCallback (\ s a -> s{_pauCallback = a})--instance GoogleRequest ProjectsAttestorsUpdate where-        type Rs ProjectsAttestorsUpdate = Attestor-        type Scopes ProjectsAttestorsUpdate =-             '["https://www.googleapis.com/auth/cloud-platform"]-        requestClient ProjectsAttestorsUpdate'{..}-          = go _pauName _pauXgafv _pauUploadProtocol-              _pauAccessToken-              _pauUploadType-              _pauCallback-              (Just AltJSON)-              _pauPayload-              binaryAuthorizationService-          where go-                  = buildClient-                      (Proxy :: Proxy ProjectsAttestorsUpdateResource)-                      mempty
− gen/Network/Google/Resource/BinaryAuthorization/Projects/GetPolicy.hs
@@ -1,151 +0,0 @@-{-# 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.BinaryAuthorization.Projects.GetPolicy--- 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 policy for this project. Returns a default policy if the--- project does not have one.------ /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.getPolicy@.-module Network.Google.Resource.BinaryAuthorization.Projects.GetPolicy-    (-    -- * REST Resource-      ProjectsGetPolicyResource--    -- * Creating a Request-    , projectsGetPolicy-    , ProjectsGetPolicy--    -- * Request Lenses-    , pgpXgafv-    , pgpUploadProtocol-    , pgpAccessToken-    , pgpUploadType-    , pgpName-    , pgpCallback-    ) where--import           Network.Google.BinaryAuthorization.Types-import           Network.Google.Prelude---- | A resource alias for @binaryauthorization.projects.getPolicy@ method which the--- 'ProjectsGetPolicy' request conforms to.-type ProjectsGetPolicyResource =-     "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] Policy---- | Gets the policy for this project. Returns a default policy if the--- project does not have one.------ /See:/ 'projectsGetPolicy' smart constructor.-data ProjectsGetPolicy =-  ProjectsGetPolicy'-    { _pgpXgafv          :: !(Maybe Xgafv)-    , _pgpUploadProtocol :: !(Maybe Text)-    , _pgpAccessToken    :: !(Maybe Text)-    , _pgpUploadType     :: !(Maybe Text)-    , _pgpName           :: !Text-    , _pgpCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ProjectsGetPolicy' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pgpXgafv'------ * 'pgpUploadProtocol'------ * 'pgpAccessToken'------ * 'pgpUploadType'------ * 'pgpName'------ * 'pgpCallback'-projectsGetPolicy-    :: Text -- ^ 'pgpName'-    -> ProjectsGetPolicy-projectsGetPolicy pPgpName_ =-  ProjectsGetPolicy'-    { _pgpXgafv = Nothing-    , _pgpUploadProtocol = Nothing-    , _pgpAccessToken = Nothing-    , _pgpUploadType = Nothing-    , _pgpName = pPgpName_-    , _pgpCallback = Nothing-    }----- | V1 error format.-pgpXgafv :: Lens' ProjectsGetPolicy (Maybe Xgafv)-pgpXgafv = lens _pgpXgafv (\ s a -> s{_pgpXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-pgpUploadProtocol :: Lens' ProjectsGetPolicy (Maybe Text)-pgpUploadProtocol-  = lens _pgpUploadProtocol-      (\ s a -> s{_pgpUploadProtocol = a})---- | OAuth access token.-pgpAccessToken :: Lens' ProjectsGetPolicy (Maybe Text)-pgpAccessToken-  = lens _pgpAccessToken-      (\ s a -> s{_pgpAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-pgpUploadType :: Lens' ProjectsGetPolicy (Maybe Text)-pgpUploadType-  = lens _pgpUploadType-      (\ s a -> s{_pgpUploadType = a})---- | Required. The resource name of the policy to retrieve, in the format--- \`projects\/*\/policy\`.-pgpName :: Lens' ProjectsGetPolicy Text-pgpName = lens _pgpName (\ s a -> s{_pgpName = a})---- | JSONP-pgpCallback :: Lens' ProjectsGetPolicy (Maybe Text)-pgpCallback-  = lens _pgpCallback (\ s a -> s{_pgpCallback = a})--instance GoogleRequest ProjectsGetPolicy where-        type Rs ProjectsGetPolicy = Policy-        type Scopes ProjectsGetPolicy =-             '["https://www.googleapis.com/auth/cloud-platform"]-        requestClient ProjectsGetPolicy'{..}-          = go _pgpName _pgpXgafv _pgpUploadProtocol-              _pgpAccessToken-              _pgpUploadType-              _pgpCallback-              (Just AltJSON)-              binaryAuthorizationService-          where go-                  = buildClient-                      (Proxy :: Proxy ProjectsGetPolicyResource)-                      mempty
− gen/Network/Google/Resource/BinaryAuthorization/Projects/Policy/GetIAMPolicy.hs
@@ -1,156 +0,0 @@-{-# 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.BinaryAuthorization.Projects.Policy.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 resource. Returns an empty policy--- if the resource exists and does not have a policy set.------ /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.policy.getIamPolicy@.-module Network.Google.Resource.BinaryAuthorization.Projects.Policy.GetIAMPolicy-    (-    -- * REST Resource-      ProjectsPolicyGetIAMPolicyResource--    -- * Creating a Request-    , projectsPolicyGetIAMPolicy-    , ProjectsPolicyGetIAMPolicy--    -- * Request Lenses-    , ppgipXgafv-    , ppgipUploadProtocol-    , ppgipAccessToken-    , ppgipUploadType-    , ppgipResource-    , ppgipCallback-    ) where--import           Network.Google.BinaryAuthorization.Types-import           Network.Google.Prelude---- | A resource alias for @binaryauthorization.projects.policy.getIamPolicy@ method which the--- 'ProjectsPolicyGetIAMPolicy' request conforms to.-type ProjectsPolicyGetIAMPolicyResource =-     "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 :> Get '[JSON] IAMPolicy---- | Gets the access control policy for a resource. Returns an empty policy--- if the resource exists and does not have a policy set.------ /See:/ 'projectsPolicyGetIAMPolicy' smart constructor.-data ProjectsPolicyGetIAMPolicy =-  ProjectsPolicyGetIAMPolicy'-    { _ppgipXgafv          :: !(Maybe Xgafv)-    , _ppgipUploadProtocol :: !(Maybe Text)-    , _ppgipAccessToken    :: !(Maybe Text)-    , _ppgipUploadType     :: !(Maybe Text)-    , _ppgipResource       :: !Text-    , _ppgipCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ProjectsPolicyGetIAMPolicy' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ppgipXgafv'------ * 'ppgipUploadProtocol'------ * 'ppgipAccessToken'------ * 'ppgipUploadType'------ * 'ppgipResource'------ * 'ppgipCallback'-projectsPolicyGetIAMPolicy-    :: Text -- ^ 'ppgipResource'-    -> ProjectsPolicyGetIAMPolicy-projectsPolicyGetIAMPolicy pPpgipResource_ =-  ProjectsPolicyGetIAMPolicy'-    { _ppgipXgafv = Nothing-    , _ppgipUploadProtocol = Nothing-    , _ppgipAccessToken = Nothing-    , _ppgipUploadType = Nothing-    , _ppgipResource = pPpgipResource_-    , _ppgipCallback = Nothing-    }----- | V1 error format.-ppgipXgafv :: Lens' ProjectsPolicyGetIAMPolicy (Maybe Xgafv)-ppgipXgafv-  = lens _ppgipXgafv (\ s a -> s{_ppgipXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ppgipUploadProtocol :: Lens' ProjectsPolicyGetIAMPolicy (Maybe Text)-ppgipUploadProtocol-  = lens _ppgipUploadProtocol-      (\ s a -> s{_ppgipUploadProtocol = a})---- | OAuth access token.-ppgipAccessToken :: Lens' ProjectsPolicyGetIAMPolicy (Maybe Text)-ppgipAccessToken-  = lens _ppgipAccessToken-      (\ s a -> s{_ppgipAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ppgipUploadType :: Lens' ProjectsPolicyGetIAMPolicy (Maybe Text)-ppgipUploadType-  = lens _ppgipUploadType-      (\ s a -> s{_ppgipUploadType = a})---- | REQUIRED: The resource for which the policy is being requested. See the--- operation documentation for the appropriate value for this field.-ppgipResource :: Lens' ProjectsPolicyGetIAMPolicy Text-ppgipResource-  = lens _ppgipResource-      (\ s a -> s{_ppgipResource = a})---- | JSONP-ppgipCallback :: Lens' ProjectsPolicyGetIAMPolicy (Maybe Text)-ppgipCallback-  = lens _ppgipCallback-      (\ s a -> s{_ppgipCallback = a})--instance GoogleRequest ProjectsPolicyGetIAMPolicy-         where-        type Rs ProjectsPolicyGetIAMPolicy = IAMPolicy-        type Scopes ProjectsPolicyGetIAMPolicy =-             '["https://www.googleapis.com/auth/cloud-platform"]-        requestClient ProjectsPolicyGetIAMPolicy'{..}-          = go _ppgipResource _ppgipXgafv _ppgipUploadProtocol-              _ppgipAccessToken-              _ppgipUploadType-              _ppgipCallback-              (Just AltJSON)-              binaryAuthorizationService-          where go-                  = buildClient-                      (Proxy :: Proxy ProjectsPolicyGetIAMPolicyResource)-                      mempty
− gen/Network/Google/Resource/BinaryAuthorization/Projects/Policy/SetIAMPolicy.hs
@@ -1,170 +0,0 @@-{-# 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.BinaryAuthorization.Projects.Policy.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 resource. Replaces any--- existing policy.------ /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.policy.setIamPolicy@.-module Network.Google.Resource.BinaryAuthorization.Projects.Policy.SetIAMPolicy-    (-    -- * REST Resource-      ProjectsPolicySetIAMPolicyResource--    -- * Creating a Request-    , projectsPolicySetIAMPolicy-    , ProjectsPolicySetIAMPolicy--    -- * Request Lenses-    , ppsipXgafv-    , ppsipUploadProtocol-    , ppsipAccessToken-    , ppsipUploadType-    , ppsipPayload-    , ppsipResource-    , ppsipCallback-    ) where--import           Network.Google.BinaryAuthorization.Types-import           Network.Google.Prelude---- | A resource alias for @binaryauthorization.projects.policy.setIamPolicy@ method which the--- 'ProjectsPolicySetIAMPolicy' request conforms to.-type ProjectsPolicySetIAMPolicyResource =-     "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] IAMPolicy---- | Sets the access control policy on the specified resource. Replaces any--- existing policy.------ /See:/ 'projectsPolicySetIAMPolicy' smart constructor.-data ProjectsPolicySetIAMPolicy =-  ProjectsPolicySetIAMPolicy'-    { _ppsipXgafv          :: !(Maybe Xgafv)-    , _ppsipUploadProtocol :: !(Maybe Text)-    , _ppsipAccessToken    :: !(Maybe Text)-    , _ppsipUploadType     :: !(Maybe Text)-    , _ppsipPayload        :: !SetIAMPolicyRequest-    , _ppsipResource       :: !Text-    , _ppsipCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ProjectsPolicySetIAMPolicy' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ppsipXgafv'------ * 'ppsipUploadProtocol'------ * 'ppsipAccessToken'------ * 'ppsipUploadType'------ * 'ppsipPayload'------ * 'ppsipResource'------ * 'ppsipCallback'-projectsPolicySetIAMPolicy-    :: SetIAMPolicyRequest -- ^ 'ppsipPayload'-    -> Text -- ^ 'ppsipResource'-    -> ProjectsPolicySetIAMPolicy-projectsPolicySetIAMPolicy pPpsipPayload_ pPpsipResource_ =-  ProjectsPolicySetIAMPolicy'-    { _ppsipXgafv = Nothing-    , _ppsipUploadProtocol = Nothing-    , _ppsipAccessToken = Nothing-    , _ppsipUploadType = Nothing-    , _ppsipPayload = pPpsipPayload_-    , _ppsipResource = pPpsipResource_-    , _ppsipCallback = Nothing-    }----- | V1 error format.-ppsipXgafv :: Lens' ProjectsPolicySetIAMPolicy (Maybe Xgafv)-ppsipXgafv-  = lens _ppsipXgafv (\ s a -> s{_ppsipXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-ppsipUploadProtocol :: Lens' ProjectsPolicySetIAMPolicy (Maybe Text)-ppsipUploadProtocol-  = lens _ppsipUploadProtocol-      (\ s a -> s{_ppsipUploadProtocol = a})---- | OAuth access token.-ppsipAccessToken :: Lens' ProjectsPolicySetIAMPolicy (Maybe Text)-ppsipAccessToken-  = lens _ppsipAccessToken-      (\ s a -> s{_ppsipAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-ppsipUploadType :: Lens' ProjectsPolicySetIAMPolicy (Maybe Text)-ppsipUploadType-  = lens _ppsipUploadType-      (\ s a -> s{_ppsipUploadType = a})---- | Multipart request metadata.-ppsipPayload :: Lens' ProjectsPolicySetIAMPolicy SetIAMPolicyRequest-ppsipPayload-  = lens _ppsipPayload (\ s a -> s{_ppsipPayload = a})---- | REQUIRED: The resource for which the policy is being specified. See the--- operation documentation for the appropriate value for this field.-ppsipResource :: Lens' ProjectsPolicySetIAMPolicy Text-ppsipResource-  = lens _ppsipResource-      (\ s a -> s{_ppsipResource = a})---- | JSONP-ppsipCallback :: Lens' ProjectsPolicySetIAMPolicy (Maybe Text)-ppsipCallback-  = lens _ppsipCallback-      (\ s a -> s{_ppsipCallback = a})--instance GoogleRequest ProjectsPolicySetIAMPolicy-         where-        type Rs ProjectsPolicySetIAMPolicy = IAMPolicy-        type Scopes ProjectsPolicySetIAMPolicy =-             '["https://www.googleapis.com/auth/cloud-platform"]-        requestClient ProjectsPolicySetIAMPolicy'{..}-          = go _ppsipResource _ppsipXgafv _ppsipUploadProtocol-              _ppsipAccessToken-              _ppsipUploadType-              _ppsipCallback-              (Just AltJSON)-              _ppsipPayload-              binaryAuthorizationService-          where go-                  = buildClient-                      (Proxy :: Proxy ProjectsPolicySetIAMPolicyResource)-                      mempty
− gen/Network/Google/Resource/BinaryAuthorization/Projects/Policy/TestIAMPermissions.hs
@@ -1,182 +0,0 @@-{-# 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.BinaryAuthorization.Projects.Policy.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 permissions that a caller has on the specified resource. If the--- resource does not exist, this will return an empty set of permissions,--- not a NOT_FOUND error. Note: This operation is designed to be used for--- building permission-aware UIs and command-line tools, not for--- authorization checking. This operation may \"fail open\" without--- warning.------ /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.policy.testIamPermissions@.-module Network.Google.Resource.BinaryAuthorization.Projects.Policy.TestIAMPermissions-    (-    -- * REST Resource-      ProjectsPolicyTestIAMPermissionsResource--    -- * Creating a Request-    , projectsPolicyTestIAMPermissions-    , ProjectsPolicyTestIAMPermissions--    -- * Request Lenses-    , pptipXgafv-    , pptipUploadProtocol-    , pptipAccessToken-    , pptipUploadType-    , pptipPayload-    , pptipResource-    , pptipCallback-    ) where--import           Network.Google.BinaryAuthorization.Types-import           Network.Google.Prelude---- | A resource alias for @binaryauthorization.projects.policy.testIamPermissions@ method which the--- 'ProjectsPolicyTestIAMPermissions' request conforms to.-type ProjectsPolicyTestIAMPermissionsResource =-     "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 permissions that a caller has on the specified resource. If the--- resource does not exist, this will return an empty set of permissions,--- not a NOT_FOUND error. Note: This operation is designed to be used for--- building permission-aware UIs and command-line tools, not for--- authorization checking. This operation may \"fail open\" without--- warning.------ /See:/ 'projectsPolicyTestIAMPermissions' smart constructor.-data ProjectsPolicyTestIAMPermissions =-  ProjectsPolicyTestIAMPermissions'-    { _pptipXgafv          :: !(Maybe Xgafv)-    , _pptipUploadProtocol :: !(Maybe Text)-    , _pptipAccessToken    :: !(Maybe Text)-    , _pptipUploadType     :: !(Maybe Text)-    , _pptipPayload        :: !TestIAMPermissionsRequest-    , _pptipResource       :: !Text-    , _pptipCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ProjectsPolicyTestIAMPermissions' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pptipXgafv'------ * 'pptipUploadProtocol'------ * 'pptipAccessToken'------ * 'pptipUploadType'------ * 'pptipPayload'------ * 'pptipResource'------ * 'pptipCallback'-projectsPolicyTestIAMPermissions-    :: TestIAMPermissionsRequest -- ^ 'pptipPayload'-    -> Text -- ^ 'pptipResource'-    -> ProjectsPolicyTestIAMPermissions-projectsPolicyTestIAMPermissions pPptipPayload_ pPptipResource_ =-  ProjectsPolicyTestIAMPermissions'-    { _pptipXgafv = Nothing-    , _pptipUploadProtocol = Nothing-    , _pptipAccessToken = Nothing-    , _pptipUploadType = Nothing-    , _pptipPayload = pPptipPayload_-    , _pptipResource = pPptipResource_-    , _pptipCallback = Nothing-    }----- | V1 error format.-pptipXgafv :: Lens' ProjectsPolicyTestIAMPermissions (Maybe Xgafv)-pptipXgafv-  = lens _pptipXgafv (\ s a -> s{_pptipXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-pptipUploadProtocol :: Lens' ProjectsPolicyTestIAMPermissions (Maybe Text)-pptipUploadProtocol-  = lens _pptipUploadProtocol-      (\ s a -> s{_pptipUploadProtocol = a})---- | OAuth access token.-pptipAccessToken :: Lens' ProjectsPolicyTestIAMPermissions (Maybe Text)-pptipAccessToken-  = lens _pptipAccessToken-      (\ s a -> s{_pptipAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-pptipUploadType :: Lens' ProjectsPolicyTestIAMPermissions (Maybe Text)-pptipUploadType-  = lens _pptipUploadType-      (\ s a -> s{_pptipUploadType = a})---- | Multipart request metadata.-pptipPayload :: Lens' ProjectsPolicyTestIAMPermissions TestIAMPermissionsRequest-pptipPayload-  = lens _pptipPayload (\ s a -> s{_pptipPayload = a})---- | REQUIRED: The resource for which the policy detail is being requested.--- See the operation documentation for the appropriate value for this--- field.-pptipResource :: Lens' ProjectsPolicyTestIAMPermissions Text-pptipResource-  = lens _pptipResource-      (\ s a -> s{_pptipResource = a})---- | JSONP-pptipCallback :: Lens' ProjectsPolicyTestIAMPermissions (Maybe Text)-pptipCallback-  = lens _pptipCallback-      (\ s a -> s{_pptipCallback = a})--instance GoogleRequest-           ProjectsPolicyTestIAMPermissions-         where-        type Rs ProjectsPolicyTestIAMPermissions =-             TestIAMPermissionsResponse-        type Scopes ProjectsPolicyTestIAMPermissions =-             '["https://www.googleapis.com/auth/cloud-platform"]-        requestClient ProjectsPolicyTestIAMPermissions'{..}-          = go _pptipResource _pptipXgafv _pptipUploadProtocol-              _pptipAccessToken-              _pptipUploadType-              _pptipCallback-              (Just AltJSON)-              _pptipPayload-              binaryAuthorizationService-          where go-                  = buildClient-                      (Proxy ::-                         Proxy ProjectsPolicyTestIAMPermissionsResource)-                      mempty
− gen/Network/Google/Resource/BinaryAuthorization/Projects/UpdatePolicy.hs
@@ -1,170 +0,0 @@-{-# 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.BinaryAuthorization.Projects.UpdatePolicy--- 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 or updates a project\'s policy, and returns a copy of the new--- policy. A policy is always updated as a whole, to avoid race conditions--- with concurrent policy enforcement (or management!) requests. Returns--- NOT_FOUND if the project does not exist, INVALID_ARGUMENT if the request--- is malformed.------ /See:/ <https://cloud.google.com/binary-authorization/ Binary Authorization API Reference> for @binaryauthorization.projects.updatePolicy@.-module Network.Google.Resource.BinaryAuthorization.Projects.UpdatePolicy-    (-    -- * REST Resource-      ProjectsUpdatePolicyResource--    -- * Creating a Request-    , projectsUpdatePolicy-    , ProjectsUpdatePolicy--    -- * Request Lenses-    , pupXgafv-    , pupUploadProtocol-    , pupAccessToken-    , pupUploadType-    , pupPayload-    , pupName-    , pupCallback-    ) where--import           Network.Google.BinaryAuthorization.Types-import           Network.Google.Prelude---- | A resource alias for @binaryauthorization.projects.updatePolicy@ method which the--- 'ProjectsUpdatePolicy' request conforms to.-type ProjectsUpdatePolicyResource =-     "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] Policy :> Put '[JSON] Policy---- | Creates or updates a project\'s policy, and returns a copy of the new--- policy. A policy is always updated as a whole, to avoid race conditions--- with concurrent policy enforcement (or management!) requests. Returns--- NOT_FOUND if the project does not exist, INVALID_ARGUMENT if the request--- is malformed.------ /See:/ 'projectsUpdatePolicy' smart constructor.-data ProjectsUpdatePolicy =-  ProjectsUpdatePolicy'-    { _pupXgafv          :: !(Maybe Xgafv)-    , _pupUploadProtocol :: !(Maybe Text)-    , _pupAccessToken    :: !(Maybe Text)-    , _pupUploadType     :: !(Maybe Text)-    , _pupPayload        :: !Policy-    , _pupName           :: !Text-    , _pupCallback       :: !(Maybe Text)-    }-  deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ProjectsUpdatePolicy' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pupXgafv'------ * 'pupUploadProtocol'------ * 'pupAccessToken'------ * 'pupUploadType'------ * 'pupPayload'------ * 'pupName'------ * 'pupCallback'-projectsUpdatePolicy-    :: Policy -- ^ 'pupPayload'-    -> Text -- ^ 'pupName'-    -> ProjectsUpdatePolicy-projectsUpdatePolicy pPupPayload_ pPupName_ =-  ProjectsUpdatePolicy'-    { _pupXgafv = Nothing-    , _pupUploadProtocol = Nothing-    , _pupAccessToken = Nothing-    , _pupUploadType = Nothing-    , _pupPayload = pPupPayload_-    , _pupName = pPupName_-    , _pupCallback = Nothing-    }----- | V1 error format.-pupXgafv :: Lens' ProjectsUpdatePolicy (Maybe Xgafv)-pupXgafv = lens _pupXgafv (\ s a -> s{_pupXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-pupUploadProtocol :: Lens' ProjectsUpdatePolicy (Maybe Text)-pupUploadProtocol-  = lens _pupUploadProtocol-      (\ s a -> s{_pupUploadProtocol = a})---- | OAuth access token.-pupAccessToken :: Lens' ProjectsUpdatePolicy (Maybe Text)-pupAccessToken-  = lens _pupAccessToken-      (\ s a -> s{_pupAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-pupUploadType :: Lens' ProjectsUpdatePolicy (Maybe Text)-pupUploadType-  = lens _pupUploadType-      (\ s a -> s{_pupUploadType = a})---- | Multipart request metadata.-pupPayload :: Lens' ProjectsUpdatePolicy Policy-pupPayload-  = lens _pupPayload (\ s a -> s{_pupPayload = a})---- | Output only. The resource name, in the format \`projects\/*\/policy\`.--- There is at most one policy per project.-pupName :: Lens' ProjectsUpdatePolicy Text-pupName = lens _pupName (\ s a -> s{_pupName = a})---- | JSONP-pupCallback :: Lens' ProjectsUpdatePolicy (Maybe Text)-pupCallback-  = lens _pupCallback (\ s a -> s{_pupCallback = a})--instance GoogleRequest ProjectsUpdatePolicy where-        type Rs ProjectsUpdatePolicy = Policy-        type Scopes ProjectsUpdatePolicy =-             '["https://www.googleapis.com/auth/cloud-platform"]-        requestClient ProjectsUpdatePolicy'{..}-          = go _pupName _pupXgafv _pupUploadProtocol-              _pupAccessToken-              _pupUploadType-              _pupCallback-              (Just AltJSON)-              _pupPayload-              binaryAuthorizationService-          where go-                  = buildClient-                      (Proxy :: Proxy ProjectsUpdatePolicyResource)-                      mempty
gogol-binaryauthorization.cabal view
@@ -1,59 +1,81 @@-name:                  gogol-binaryauthorization-version:               0.5.0-synopsis:              Google Binary Authorization 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+cabal-version:      2.2+name:               gogol-binaryauthorization+version:            1.0.0+synopsis:           Google Binary Authorization SDK.+homepage:           https://github.com/brendanhay/gogol+bug-reports:        https://github.com/brendanhay/gogol/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+gogol@gmail.com>, Toni Cebrián <toni@tonicebrian.com> +copyright:          Copyright (c) 2015-2025 Brendan Hay+category:           Google+build-type:         Simple+extra-source-files:+  README.md+  src/.gitkeep+ description:-    The management interface for Binary Authorization, a system providing-    policy control for images deployed to Kubernetes Engine clusters.-    .-    /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.+  The management interface for Binary Authorization, a service that provides policy-based deployment validation and control for images deployed to Google Kubernetes Engine (GKE), Anthos Service Mesh, Anthos Clusters, and Cloud Run.+  .+  /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 @v1@+  of the API.  source-repository head-    type:     git-    location: git://github.com/brendanhay/gogol.git+  type:     git+  location: git://github.com/brendanhay/gogol.git+  subdir:   gogol-binaryauthorization +flag field-selectors+  description:+    If record field selectors should be enabled. Disabling this requires GHC >=9.2 and the NoFieldSelectors extension.++  default:     False+  manual:      True+ library-    default-language:  Haskell2010-    hs-source-dirs:    src gen+  default-language: GHC2021+  hs-source-dirs:   src gen+  ghc-options:+    -Wall -fwarn-incomplete-uni-patterns+    -fwarn-incomplete-record-updates -funbox-strict-fields+    -fwarn-unused-packages -    ghc-options:       -Wall+  if (!flag(field-selectors) && impl(ghc >=9.2))+    default-extensions: NoFieldSelectors -    exposed-modules:-          Network.Google.BinaryAuthorization-        , Network.Google.BinaryAuthorization.Types-        , Network.Google.Resource.BinaryAuthorization.Projects.Attestors.Create-        , Network.Google.Resource.BinaryAuthorization.Projects.Attestors.Delete-        , Network.Google.Resource.BinaryAuthorization.Projects.Attestors.Get-        , Network.Google.Resource.BinaryAuthorization.Projects.Attestors.GetIAMPolicy-        , Network.Google.Resource.BinaryAuthorization.Projects.Attestors.List-        , Network.Google.Resource.BinaryAuthorization.Projects.Attestors.SetIAMPolicy-        , Network.Google.Resource.BinaryAuthorization.Projects.Attestors.TestIAMPermissions-        , Network.Google.Resource.BinaryAuthorization.Projects.Attestors.Update-        , Network.Google.Resource.BinaryAuthorization.Projects.GetPolicy-        , Network.Google.Resource.BinaryAuthorization.Projects.Policy.GetIAMPolicy-        , Network.Google.Resource.BinaryAuthorization.Projects.Policy.SetIAMPolicy-        , Network.Google.Resource.BinaryAuthorization.Projects.Policy.TestIAMPermissions-        , Network.Google.Resource.BinaryAuthorization.Projects.UpdatePolicy+  exposed-modules:+    Gogol.BinaryAuthorization+    Gogol.BinaryAuthorization.Projects.Attestors.Create+    Gogol.BinaryAuthorization.Projects.Attestors.Delete+    Gogol.BinaryAuthorization.Projects.Attestors.Get+    Gogol.BinaryAuthorization.Projects.Attestors.GetIamPolicy+    Gogol.BinaryAuthorization.Projects.Attestors.List+    Gogol.BinaryAuthorization.Projects.Attestors.SetIamPolicy+    Gogol.BinaryAuthorization.Projects.Attestors.TestIamPermissions+    Gogol.BinaryAuthorization.Projects.Attestors.Update+    Gogol.BinaryAuthorization.Projects.Attestors.ValidateAttestationOccurrence+    Gogol.BinaryAuthorization.Projects.GetPolicy+    Gogol.BinaryAuthorization.Projects.Platforms.Gke.Policies.Evaluate+    Gogol.BinaryAuthorization.Projects.Platforms.Policies.Create+    Gogol.BinaryAuthorization.Projects.Platforms.Policies.Delete+    Gogol.BinaryAuthorization.Projects.Platforms.Policies.Get+    Gogol.BinaryAuthorization.Projects.Platforms.Policies.List+    Gogol.BinaryAuthorization.Projects.Platforms.Policies.ReplacePlatformPolicy+    Gogol.BinaryAuthorization.Projects.Policy.GetIamPolicy+    Gogol.BinaryAuthorization.Projects.Policy.SetIamPolicy+    Gogol.BinaryAuthorization.Projects.Policy.TestIamPermissions+    Gogol.BinaryAuthorization.Projects.UpdatePolicy+    Gogol.BinaryAuthorization.Systempolicy.GetPolicy+    Gogol.BinaryAuthorization.Types -    other-modules:-          Network.Google.BinaryAuthorization.Types.Product-        , Network.Google.BinaryAuthorization.Types.Sum+  other-modules:+    Gogol.BinaryAuthorization.Internal.Product+    Gogol.BinaryAuthorization.Internal.Sum -    build-depends:-          gogol-core == 0.5.0.*-        , base       >= 4.7 && < 5+  build-depends:    gogol-core ^>=1.0.0