{-# 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.CloudFunctions.Internal.Product -- Copyright : (c) 2015-2025 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Toni Cebrián -- Stability : auto-generated -- Portability : non-portable (GHC extensions) module Gogol.CloudFunctions.Internal.Product ( -- * AbortFunctionUpgradeRequest AbortFunctionUpgradeRequest (..), newAbortFunctionUpgradeRequest, -- * AuditConfig AuditConfig (..), newAuditConfig, -- * AuditLogConfig AuditLogConfig (..), newAuditLogConfig, -- * AutomaticUpdatePolicy AutomaticUpdatePolicy (..), newAutomaticUpdatePolicy, -- * Binding Binding (..), newBinding, -- * BuildConfig BuildConfig (..), newBuildConfig, -- * BuildConfig_EnvironmentVariables BuildConfig_EnvironmentVariables (..), newBuildConfig_EnvironmentVariables, -- * CommitFunctionUpgradeRequest CommitFunctionUpgradeRequest (..), newCommitFunctionUpgradeRequest, -- * Date Date (..), newDate, -- * DetachFunctionRequest DetachFunctionRequest (..), newDetachFunctionRequest, -- * EventFilter EventFilter (..), newEventFilter, -- * EventTrigger EventTrigger (..), newEventTrigger, -- * Expr Expr (..), newExpr, -- * Function Function (..), newFunction, -- * Function_Labels Function_Labels (..), newFunction_Labels, -- * GenerateDownloadUrlRequest GenerateDownloadUrlRequest (..), newGenerateDownloadUrlRequest, -- * GenerateDownloadUrlResponse GenerateDownloadUrlResponse (..), newGenerateDownloadUrlResponse, -- * GenerateUploadUrlRequest GenerateUploadUrlRequest (..), newGenerateUploadUrlRequest, -- * GenerateUploadUrlResponse GenerateUploadUrlResponse (..), newGenerateUploadUrlResponse, -- * GoogleCloudFunctionsV2LocationMetadata GoogleCloudFunctionsV2LocationMetadata (..), newGoogleCloudFunctionsV2LocationMetadata, -- * GoogleCloudFunctionsV2OperationMetadata GoogleCloudFunctionsV2OperationMetadata (..), newGoogleCloudFunctionsV2OperationMetadata, -- * GoogleCloudFunctionsV2OperationMetadata_RequestResource GoogleCloudFunctionsV2OperationMetadata_RequestResource (..), newGoogleCloudFunctionsV2OperationMetadata_RequestResource, -- * GoogleCloudFunctionsV2Stage GoogleCloudFunctionsV2Stage (..), newGoogleCloudFunctionsV2Stage, -- * GoogleCloudFunctionsV2StateMessage GoogleCloudFunctionsV2StateMessage (..), newGoogleCloudFunctionsV2StateMessage, -- * ListFunctionsResponse ListFunctionsResponse (..), newListFunctionsResponse, -- * ListLocationsResponse ListLocationsResponse (..), newListLocationsResponse, -- * ListOperationsResponse ListOperationsResponse (..), newListOperationsResponse, -- * ListRuntimesResponse ListRuntimesResponse (..), newListRuntimesResponse, -- * Location Location (..), newLocation, -- * Location_Labels Location_Labels (..), newLocation_Labels, -- * Location_Metadata Location_Metadata (..), newLocation_Metadata, -- * OnDeployUpdatePolicy OnDeployUpdatePolicy (..), newOnDeployUpdatePolicy, -- * Operation Operation (..), newOperation, -- * Operation_Metadata Operation_Metadata (..), newOperation_Metadata, -- * Operation_Response Operation_Response (..), newOperation_Response, -- * OperationMetadataV1 OperationMetadataV1 (..), newOperationMetadataV1, -- * OperationMetadataV1_Request OperationMetadataV1_Request (..), newOperationMetadataV1_Request, -- * Policy Policy (..), newPolicy, -- * RedirectFunctionUpgradeTrafficRequest RedirectFunctionUpgradeTrafficRequest (..), newRedirectFunctionUpgradeTrafficRequest, -- * RepoSource RepoSource (..), newRepoSource, -- * RollbackFunctionUpgradeTrafficRequest RollbackFunctionUpgradeTrafficRequest (..), newRollbackFunctionUpgradeTrafficRequest, -- * Runtime Runtime (..), newRuntime, -- * SecretEnvVar SecretEnvVar (..), newSecretEnvVar, -- * SecretVersion SecretVersion (..), newSecretVersion, -- * SecretVolume SecretVolume (..), newSecretVolume, -- * ServiceConfig ServiceConfig (..), newServiceConfig, -- * ServiceConfig_EnvironmentVariables ServiceConfig_EnvironmentVariables (..), newServiceConfig_EnvironmentVariables, -- * SetIamPolicyRequest SetIamPolicyRequest (..), newSetIamPolicyRequest, -- * SetupFunctionUpgradeConfigRequest SetupFunctionUpgradeConfigRequest (..), newSetupFunctionUpgradeConfigRequest, -- * Source Source (..), newSource, -- * SourceProvenance SourceProvenance (..), newSourceProvenance, -- * Status Status (..), newStatus, -- * Status_DetailsItem Status_DetailsItem (..), newStatus_DetailsItem, -- * StorageSource StorageSource (..), newStorageSource, -- * TestIamPermissionsRequest TestIamPermissionsRequest (..), newTestIamPermissionsRequest, -- * TestIamPermissionsResponse TestIamPermissionsResponse (..), newTestIamPermissionsResponse, -- * UpgradeInfo UpgradeInfo (..), newUpgradeInfo, ) where import Gogol.CloudFunctions.Internal.Sum import Gogol.Prelude qualified as Core -- | Request for the @AbortFunctionUpgrade@ method. -- -- /See:/ 'newAbortFunctionUpgradeRequest' smart constructor. data AbortFunctionUpgradeRequest = AbortFunctionUpgradeRequest deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'AbortFunctionUpgradeRequest' with the minimum fields required to make a request. newAbortFunctionUpgradeRequest :: AbortFunctionUpgradeRequest newAbortFunctionUpgradeRequest = AbortFunctionUpgradeRequest instance Core.FromJSON AbortFunctionUpgradeRequest where parseJSON = Core.withObject "AbortFunctionUpgradeRequest" (\o -> Core.pure AbortFunctionUpgradeRequest) instance Core.ToJSON AbortFunctionUpgradeRequest where toJSON = Core.const Core.emptyObject -- | Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both @allServices@ and a specific service, the union of the two AuditConfigs is used for that service: the log/types specified in each AuditConfig are enabled, and the exempted/members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit/configs\": [ { \"service\": \"allServices\", \"audit/log/configs\": [ { \"log/type\": \"DATA/READ\", \"exempted/members\": [ \"user:jose\@example.com\" ] }, { \"log/type\": \"DATA/WRITE\" }, { \"log/type\": \"ADMIN/READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit/log/configs\": [ { \"log/type\": \"DATA/READ\" }, { \"log/type\": \"DATA/WRITE\", \"exempted/members\": [ \"user:aliya\@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA/READ, DATA/WRITE and -- ADMIN/READ logging. It also exempts @jose\@example.com@ from DATA/READ logging, and @aliya\@example.com@ from DATA/WRITE logging. -- -- /See:/ 'newAuditConfig' smart constructor. data AuditConfig = AuditConfig { -- | The configuration for logging of each type of permission. auditLogConfigs :: (Core.Maybe [AuditLogConfig]), -- | Specifies a service that will be enabled for audit logging. For example, @storage.googleapis.com@, @cloudsql.googleapis.com@. @allServices@ is a special value that covers all services. service :: (Core.Maybe Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'AuditConfig' with the minimum fields required to make a request. newAuditConfig :: AuditConfig newAuditConfig = AuditConfig { auditLogConfigs = Core.Nothing, service = Core.Nothing } instance Core.FromJSON AuditConfig where parseJSON = Core.withObject "AuditConfig" ( \o -> AuditConfig Core.<$> (o Core..:? "auditLogConfigs") Core.<*> (o Core..:? "service") ) instance Core.ToJSON AuditConfig where toJSON AuditConfig {..} = Core.object ( Core.catMaybes [ ("auditLogConfigs" Core..=) Core.<$> auditLogConfigs, ("service" Core..=) Core.<$> service ] ) -- | Provides the configuration for logging a type of permissions. Example: { \"audit/log/configs\": [ { \"log/type\": \"DATA/READ\", \"exempted/members\": [ \"user:jose\@example.com\" ] }, { \"log/type\": \"DATA/WRITE\" } ] } This enables \'DATA/READ\' and \'DATA/WRITE\' logging, while exempting jose\@example.com from DATA/READ logging. -- -- /See:/ 'newAuditLogConfig' smart constructor. data AuditLogConfig = AuditLogConfig { -- | Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members. exemptedMembers :: (Core.Maybe [Core.Text]), -- | The log type that this config enables. logType :: (Core.Maybe AuditLogConfig_LogType) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'AuditLogConfig' with the minimum fields required to make a request. newAuditLogConfig :: AuditLogConfig newAuditLogConfig = AuditLogConfig { exemptedMembers = Core.Nothing, logType = Core.Nothing } instance Core.FromJSON AuditLogConfig where parseJSON = Core.withObject "AuditLogConfig" ( \o -> AuditLogConfig Core.<$> (o Core..:? "exemptedMembers") Core.<*> (o Core..:? "logType") ) instance Core.ToJSON AuditLogConfig where toJSON AuditLogConfig {..} = Core.object ( Core.catMaybes [ ("exemptedMembers" Core..=) Core.<$> exemptedMembers, ("logType" Core..=) Core.<$> logType ] ) -- | Security patches are applied automatically to the runtime without requiring the function to be redeployed. -- -- /See:/ 'newAutomaticUpdatePolicy' smart constructor. data AutomaticUpdatePolicy = AutomaticUpdatePolicy deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'AutomaticUpdatePolicy' with the minimum fields required to make a request. newAutomaticUpdatePolicy :: AutomaticUpdatePolicy newAutomaticUpdatePolicy = AutomaticUpdatePolicy instance Core.FromJSON AutomaticUpdatePolicy where parseJSON = Core.withObject "AutomaticUpdatePolicy" (\o -> Core.pure AutomaticUpdatePolicy) instance Core.ToJSON AutomaticUpdatePolicy where toJSON = Core.const Core.emptyObject -- | 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 . 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 . 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 . For a list of the available pre-defined roles, see . 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' ] ) -- | Describes the Build step of the function that builds a container from the given source. -- -- /See:/ 'newBuildConfig' smart constructor. data BuildConfig = BuildConfig { automaticUpdatePolicy :: (Core.Maybe AutomaticUpdatePolicy), -- | Output only. The Cloud Build name of the latest successful deployment of the function. build :: (Core.Maybe Core.Text), -- | Docker Registry to use for this deployment. This configuration is only applicable to 1st Gen functions, 2nd Gen functions can only use Artifact Registry. Deprecated: Container Registry option will no longer be available after March 2025: https:\/\/cloud.google.com\/artifact-registry\/docs\/transition\/transition-from-gcr Please use Artifact Registry instead, which is the default choice. If unspecified, it defaults to @ARTIFACT_REGISTRY@. If @docker_repository@ field is specified, this field should either be left unspecified or set to @ARTIFACT_REGISTRY@. dockerRegistry :: (Core.Maybe BuildConfig_DockerRegistry), -- | Repository in Artifact Registry to which the function docker image will be pushed after it is built by Cloud Build. If specified by user, it is created and managed by user with a customer managed encryption key. Otherwise, GCF will create and use a repository named \'gcf-artifacts\' for every deployed region. It must match the pattern @projects\/{project}\/locations\/{location}\/repositories\/{repository}@. Repository format must be \'DOCKER\'. dockerRepository :: (Core.Maybe Core.Text), -- | The name of the function (as defined in source code) that will be executed. Defaults to the resource name suffix, if not specified. For backward compatibility, if function with given name is not found, then the system will try to use function named \"function\". For Node.js this is name of a function exported by the module specified in @source_location@. entryPoint :: (Core.Maybe Core.Text), -- | User-provided build-time environment variables for the function environmentVariables :: (Core.Maybe BuildConfig_EnvironmentVariables), onDeployUpdatePolicy :: (Core.Maybe OnDeployUpdatePolicy), -- | The runtime in which to run the function. Required when deploying a new function, optional when updating an existing function. For a complete list of possible choices, see the . runtime :: (Core.Maybe Core.Text), -- | Service account to be used for building the container. The format of this field is @projects\/{projectId}\/serviceAccounts\/{serviceAccountEmail}@. serviceAccount :: (Core.Maybe Core.Text), -- | The location of the function source code. source :: (Core.Maybe Source), -- | Output only. A permanent fixed identifier for source. sourceProvenance :: (Core.Maybe SourceProvenance), -- | An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments. sourceToken :: (Core.Maybe Core.Text), -- | Name of the Cloud Build Custom Worker Pool that should be used to build the function. The format of this field is @projects\/{project}\/locations\/{region}\/workerPools\/{workerPool}@ where {project} and {region} are the project id and region respectively where the worker pool is defined and {workerPool} is the short name of the worker pool. If the project id is not the same as the function, then the Cloud Functions Service Agent (service-\@gcf-admin-robot.iam.gserviceaccount.com) must be granted the role Cloud Build Custom Workers Builder (roles\/cloudbuild.customworkers.builder) in the project. workerPool :: (Core.Maybe Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'BuildConfig' with the minimum fields required to make a request. newBuildConfig :: BuildConfig newBuildConfig = BuildConfig { automaticUpdatePolicy = Core.Nothing, build = Core.Nothing, dockerRegistry = Core.Nothing, dockerRepository = Core.Nothing, entryPoint = Core.Nothing, environmentVariables = Core.Nothing, onDeployUpdatePolicy = Core.Nothing, runtime = Core.Nothing, serviceAccount = Core.Nothing, source = Core.Nothing, sourceProvenance = Core.Nothing, sourceToken = Core.Nothing, workerPool = Core.Nothing } instance Core.FromJSON BuildConfig where parseJSON = Core.withObject "BuildConfig" ( \o -> BuildConfig Core.<$> (o Core..:? "automaticUpdatePolicy") Core.<*> (o Core..:? "build") Core.<*> (o Core..:? "dockerRegistry") Core.<*> (o Core..:? "dockerRepository") Core.<*> (o Core..:? "entryPoint") Core.<*> (o Core..:? "environmentVariables") Core.<*> (o Core..:? "onDeployUpdatePolicy") Core.<*> (o Core..:? "runtime") Core.<*> (o Core..:? "serviceAccount") Core.<*> (o Core..:? "source") Core.<*> (o Core..:? "sourceProvenance") Core.<*> (o Core..:? "sourceToken") Core.<*> (o Core..:? "workerPool") ) instance Core.ToJSON BuildConfig where toJSON BuildConfig {..} = Core.object ( Core.catMaybes [ ("automaticUpdatePolicy" Core..=) Core.<$> automaticUpdatePolicy, ("build" Core..=) Core.<$> build, ("dockerRegistry" Core..=) Core.<$> dockerRegistry, ("dockerRepository" Core..=) Core.<$> dockerRepository, ("entryPoint" Core..=) Core.<$> entryPoint, ("environmentVariables" Core..=) Core.<$> environmentVariables, ("onDeployUpdatePolicy" Core..=) Core.<$> onDeployUpdatePolicy, ("runtime" Core..=) Core.<$> runtime, ("serviceAccount" Core..=) Core.<$> serviceAccount, ("source" Core..=) Core.<$> source, ("sourceProvenance" Core..=) Core.<$> sourceProvenance, ("sourceToken" Core..=) Core.<$> sourceToken, ("workerPool" Core..=) Core.<$> workerPool ] ) -- | User-provided build-time environment variables for the function -- -- /See:/ 'newBuildConfig_EnvironmentVariables' smart constructor. newtype BuildConfig_EnvironmentVariables = BuildConfig_EnvironmentVariables { additional :: (Core.HashMap Core.Text Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'BuildConfig_EnvironmentVariables' with the minimum fields required to make a request. newBuildConfig_EnvironmentVariables :: -- | See 'additional'. Core.HashMap Core.Text Core.Text -> BuildConfig_EnvironmentVariables newBuildConfig_EnvironmentVariables additional = BuildConfig_EnvironmentVariables {additional = additional} instance Core.FromJSON BuildConfig_EnvironmentVariables where parseJSON = Core.withObject "BuildConfig_EnvironmentVariables" ( \o -> BuildConfig_EnvironmentVariables Core.<$> (Core.parseJSONObject o) ) instance Core.ToJSON BuildConfig_EnvironmentVariables where toJSON BuildConfig_EnvironmentVariables {..} = Core.toJSON additional -- | Request for the @CommitFunctionUpgrade@ method. -- -- /See:/ 'newCommitFunctionUpgradeRequest' smart constructor. data CommitFunctionUpgradeRequest = CommitFunctionUpgradeRequest deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'CommitFunctionUpgradeRequest' with the minimum fields required to make a request. newCommitFunctionUpgradeRequest :: CommitFunctionUpgradeRequest newCommitFunctionUpgradeRequest = CommitFunctionUpgradeRequest instance Core.FromJSON CommitFunctionUpgradeRequest where parseJSON = Core.withObject "CommitFunctionUpgradeRequest" (\o -> Core.pure CommitFunctionUpgradeRequest) instance Core.ToJSON CommitFunctionUpgradeRequest where toJSON = Core.const Core.emptyObject -- | Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp -- -- /See:/ 'newDate' smart constructor. data Date = Date { -- | Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn\'t significant. day :: (Core.Maybe Core.Int32), -- | Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. month :: (Core.Maybe Core.Int32), -- | Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. year :: (Core.Maybe Core.Int32) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'Date' with the minimum fields required to make a request. newDate :: Date newDate = Date { day = Core.Nothing, month = Core.Nothing, year = Core.Nothing } instance Core.FromJSON Date where parseJSON = Core.withObject "Date" ( \o -> Date Core.<$> (o Core..:? "day") Core.<*> (o Core..:? "month") Core.<*> (o Core..:? "year") ) instance Core.ToJSON Date where toJSON Date {..} = Core.object ( Core.catMaybes [ ("day" Core..=) Core.<$> day, ("month" Core..=) Core.<$> month, ("year" Core..=) Core.<$> year ] ) -- | Request for the @DetachFunction@ method. -- -- /See:/ 'newDetachFunctionRequest' smart constructor. data DetachFunctionRequest = DetachFunctionRequest deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'DetachFunctionRequest' with the minimum fields required to make a request. newDetachFunctionRequest :: DetachFunctionRequest newDetachFunctionRequest = DetachFunctionRequest instance Core.FromJSON DetachFunctionRequest where parseJSON = Core.withObject "DetachFunctionRequest" (\o -> Core.pure DetachFunctionRequest) instance Core.ToJSON DetachFunctionRequest where toJSON = Core.const Core.emptyObject -- | Filters events based on exact matches on the CloudEvents attributes. -- -- /See:/ 'newEventFilter' smart constructor. data EventFilter = EventFilter { -- | Required. The name of a CloudEvents attribute. attribute :: (Core.Maybe Core.Text), -- | Optional. The operator used for matching the events with the value of the filter. If not specified, only events that have an exact key-value pair specified in the filter are matched. The only allowed value is @match-path-pattern@. operator :: (Core.Maybe Core.Text), -- | Required. The value for the attribute. value :: (Core.Maybe Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'EventFilter' with the minimum fields required to make a request. newEventFilter :: EventFilter newEventFilter = EventFilter { attribute = Core.Nothing, operator = Core.Nothing, value = Core.Nothing } instance Core.FromJSON EventFilter where parseJSON = Core.withObject "EventFilter" ( \o -> EventFilter Core.<$> (o Core..:? "attribute") Core.<*> (o Core..:? "operator") Core.<*> (o Core..:? "value") ) instance Core.ToJSON EventFilter where toJSON EventFilter {..} = Core.object ( Core.catMaybes [ ("attribute" Core..=) Core.<$> attribute, ("operator" Core..=) Core.<$> operator, ("value" Core..=) Core.<$> value ] ) -- | Describes EventTrigger, used to request events to be sent from another service. -- -- /See:/ 'newEventTrigger' smart constructor. data EventTrigger = EventTrigger { -- | Optional. The name of the channel associated with the trigger in @projects\/{project}\/locations\/{location}\/channels\/{channel}@ format. You must provide a channel to receive events from Eventarc SaaS partners. channel :: (Core.Maybe Core.Text), -- | Criteria used to filter events. eventFilters :: (Core.Maybe [EventFilter]), -- | Required. The type of event to observe. For example: @google.cloud.audit.log.v1.written@ or @google.cloud.pubsub.topic.v1.messagePublished@. eventType :: (Core.Maybe Core.Text), -- | Optional. The name of a Pub\/Sub topic in the same project that will be used as the transport topic for the event delivery. Format: @projects\/{project}\/topics\/{topic}@. This is only valid for events of type @google.cloud.pubsub.topic.v1.messagePublished@. The topic provided here will not be deleted at function deletion. pubsubTopic :: (Core.Maybe Core.Text), -- | Optional. If unset, then defaults to ignoring failures (i.e. not retrying them). retryPolicy :: (Core.Maybe EventTrigger_RetryPolicy), -- | Optional. The hostname of the service that 1st Gen function should be observed. If no string is provided, the default service implementing the API will be used. For example, @storage.googleapis.com@ is the default for all event types in the @google.storage@ namespace. The field is only applicable to 1st Gen functions. service :: (Core.Maybe Core.Text), -- | Optional. The email of the trigger\'s service account. The service account must have permission to invoke Cloud Run services, the permission is @run.routes.invoke@. If empty, defaults to the Compute Engine default service account: @{project_number}-compute\@developer.gserviceaccount.com@. serviceAccountEmail :: (Core.Maybe Core.Text), -- | Output only. The resource name of the Eventarc trigger. The format of this field is @projects\/{project}\/locations\/{region}\/triggers\/{trigger}@. trigger :: (Core.Maybe Core.Text), -- | The region that the trigger will be in. The trigger will only receive events originating in this region. It can be the same region as the function, a different region or multi-region, or the global region. If not provided, defaults to the same region as the function. triggerRegion :: (Core.Maybe Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'EventTrigger' with the minimum fields required to make a request. newEventTrigger :: EventTrigger newEventTrigger = EventTrigger { channel = Core.Nothing, eventFilters = Core.Nothing, eventType = Core.Nothing, pubsubTopic = Core.Nothing, retryPolicy = Core.Nothing, service = Core.Nothing, serviceAccountEmail = Core.Nothing, trigger = Core.Nothing, triggerRegion = Core.Nothing } instance Core.FromJSON EventTrigger where parseJSON = Core.withObject "EventTrigger" ( \o -> EventTrigger Core.<$> (o Core..:? "channel") Core.<*> (o Core..:? "eventFilters") Core.<*> (o Core..:? "eventType") Core.<*> (o Core..:? "pubsubTopic") Core.<*> (o Core..:? "retryPolicy") Core.<*> (o Core..:? "service") Core.<*> (o Core..:? "serviceAccountEmail") Core.<*> (o Core..:? "trigger") Core.<*> (o Core..:? "triggerRegion") ) instance Core.ToJSON EventTrigger where toJSON EventTrigger {..} = Core.object ( Core.catMaybes [ ("channel" Core..=) Core.<$> channel, ("eventFilters" Core..=) Core.<$> eventFilters, ("eventType" Core..=) Core.<$> eventType, ("pubsubTopic" Core..=) Core.<$> pubsubTopic, ("retryPolicy" Core..=) Core.<$> retryPolicy, ("service" Core..=) Core.<$> service, ("serviceAccountEmail" Core..=) Core.<$> serviceAccountEmail, ("trigger" Core..=) Core.<$> trigger, ("triggerRegion" Core..=) Core.<$> triggerRegion ] ) -- | 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 ] ) -- | Describes a Cloud Function that contains user computation executed in response to an event. It encapsulates function and trigger configurations. -- -- /See:/ 'newFunction' smart constructor. data Function = Function { -- | Describes the Build step of the function that builds a container from the given source. buildConfig :: (Core.Maybe BuildConfig), -- | Output only. The create timestamp of a Cloud Function. This is only applicable to 2nd Gen functions. createTime :: (Core.Maybe Core.DateTime), -- | User-provided description of a function. description :: (Core.Maybe Core.Text), -- | Describe whether the function is 1st Gen or 2nd Gen. environment :: (Core.Maybe Function_Environment), -- | An Eventarc trigger managed by Google Cloud Functions that fires events in response to a condition in another service. eventTrigger :: (Core.Maybe EventTrigger), -- | Resource name of a KMS crypto key (managed by the user) used to encrypt\/decrypt function resources. It must match the pattern @projects\/{project}\/locations\/{location}\/keyRings\/{key_ring}\/cryptoKeys\/{crypto_key}@. kmsKeyName :: (Core.Maybe Core.Text), -- | Labels associated with this Cloud Function. labels :: (Core.Maybe Function_Labels), -- | A user-defined name of the function. Function names must be unique globally and match pattern @projects\/*\/locations\/*\/functions\/*@ name :: (Core.Maybe Core.Text), -- | Output only. Reserved for future use. satisfiesPzi :: (Core.Maybe Core.Bool), -- | Output only. Reserved for future use. satisfiesPzs :: (Core.Maybe Core.Bool), -- | Describes the Service being deployed. Currently deploys services to Cloud Run (fully managed). serviceConfig :: (Core.Maybe ServiceConfig), -- | Output only. State of the function. state :: (Core.Maybe Function_State), -- | Output only. State Messages for this Cloud Function. stateMessages :: (Core.Maybe [GoogleCloudFunctionsV2StateMessage]), -- | Output only. The last update timestamp of a Cloud Function. updateTime :: (Core.Maybe Core.DateTime), -- | Output only. UpgradeInfo for this Cloud Function upgradeInfo :: (Core.Maybe UpgradeInfo), -- | Output only. The deployed url for the function. url :: (Core.Maybe Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'Function' with the minimum fields required to make a request. newFunction :: Function newFunction = Function { buildConfig = Core.Nothing, createTime = Core.Nothing, description = Core.Nothing, environment = Core.Nothing, eventTrigger = Core.Nothing, kmsKeyName = Core.Nothing, labels = Core.Nothing, name = Core.Nothing, satisfiesPzi = Core.Nothing, satisfiesPzs = Core.Nothing, serviceConfig = Core.Nothing, state = Core.Nothing, stateMessages = Core.Nothing, updateTime = Core.Nothing, upgradeInfo = Core.Nothing, url = Core.Nothing } instance Core.FromJSON Function where parseJSON = Core.withObject "Function" ( \o -> Function Core.<$> (o Core..:? "buildConfig") Core.<*> (o Core..:? "createTime") Core.<*> (o Core..:? "description") Core.<*> (o Core..:? "environment") Core.<*> (o Core..:? "eventTrigger") Core.<*> (o Core..:? "kmsKeyName") Core.<*> (o Core..:? "labels") Core.<*> (o Core..:? "name") Core.<*> (o Core..:? "satisfiesPzi") Core.<*> (o Core..:? "satisfiesPzs") Core.<*> (o Core..:? "serviceConfig") Core.<*> (o Core..:? "state") Core.<*> (o Core..:? "stateMessages") Core.<*> (o Core..:? "updateTime") Core.<*> (o Core..:? "upgradeInfo") Core.<*> (o Core..:? "url") ) instance Core.ToJSON Function where toJSON Function {..} = Core.object ( Core.catMaybes [ ("buildConfig" Core..=) Core.<$> buildConfig, ("createTime" Core..=) Core.<$> createTime, ("description" Core..=) Core.<$> description, ("environment" Core..=) Core.<$> environment, ("eventTrigger" Core..=) Core.<$> eventTrigger, ("kmsKeyName" Core..=) Core.<$> kmsKeyName, ("labels" Core..=) Core.<$> labels, ("name" Core..=) Core.<$> name, ("satisfiesPzi" Core..=) Core.<$> satisfiesPzi, ("satisfiesPzs" Core..=) Core.<$> satisfiesPzs, ("serviceConfig" Core..=) Core.<$> serviceConfig, ("state" Core..=) Core.<$> state, ("stateMessages" Core..=) Core.<$> stateMessages, ("updateTime" Core..=) Core.<$> updateTime, ("upgradeInfo" Core..=) Core.<$> upgradeInfo, ("url" Core..=) Core.<$> url ] ) -- | Labels associated with this Cloud Function. -- -- /See:/ 'newFunction_Labels' smart constructor. newtype Function_Labels = Function_Labels { additional :: (Core.HashMap Core.Text Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'Function_Labels' with the minimum fields required to make a request. newFunction_Labels :: -- | See 'additional'. Core.HashMap Core.Text Core.Text -> Function_Labels newFunction_Labels additional = Function_Labels {additional = additional} instance Core.FromJSON Function_Labels where parseJSON = Core.withObject "Function_Labels" (\o -> Function_Labels Core.<$> (Core.parseJSONObject o)) instance Core.ToJSON Function_Labels where toJSON Function_Labels {..} = Core.toJSON additional -- | Request of @GenerateDownloadUrl@ method. -- -- /See:/ 'newGenerateDownloadUrlRequest' smart constructor. data GenerateDownloadUrlRequest = GenerateDownloadUrlRequest deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'GenerateDownloadUrlRequest' with the minimum fields required to make a request. newGenerateDownloadUrlRequest :: GenerateDownloadUrlRequest newGenerateDownloadUrlRequest = GenerateDownloadUrlRequest instance Core.FromJSON GenerateDownloadUrlRequest where parseJSON = Core.withObject "GenerateDownloadUrlRequest" (\o -> Core.pure GenerateDownloadUrlRequest) instance Core.ToJSON GenerateDownloadUrlRequest where toJSON = Core.const Core.emptyObject -- | Response of @GenerateDownloadUrl@ method. -- -- /See:/ 'newGenerateDownloadUrlResponse' smart constructor. newtype GenerateDownloadUrlResponse = GenerateDownloadUrlResponse { -- | The generated Google Cloud Storage signed URL that should be used for function source code download. downloadUrl :: (Core.Maybe Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'GenerateDownloadUrlResponse' with the minimum fields required to make a request. newGenerateDownloadUrlResponse :: GenerateDownloadUrlResponse newGenerateDownloadUrlResponse = GenerateDownloadUrlResponse {downloadUrl = Core.Nothing} instance Core.FromJSON GenerateDownloadUrlResponse where parseJSON = Core.withObject "GenerateDownloadUrlResponse" ( \o -> GenerateDownloadUrlResponse Core.<$> (o Core..:? "downloadUrl") ) instance Core.ToJSON GenerateDownloadUrlResponse where toJSON GenerateDownloadUrlResponse {..} = Core.object (Core.catMaybes [("downloadUrl" Core..=) Core.<$> downloadUrl]) -- | Request of @GenerateSourceUploadUrl@ method. -- -- /See:/ 'newGenerateUploadUrlRequest' smart constructor. data GenerateUploadUrlRequest = GenerateUploadUrlRequest { -- | The function environment the generated upload url will be used for. The upload url for 2nd Gen functions can also be used for 1st gen functions, but not vice versa. If not specified, 2nd generation-style upload URLs are generated. environment :: (Core.Maybe GenerateUploadUrlRequest_Environment), -- | Resource name of a KMS crypto key (managed by the user) used to encrypt\/decrypt function source code objects in intermediate Cloud Storage buckets. When you generate an upload url and upload your source code, it gets copied to an intermediate Cloud Storage bucket. The source code is then copied to a versioned directory in the sources bucket in the consumer project during the function deployment. It must match the pattern @projects\/{project}\/locations\/{location}\/keyRings\/{key_ring}\/cryptoKeys\/{crypto_key}@. The Google Cloud Functions service account (service-{project_number}\@gcf-admin-robot.iam.gserviceaccount.com) must be granted the role \'Cloud KMS CryptoKey Encrypter\/Decrypter (roles\/cloudkms.cryptoKeyEncrypterDecrypter)\' on the Key\/KeyRing\/Project\/Organization (least access preferred). kmsKeyName :: (Core.Maybe Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'GenerateUploadUrlRequest' with the minimum fields required to make a request. newGenerateUploadUrlRequest :: GenerateUploadUrlRequest newGenerateUploadUrlRequest = GenerateUploadUrlRequest { environment = Core.Nothing, kmsKeyName = Core.Nothing } instance Core.FromJSON GenerateUploadUrlRequest where parseJSON = Core.withObject "GenerateUploadUrlRequest" ( \o -> GenerateUploadUrlRequest Core.<$> (o Core..:? "environment") Core.<*> (o Core..:? "kmsKeyName") ) instance Core.ToJSON GenerateUploadUrlRequest where toJSON GenerateUploadUrlRequest {..} = Core.object ( Core.catMaybes [ ("environment" Core..=) Core.<$> environment, ("kmsKeyName" Core..=) Core.<$> kmsKeyName ] ) -- | Response of @GenerateSourceUploadUrl@ method. -- -- /See:/ 'newGenerateUploadUrlResponse' smart constructor. data GenerateUploadUrlResponse = GenerateUploadUrlResponse { -- | The location of the source code in the upload bucket. Once the archive is uploaded using the @upload_url@ use this field to set the @function.build_config.source.storage_source@ during CreateFunction and UpdateFunction. Generation defaults to 0, as Cloud Storage provides a new generation only upon uploading a new object or version of an object. storageSource :: (Core.Maybe StorageSource), -- | The generated Google Cloud Storage signed URL that should be used for a function source code upload. The uploaded file should be a zip archive which contains a function. uploadUrl :: (Core.Maybe Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'GenerateUploadUrlResponse' with the minimum fields required to make a request. newGenerateUploadUrlResponse :: GenerateUploadUrlResponse newGenerateUploadUrlResponse = GenerateUploadUrlResponse { storageSource = Core.Nothing, uploadUrl = Core.Nothing } instance Core.FromJSON GenerateUploadUrlResponse where parseJSON = Core.withObject "GenerateUploadUrlResponse" ( \o -> GenerateUploadUrlResponse Core.<$> (o Core..:? "storageSource") Core.<*> (o Core..:? "uploadUrl") ) instance Core.ToJSON GenerateUploadUrlResponse where toJSON GenerateUploadUrlResponse {..} = Core.object ( Core.catMaybes [ ("storageSource" Core..=) Core.<$> storageSource, ("uploadUrl" Core..=) Core.<$> uploadUrl ] ) -- | Extra GCF specific location information. -- -- /See:/ 'newGoogleCloudFunctionsV2LocationMetadata' smart constructor. newtype GoogleCloudFunctionsV2LocationMetadata = GoogleCloudFunctionsV2LocationMetadata { -- | The Cloud Function environments this location supports. environments :: ( Core.Maybe [GoogleCloudFunctionsV2LocationMetadata_EnvironmentsItem] ) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'GoogleCloudFunctionsV2LocationMetadata' with the minimum fields required to make a request. newGoogleCloudFunctionsV2LocationMetadata :: GoogleCloudFunctionsV2LocationMetadata newGoogleCloudFunctionsV2LocationMetadata = GoogleCloudFunctionsV2LocationMetadata { environments = Core.Nothing } instance Core.FromJSON GoogleCloudFunctionsV2LocationMetadata where parseJSON = Core.withObject "GoogleCloudFunctionsV2LocationMetadata" ( \o -> GoogleCloudFunctionsV2LocationMetadata Core.<$> (o Core..:? "environments") ) instance Core.ToJSON GoogleCloudFunctionsV2LocationMetadata where toJSON GoogleCloudFunctionsV2LocationMetadata {..} = Core.object (Core.catMaybes [("environments" Core..=) Core.<$> environments]) -- | Represents the metadata of the long-running operation. -- -- /See:/ 'newGoogleCloudFunctionsV2OperationMetadata' smart constructor. data GoogleCloudFunctionsV2OperationMetadata = GoogleCloudFunctionsV2OperationMetadata { -- | API version used to start the operation. apiVersion :: (Core.Maybe Core.Text), -- | The build name of the function for create and update operations. buildName :: (Core.Maybe Core.Text), -- | Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to @Code.CANCELLED@. cancelRequested :: (Core.Maybe Core.Bool), -- | The time the operation was created. createTime :: (Core.Maybe Core.DateTime), -- | Output only. Whether a custom IAM role binding was detected during the upgrade. customIamRoleDetected :: (Core.Maybe Core.Bool), -- | The time the operation finished running. endTime :: (Core.Maybe Core.DateTime), -- | The operation type. operationType :: (Core.Maybe GoogleCloudFunctionsV2OperationMetadata_OperationType), -- | The original request that started the operation. requestResource :: ( Core.Maybe GoogleCloudFunctionsV2OperationMetadata_RequestResource ), -- | An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments. sourceToken :: (Core.Maybe Core.Text), -- | Mechanism for reporting in-progress stages stages :: (Core.Maybe [GoogleCloudFunctionsV2Stage]), -- | Human-readable status of the operation, if any. statusDetail :: (Core.Maybe Core.Text), -- | Server-defined resource path for the target of the operation. target :: (Core.Maybe Core.Text), -- | Name of the verb executed by the operation. verb :: (Core.Maybe Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'GoogleCloudFunctionsV2OperationMetadata' with the minimum fields required to make a request. newGoogleCloudFunctionsV2OperationMetadata :: GoogleCloudFunctionsV2OperationMetadata newGoogleCloudFunctionsV2OperationMetadata = GoogleCloudFunctionsV2OperationMetadata { apiVersion = Core.Nothing, buildName = Core.Nothing, cancelRequested = Core.Nothing, createTime = Core.Nothing, customIamRoleDetected = Core.Nothing, endTime = Core.Nothing, operationType = Core.Nothing, requestResource = Core.Nothing, sourceToken = Core.Nothing, stages = Core.Nothing, statusDetail = Core.Nothing, target = Core.Nothing, verb = Core.Nothing } instance Core.FromJSON GoogleCloudFunctionsV2OperationMetadata where parseJSON = Core.withObject "GoogleCloudFunctionsV2OperationMetadata" ( \o -> GoogleCloudFunctionsV2OperationMetadata Core.<$> (o Core..:? "apiVersion") Core.<*> (o Core..:? "buildName") Core.<*> (o Core..:? "cancelRequested") Core.<*> (o Core..:? "createTime") Core.<*> (o Core..:? "customIamRoleDetected") Core.<*> (o Core..:? "endTime") Core.<*> (o Core..:? "operationType") Core.<*> (o Core..:? "requestResource") Core.<*> (o Core..:? "sourceToken") Core.<*> (o Core..:? "stages") Core.<*> (o Core..:? "statusDetail") Core.<*> (o Core..:? "target") Core.<*> (o Core..:? "verb") ) instance Core.ToJSON GoogleCloudFunctionsV2OperationMetadata where toJSON GoogleCloudFunctionsV2OperationMetadata {..} = Core.object ( Core.catMaybes [ ("apiVersion" Core..=) Core.<$> apiVersion, ("buildName" Core..=) Core.<$> buildName, ("cancelRequested" Core..=) Core.<$> cancelRequested, ("createTime" Core..=) Core.<$> createTime, ("customIamRoleDetected" Core..=) Core.<$> customIamRoleDetected, ("endTime" Core..=) Core.<$> endTime, ("operationType" Core..=) Core.<$> operationType, ("requestResource" Core..=) Core.<$> requestResource, ("sourceToken" Core..=) Core.<$> sourceToken, ("stages" Core..=) Core.<$> stages, ("statusDetail" Core..=) Core.<$> statusDetail, ("target" Core..=) Core.<$> target, ("verb" Core..=) Core.<$> verb ] ) -- | The original request that started the operation. -- -- /See:/ 'newGoogleCloudFunctionsV2OperationMetadata_RequestResource' smart constructor. newtype GoogleCloudFunctionsV2OperationMetadata_RequestResource = GoogleCloudFunctionsV2OperationMetadata_RequestResource { -- | Properties of the object. Contains field \@type with type URL. additional :: (Core.HashMap Core.Text Core.Value) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'GoogleCloudFunctionsV2OperationMetadata_RequestResource' with the minimum fields required to make a request. newGoogleCloudFunctionsV2OperationMetadata_RequestResource :: -- | Properties of the object. Contains field \@type with type URL. See 'additional'. Core.HashMap Core.Text Core.Value -> GoogleCloudFunctionsV2OperationMetadata_RequestResource newGoogleCloudFunctionsV2OperationMetadata_RequestResource additional = GoogleCloudFunctionsV2OperationMetadata_RequestResource { additional = additional } instance Core.FromJSON GoogleCloudFunctionsV2OperationMetadata_RequestResource where parseJSON = Core.withObject "GoogleCloudFunctionsV2OperationMetadata_RequestResource" ( \o -> GoogleCloudFunctionsV2OperationMetadata_RequestResource Core.<$> (Core.parseJSONObject o) ) instance Core.ToJSON GoogleCloudFunctionsV2OperationMetadata_RequestResource where toJSON GoogleCloudFunctionsV2OperationMetadata_RequestResource {..} = Core.toJSON additional -- | Each Stage of the deployment process -- -- /See:/ 'newGoogleCloudFunctionsV2Stage' smart constructor. data GoogleCloudFunctionsV2Stage = GoogleCloudFunctionsV2Stage { -- | Message describing the Stage message :: (Core.Maybe Core.Text), -- | Name of the Stage. This will be unique for each Stage. name :: (Core.Maybe GoogleCloudFunctionsV2Stage_Name), -- | Resource of the Stage resource :: (Core.Maybe Core.Text), -- | Link to the current Stage resource resourceUri :: (Core.Maybe Core.Text), -- | Current state of the Stage state :: (Core.Maybe GoogleCloudFunctionsV2Stage_State), -- | State messages from the current Stage. stateMessages :: (Core.Maybe [GoogleCloudFunctionsV2StateMessage]) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'GoogleCloudFunctionsV2Stage' with the minimum fields required to make a request. newGoogleCloudFunctionsV2Stage :: GoogleCloudFunctionsV2Stage newGoogleCloudFunctionsV2Stage = GoogleCloudFunctionsV2Stage { message = Core.Nothing, name = Core.Nothing, resource = Core.Nothing, resourceUri = Core.Nothing, state = Core.Nothing, stateMessages = Core.Nothing } instance Core.FromJSON GoogleCloudFunctionsV2Stage where parseJSON = Core.withObject "GoogleCloudFunctionsV2Stage" ( \o -> GoogleCloudFunctionsV2Stage Core.<$> (o Core..:? "message") Core.<*> (o Core..:? "name") Core.<*> (o Core..:? "resource") Core.<*> (o Core..:? "resourceUri") Core.<*> (o Core..:? "state") Core.<*> (o Core..:? "stateMessages") ) instance Core.ToJSON GoogleCloudFunctionsV2Stage where toJSON GoogleCloudFunctionsV2Stage {..} = Core.object ( Core.catMaybes [ ("message" Core..=) Core.<$> message, ("name" Core..=) Core.<$> name, ("resource" Core..=) Core.<$> resource, ("resourceUri" Core..=) Core.<$> resourceUri, ("state" Core..=) Core.<$> state, ("stateMessages" Core..=) Core.<$> stateMessages ] ) -- | Informational messages about the state of the Cloud Function or Operation. -- -- /See:/ 'newGoogleCloudFunctionsV2StateMessage' smart constructor. data GoogleCloudFunctionsV2StateMessage = GoogleCloudFunctionsV2StateMessage { -- | The message. message :: (Core.Maybe Core.Text), -- | Severity of the state message. severity :: (Core.Maybe GoogleCloudFunctionsV2StateMessage_Severity), -- | One-word CamelCase type of the state message. type' :: (Core.Maybe Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'GoogleCloudFunctionsV2StateMessage' with the minimum fields required to make a request. newGoogleCloudFunctionsV2StateMessage :: GoogleCloudFunctionsV2StateMessage newGoogleCloudFunctionsV2StateMessage = GoogleCloudFunctionsV2StateMessage { message = Core.Nothing, severity = Core.Nothing, type' = Core.Nothing } instance Core.FromJSON GoogleCloudFunctionsV2StateMessage where parseJSON = Core.withObject "GoogleCloudFunctionsV2StateMessage" ( \o -> GoogleCloudFunctionsV2StateMessage Core.<$> (o Core..:? "message") Core.<*> (o Core..:? "severity") Core.<*> (o Core..:? "type") ) instance Core.ToJSON GoogleCloudFunctionsV2StateMessage where toJSON GoogleCloudFunctionsV2StateMessage {..} = Core.object ( Core.catMaybes [ ("message" Core..=) Core.<$> message, ("severity" Core..=) Core.<$> severity, ("type" Core..=) Core.<$> type' ] ) -- | Response for the @ListFunctions@ method. -- -- /See:/ 'newListFunctionsResponse' smart constructor. data ListFunctionsResponse = ListFunctionsResponse { -- | The functions that match the request. functions :: (Core.Maybe [Function]), -- | A token, which can be sent as @page_token@ to retrieve the next page. If this field is omitted, there are no subsequent pages. nextPageToken :: (Core.Maybe Core.Text), -- | Locations that could not be reached. The response does not include any functions from these locations. unreachable :: (Core.Maybe [Core.Text]) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'ListFunctionsResponse' with the minimum fields required to make a request. newListFunctionsResponse :: ListFunctionsResponse newListFunctionsResponse = ListFunctionsResponse { functions = Core.Nothing, nextPageToken = Core.Nothing, unreachable = Core.Nothing } instance Core.FromJSON ListFunctionsResponse where parseJSON = Core.withObject "ListFunctionsResponse" ( \o -> ListFunctionsResponse Core.<$> (o Core..:? "functions") Core.<*> (o Core..:? "nextPageToken") Core.<*> (o Core..:? "unreachable") ) instance Core.ToJSON ListFunctionsResponse where toJSON ListFunctionsResponse {..} = Core.object ( Core.catMaybes [ ("functions" Core..=) Core.<$> functions, ("nextPageToken" Core..=) Core.<$> nextPageToken, ("unreachable" Core..=) Core.<$> unreachable ] ) -- | The response message for Locations.ListLocations. -- -- /See:/ 'newListLocationsResponse' smart constructor. data ListLocationsResponse = ListLocationsResponse { -- | A list of locations that matches the specified filter in the request. locations :: (Core.Maybe [Location]), -- | The standard List next-page token. nextPageToken :: (Core.Maybe Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'ListLocationsResponse' with the minimum fields required to make a request. newListLocationsResponse :: ListLocationsResponse newListLocationsResponse = ListLocationsResponse { locations = Core.Nothing, nextPageToken = Core.Nothing } instance Core.FromJSON ListLocationsResponse where parseJSON = Core.withObject "ListLocationsResponse" ( \o -> ListLocationsResponse Core.<$> (o Core..:? "locations") Core.<*> (o Core..:? "nextPageToken") ) instance Core.ToJSON ListLocationsResponse where toJSON ListLocationsResponse {..} = Core.object ( Core.catMaybes [ ("locations" Core..=) Core.<$> locations, ("nextPageToken" Core..=) Core.<$> nextPageToken ] ) -- | The response message for Operations.ListOperations. -- -- /See:/ 'newListOperationsResponse' smart constructor. data ListOperationsResponse = ListOperationsResponse { -- | The standard List next-page token. nextPageToken :: (Core.Maybe Core.Text), -- | A list of operations that matches the specified filter in the request. operations :: (Core.Maybe [Operation]) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'ListOperationsResponse' with the minimum fields required to make a request. newListOperationsResponse :: ListOperationsResponse newListOperationsResponse = ListOperationsResponse { nextPageToken = Core.Nothing, operations = Core.Nothing } instance Core.FromJSON ListOperationsResponse where parseJSON = Core.withObject "ListOperationsResponse" ( \o -> ListOperationsResponse Core.<$> (o Core..:? "nextPageToken") Core.<*> (o Core..:? "operations") ) instance Core.ToJSON ListOperationsResponse where toJSON ListOperationsResponse {..} = Core.object ( Core.catMaybes [ ("nextPageToken" Core..=) Core.<$> nextPageToken, ("operations" Core..=) Core.<$> operations ] ) -- | Response for the @ListRuntimes@ method. -- -- /See:/ 'newListRuntimesResponse' smart constructor. newtype ListRuntimesResponse = ListRuntimesResponse { -- | The runtimes that match the request. runtimes :: (Core.Maybe [Runtime]) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'ListRuntimesResponse' with the minimum fields required to make a request. newListRuntimesResponse :: ListRuntimesResponse newListRuntimesResponse = ListRuntimesResponse {runtimes = Core.Nothing} instance Core.FromJSON ListRuntimesResponse where parseJSON = Core.withObject "ListRuntimesResponse" (\o -> ListRuntimesResponse Core.<$> (o Core..:? "runtimes")) instance Core.ToJSON ListRuntimesResponse where toJSON ListRuntimesResponse {..} = Core.object (Core.catMaybes [("runtimes" Core..=) Core.<$> runtimes]) -- | A resource that represents a Google Cloud location. -- -- /See:/ 'newLocation' smart constructor. data Location = Location { -- | The friendly name for this location, typically a nearby city name. For example, \"Tokyo\". displayName :: (Core.Maybe Core.Text), -- | Cross-service attributes for the location. For example {\"cloud.googleapis.com\/region\": \"us-east1\"} labels :: (Core.Maybe Location_Labels), -- | The canonical id for this location. For example: @\"us-east1\"@. locationId :: (Core.Maybe Core.Text), -- | Service-specific metadata. For example the available capacity at the given location. metadata :: (Core.Maybe Location_Metadata), -- | Resource name for the location, which may vary between implementations. For example: @\"projects\/example-project\/locations\/us-east1\"@ name :: (Core.Maybe Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'Location' with the minimum fields required to make a request. newLocation :: Location newLocation = Location { displayName = Core.Nothing, labels = Core.Nothing, locationId = Core.Nothing, metadata = Core.Nothing, name = Core.Nothing } instance Core.FromJSON Location where parseJSON = Core.withObject "Location" ( \o -> Location Core.<$> (o Core..:? "displayName") Core.<*> (o Core..:? "labels") Core.<*> (o Core..:? "locationId") Core.<*> (o Core..:? "metadata") Core.<*> (o Core..:? "name") ) instance Core.ToJSON Location where toJSON Location {..} = Core.object ( Core.catMaybes [ ("displayName" Core..=) Core.<$> displayName, ("labels" Core..=) Core.<$> labels, ("locationId" Core..=) Core.<$> locationId, ("metadata" Core..=) Core.<$> metadata, ("name" Core..=) Core.<$> name ] ) -- | Cross-service attributes for the location. For example {\"cloud.googleapis.com\/region\": \"us-east1\"} -- -- /See:/ 'newLocation_Labels' smart constructor. newtype Location_Labels = Location_Labels { additional :: (Core.HashMap Core.Text Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'Location_Labels' with the minimum fields required to make a request. newLocation_Labels :: -- | See 'additional'. Core.HashMap Core.Text Core.Text -> Location_Labels newLocation_Labels additional = Location_Labels {additional = additional} instance Core.FromJSON Location_Labels where parseJSON = Core.withObject "Location_Labels" (\o -> Location_Labels Core.<$> (Core.parseJSONObject o)) instance Core.ToJSON Location_Labels where toJSON Location_Labels {..} = Core.toJSON additional -- | Service-specific metadata. For example the available capacity at the given location. -- -- /See:/ 'newLocation_Metadata' smart constructor. newtype Location_Metadata = Location_Metadata { -- | Properties of the object. Contains field \@type with type URL. additional :: (Core.HashMap Core.Text Core.Value) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'Location_Metadata' with the minimum fields required to make a request. newLocation_Metadata :: -- | Properties of the object. Contains field \@type with type URL. See 'additional'. Core.HashMap Core.Text Core.Value -> Location_Metadata newLocation_Metadata additional = Location_Metadata {additional = additional} instance Core.FromJSON Location_Metadata where parseJSON = Core.withObject "Location_Metadata" (\o -> Location_Metadata Core.<$> (Core.parseJSONObject o)) instance Core.ToJSON Location_Metadata where toJSON Location_Metadata {..} = Core.toJSON additional -- | Security patches are only applied when a function is redeployed. -- -- /See:/ 'newOnDeployUpdatePolicy' smart constructor. newtype OnDeployUpdatePolicy = OnDeployUpdatePolicy { -- | Output only. contains the runtime version which was used during latest function deployment. runtimeVersion :: (Core.Maybe Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'OnDeployUpdatePolicy' with the minimum fields required to make a request. newOnDeployUpdatePolicy :: OnDeployUpdatePolicy newOnDeployUpdatePolicy = OnDeployUpdatePolicy {runtimeVersion = Core.Nothing} instance Core.FromJSON OnDeployUpdatePolicy where parseJSON = Core.withObject "OnDeployUpdatePolicy" ( \o -> OnDeployUpdatePolicy Core.<$> (o Core..:? "runtimeVersion") ) instance Core.ToJSON OnDeployUpdatePolicy where toJSON OnDeployUpdatePolicy {..} = Core.object ( Core.catMaybes [("runtimeVersion" Core..=) Core.<$> runtimeVersion] ) -- | This resource represents a long-running operation that is the result of a network API call. -- -- /See:/ 'newOperation' smart constructor. data Operation = Operation { -- | If the value is @false@, it means the operation is still in progress. If @true@, the operation is completed, and either @error@ or @response@ is available. done :: (Core.Maybe Core.Bool), -- | The error result of the operation in case of failure or cancellation. error :: (Core.Maybe Status), -- | Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any. metadata :: (Core.Maybe Operation_Metadata), -- | The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the @name@ should be a resource name ending with @operations\/{unique_id}@. name :: (Core.Maybe Core.Text), -- | The normal, successful response of the operation. If the original method returns no data on success, such as @Delete@, the response is @google.protobuf.Empty@. If the original method is standard @Get@\/@Create@\/@Update@, the response should be the resource. For other methods, the response should have the type @XxxResponse@, where @Xxx@ is the original method name. For example, if the original method name is @TakeSnapshot()@, the inferred response type is @TakeSnapshotResponse@. response :: (Core.Maybe Operation_Response) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'Operation' with the minimum fields required to make a request. newOperation :: Operation newOperation = Operation { done = Core.Nothing, error = Core.Nothing, metadata = Core.Nothing, name = Core.Nothing, response = Core.Nothing } instance Core.FromJSON Operation where parseJSON = Core.withObject "Operation" ( \o -> Operation Core.<$> (o Core..:? "done") Core.<*> (o Core..:? "error") Core.<*> (o Core..:? "metadata") Core.<*> (o Core..:? "name") Core.<*> (o Core..:? "response") ) instance Core.ToJSON Operation where toJSON Operation {..} = Core.object ( Core.catMaybes [ ("done" Core..=) Core.<$> done, ("error" Core..=) Core.<$> error, ("metadata" Core..=) Core.<$> metadata, ("name" Core..=) Core.<$> name, ("response" Core..=) Core.<$> response ] ) -- | Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any. -- -- /See:/ 'newOperation_Metadata' smart constructor. newtype Operation_Metadata = Operation_Metadata { -- | Properties of the object. Contains field \@type with type URL. additional :: (Core.HashMap Core.Text Core.Value) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'Operation_Metadata' with the minimum fields required to make a request. newOperation_Metadata :: -- | Properties of the object. Contains field \@type with type URL. See 'additional'. Core.HashMap Core.Text Core.Value -> Operation_Metadata newOperation_Metadata additional = Operation_Metadata {additional = additional} instance Core.FromJSON Operation_Metadata where parseJSON = Core.withObject "Operation_Metadata" (\o -> Operation_Metadata Core.<$> (Core.parseJSONObject o)) instance Core.ToJSON Operation_Metadata where toJSON Operation_Metadata {..} = Core.toJSON additional -- | The normal, successful response of the operation. If the original method returns no data on success, such as @Delete@, the response is @google.protobuf.Empty@. If the original method is standard @Get@\/@Create@\/@Update@, the response should be the resource. For other methods, the response should have the type @XxxResponse@, where @Xxx@ is the original method name. For example, if the original method name is @TakeSnapshot()@, the inferred response type is @TakeSnapshotResponse@. -- -- /See:/ 'newOperation_Response' smart constructor. newtype Operation_Response = Operation_Response { -- | Properties of the object. Contains field \@type with type URL. additional :: (Core.HashMap Core.Text Core.Value) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'Operation_Response' with the minimum fields required to make a request. newOperation_Response :: -- | Properties of the object. Contains field \@type with type URL. See 'additional'. Core.HashMap Core.Text Core.Value -> Operation_Response newOperation_Response additional = Operation_Response {additional = additional} instance Core.FromJSON Operation_Response where parseJSON = Core.withObject "Operation_Response" (\o -> Operation_Response Core.<$> (Core.parseJSONObject o)) instance Core.ToJSON Operation_Response where toJSON Operation_Response {..} = Core.toJSON additional -- | Metadata describing an Operation -- -- /See:/ 'newOperationMetadataV1' smart constructor. data OperationMetadataV1 = OperationMetadataV1 { -- | The Cloud Build ID of the function created or updated by an API call. This field is only populated for Create and Update operations. buildId :: (Core.Maybe Core.Text), -- | The Cloud Build Name of the function deployment. This field is only populated for Create and Update operations. @projects\/\/locations\/\/builds\/@. buildName :: (Core.Maybe Core.Text), -- | The original request that started the operation. request' :: (Core.Maybe OperationMetadataV1_Request), -- | An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments. sourceToken :: (Core.Maybe Core.Text), -- | Target of the operation - for example @projects\/project-1\/locations\/region-1\/functions\/function-1@ target :: (Core.Maybe Core.Text), -- | Type of operation. type' :: (Core.Maybe OperationMetadataV1_Type), -- | The last update timestamp of the operation. updateTime :: (Core.Maybe Core.DateTime), -- | Version id of the function created or updated by an API call. This field is only populated for Create and Update operations. versionId :: (Core.Maybe Core.Int64) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'OperationMetadataV1' with the minimum fields required to make a request. newOperationMetadataV1 :: OperationMetadataV1 newOperationMetadataV1 = OperationMetadataV1 { buildId = Core.Nothing, buildName = Core.Nothing, request' = Core.Nothing, sourceToken = Core.Nothing, target = Core.Nothing, type' = Core.Nothing, updateTime = Core.Nothing, versionId = Core.Nothing } instance Core.FromJSON OperationMetadataV1 where parseJSON = Core.withObject "OperationMetadataV1" ( \o -> OperationMetadataV1 Core.<$> (o Core..:? "buildId") Core.<*> (o Core..:? "buildName") Core.<*> (o Core..:? "request") Core.<*> (o Core..:? "sourceToken") Core.<*> (o Core..:? "target") Core.<*> (o Core..:? "type") Core.<*> (o Core..:? "updateTime") Core.<*> (o Core..:? "versionId" Core.<&> Core.fmap Core.fromAsText) ) instance Core.ToJSON OperationMetadataV1 where toJSON OperationMetadataV1 {..} = Core.object ( Core.catMaybes [ ("buildId" Core..=) Core.<$> buildId, ("buildName" Core..=) Core.<$> buildName, ("request" Core..=) Core.<$> request', ("sourceToken" Core..=) Core.<$> sourceToken, ("target" Core..=) Core.<$> target, ("type" Core..=) Core.<$> type', ("updateTime" Core..=) Core.<$> updateTime, ("versionId" Core..=) Core.. Core.AsText Core.<$> versionId ] ) -- | The original request that started the operation. -- -- /See:/ 'newOperationMetadataV1_Request' smart constructor. newtype OperationMetadataV1_Request = OperationMetadataV1_Request { -- | Properties of the object. Contains field \@type with type URL. additional :: (Core.HashMap Core.Text Core.Value) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'OperationMetadataV1_Request' with the minimum fields required to make a request. newOperationMetadataV1_Request :: -- | Properties of the object. Contains field \@type with type URL. See 'additional'. Core.HashMap Core.Text Core.Value -> OperationMetadataV1_Request newOperationMetadataV1_Request additional = OperationMetadataV1_Request {additional = additional} instance Core.FromJSON OperationMetadataV1_Request where parseJSON = Core.withObject "OperationMetadataV1_Request" ( \o -> OperationMetadataV1_Request Core.<$> (Core.parseJSONObject o) ) instance Core.ToJSON OperationMetadataV1_Request where toJSON OperationMetadataV1_Request {..} = Core.toJSON additional -- | 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 . __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 . -- -- /See:/ 'newPolicy' smart constructor. data Policy = Policy { -- | Specifies cloud audit logging configuration for this policy. auditConfigs :: (Core.Maybe [AuditConfig]), -- | 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 -- . version :: (Core.Maybe Core.Int32) } 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 { auditConfigs = Core.Nothing, bindings = Core.Nothing, etag = Core.Nothing, version = Core.Nothing } instance Core.FromJSON Policy where parseJSON = Core.withObject "Policy" ( \o -> Policy Core.<$> (o Core..:? "auditConfigs") Core.<*> (o Core..:? "bindings") Core.<*> (o Core..:? "etag") Core.<*> (o Core..:? "version") ) instance Core.ToJSON Policy where toJSON Policy {..} = Core.object ( Core.catMaybes [ ("auditConfigs" Core..=) Core.<$> auditConfigs, ("bindings" Core..=) Core.<$> bindings, ("etag" Core..=) Core.<$> etag, ("version" Core..=) Core.<$> version ] ) -- | Request for the @RedirectFunctionUpgradeTraffic@ method. -- -- /See:/ 'newRedirectFunctionUpgradeTrafficRequest' smart constructor. data RedirectFunctionUpgradeTrafficRequest = RedirectFunctionUpgradeTrafficRequest deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'RedirectFunctionUpgradeTrafficRequest' with the minimum fields required to make a request. newRedirectFunctionUpgradeTrafficRequest :: RedirectFunctionUpgradeTrafficRequest newRedirectFunctionUpgradeTrafficRequest = RedirectFunctionUpgradeTrafficRequest instance Core.FromJSON RedirectFunctionUpgradeTrafficRequest where parseJSON = Core.withObject "RedirectFunctionUpgradeTrafficRequest" (\o -> Core.pure RedirectFunctionUpgradeTrafficRequest) instance Core.ToJSON RedirectFunctionUpgradeTrafficRequest where toJSON = Core.const Core.emptyObject -- | Location of the source in a Google Cloud Source Repository. -- -- /See:/ 'newRepoSource' smart constructor. data RepoSource = RepoSource { -- | Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https:\/\/github.com\/google\/re2\/wiki\/Syntax branchName :: (Core.Maybe Core.Text), -- | Explicit commit SHA to build. commitSha :: (Core.Maybe Core.Text), -- | Directory, relative to the source root, in which to run the build. This must be a relative path. If a step\'s @dir@ is specified and is an absolute path, this value is ignored for that step\'s execution. eg. helloworld (no leading slash allowed) dir :: (Core.Maybe Core.Text), -- | ID of the project that owns the Cloud Source Repository. If omitted, the project ID requesting the build is assumed. projectId :: (Core.Maybe Core.Text), -- | Name of the Cloud Source Repository. repoName :: (Core.Maybe Core.Text), -- | Regex matching tags to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https:\/\/github.com\/google\/re2\/wiki\/Syntax tagName :: (Core.Maybe Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'RepoSource' with the minimum fields required to make a request. newRepoSource :: RepoSource newRepoSource = RepoSource { branchName = Core.Nothing, commitSha = Core.Nothing, dir = Core.Nothing, projectId = Core.Nothing, repoName = Core.Nothing, tagName = Core.Nothing } instance Core.FromJSON RepoSource where parseJSON = Core.withObject "RepoSource" ( \o -> RepoSource Core.<$> (o Core..:? "branchName") Core.<*> (o Core..:? "commitSha") Core.<*> (o Core..:? "dir") Core.<*> (o Core..:? "projectId") Core.<*> (o Core..:? "repoName") Core.<*> (o Core..:? "tagName") ) instance Core.ToJSON RepoSource where toJSON RepoSource {..} = Core.object ( Core.catMaybes [ ("branchName" Core..=) Core.<$> branchName, ("commitSha" Core..=) Core.<$> commitSha, ("dir" Core..=) Core.<$> dir, ("projectId" Core..=) Core.<$> projectId, ("repoName" Core..=) Core.<$> repoName, ("tagName" Core..=) Core.<$> tagName ] ) -- | Request for the @RollbackFunctionUpgradeTraffic@ method. -- -- /See:/ 'newRollbackFunctionUpgradeTrafficRequest' smart constructor. data RollbackFunctionUpgradeTrafficRequest = RollbackFunctionUpgradeTrafficRequest deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'RollbackFunctionUpgradeTrafficRequest' with the minimum fields required to make a request. newRollbackFunctionUpgradeTrafficRequest :: RollbackFunctionUpgradeTrafficRequest newRollbackFunctionUpgradeTrafficRequest = RollbackFunctionUpgradeTrafficRequest instance Core.FromJSON RollbackFunctionUpgradeTrafficRequest where parseJSON = Core.withObject "RollbackFunctionUpgradeTrafficRequest" (\o -> Core.pure RollbackFunctionUpgradeTrafficRequest) instance Core.ToJSON RollbackFunctionUpgradeTrafficRequest where toJSON = Core.const Core.emptyObject -- | Describes a runtime and any special information (e.g., deprecation status) related to it. -- -- /See:/ 'newRuntime' smart constructor. data Runtime = Runtime { -- | Decommission date for the runtime. decommissionDate :: (Core.Maybe Date), -- | Deprecation date for the runtime. deprecationDate :: (Core.Maybe Date), -- | The user facing name, eg \'Go 1.13\', \'Node.js 12\', etc. displayName :: (Core.Maybe Core.Text), -- | The environment for the runtime. environment :: (Core.Maybe Runtime_Environment), -- | The name of the runtime, e.g., \'go113\', \'nodejs12\', etc. name :: (Core.Maybe Core.Text), -- | The stage of life this runtime is in, e.g., BETA, GA, etc. stage :: (Core.Maybe Runtime_Stage), -- | Warning messages, e.g., a deprecation warning. warnings :: (Core.Maybe [Core.Text]) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'Runtime' with the minimum fields required to make a request. newRuntime :: Runtime newRuntime = Runtime { decommissionDate = Core.Nothing, deprecationDate = Core.Nothing, displayName = Core.Nothing, environment = Core.Nothing, name = Core.Nothing, stage = Core.Nothing, warnings = Core.Nothing } instance Core.FromJSON Runtime where parseJSON = Core.withObject "Runtime" ( \o -> Runtime Core.<$> (o Core..:? "decommissionDate") Core.<*> (o Core..:? "deprecationDate") Core.<*> (o Core..:? "displayName") Core.<*> (o Core..:? "environment") Core.<*> (o Core..:? "name") Core.<*> (o Core..:? "stage") Core.<*> (o Core..:? "warnings") ) instance Core.ToJSON Runtime where toJSON Runtime {..} = Core.object ( Core.catMaybes [ ("decommissionDate" Core..=) Core.<$> decommissionDate, ("deprecationDate" Core..=) Core.<$> deprecationDate, ("displayName" Core..=) Core.<$> displayName, ("environment" Core..=) Core.<$> environment, ("name" Core..=) Core.<$> name, ("stage" Core..=) Core.<$> stage, ("warnings" Core..=) Core.<$> warnings ] ) -- | Configuration for a secret environment variable. It has the information necessary to fetch the secret value from secret manager and expose it as an environment variable. -- -- /See:/ 'newSecretEnvVar' smart constructor. data SecretEnvVar = SecretEnvVar { -- | Name of the environment variable. key :: (Core.Maybe Core.Text), -- | Project identifier (preferably project number but can also be the project ID) of the project that contains the secret. If not set, it is assumed that the secret is in the same project as the function. projectId :: (Core.Maybe Core.Text), -- | Name of the secret in secret manager (not the full resource name). secret :: (Core.Maybe Core.Text), -- | Version of the secret (version number or the string \'latest\'). It is recommended to use a numeric version for secret environment variables as any updates to the secret value is not reflected until new instances start. version :: (Core.Maybe Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'SecretEnvVar' with the minimum fields required to make a request. newSecretEnvVar :: SecretEnvVar newSecretEnvVar = SecretEnvVar { key = Core.Nothing, projectId = Core.Nothing, secret = Core.Nothing, version = Core.Nothing } instance Core.FromJSON SecretEnvVar where parseJSON = Core.withObject "SecretEnvVar" ( \o -> SecretEnvVar Core.<$> (o Core..:? "key") Core.<*> (o Core..:? "projectId") Core.<*> (o Core..:? "secret") Core.<*> (o Core..:? "version") ) instance Core.ToJSON SecretEnvVar where toJSON SecretEnvVar {..} = Core.object ( Core.catMaybes [ ("key" Core..=) Core.<$> key, ("projectId" Core..=) Core.<$> projectId, ("secret" Core..=) Core.<$> secret, ("version" Core..=) Core.<$> version ] ) -- | Configuration for a single version. -- -- /See:/ 'newSecretVersion' smart constructor. data SecretVersion = SecretVersion { -- | Relative path of the file under the mount path where the secret value for this version will be fetched and made available. For example, setting the mount_path as \'\/etc\/secrets\' and path as @secret_foo@ would mount the secret value file at @\/etc\/secrets\/secret_foo@. path :: (Core.Maybe Core.Text), -- | Version of the secret (version number or the string \'latest\'). It is preferable to use @latest@ version with secret volumes as secret value changes are reflected immediately. version :: (Core.Maybe Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'SecretVersion' with the minimum fields required to make a request. newSecretVersion :: SecretVersion newSecretVersion = SecretVersion {path = Core.Nothing, version = Core.Nothing} instance Core.FromJSON SecretVersion where parseJSON = Core.withObject "SecretVersion" ( \o -> SecretVersion Core.<$> (o Core..:? "path") Core.<*> (o Core..:? "version") ) instance Core.ToJSON SecretVersion where toJSON SecretVersion {..} = Core.object ( Core.catMaybes [ ("path" Core..=) Core.<$> path, ("version" Core..=) Core.<$> version ] ) -- | Configuration for a secret volume. It has the information necessary to fetch the secret value from secret manager and make it available as files mounted at the requested paths within the application container. -- -- /See:/ 'newSecretVolume' smart constructor. data SecretVolume = SecretVolume { -- | The path within the container to mount the secret volume. For example, setting the mount_path as @\/etc\/secrets@ would mount the secret value files under the @\/etc\/secrets@ directory. This directory will also be completely shadowed and unavailable to mount any other secrets. Recommended mount path: \/etc\/secrets mountPath :: (Core.Maybe Core.Text), -- | Project identifier (preferably project number but can also be the project ID) of the project that contains the secret. If not set, it is assumed that the secret is in the same project as the function. projectId :: (Core.Maybe Core.Text), -- | Name of the secret in secret manager (not the full resource name). secret :: (Core.Maybe Core.Text), -- | List of secret versions to mount for this secret. If empty, the @latest@ version of the secret will be made available in a file named after the secret under the mount point. versions :: (Core.Maybe [SecretVersion]) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'SecretVolume' with the minimum fields required to make a request. newSecretVolume :: SecretVolume newSecretVolume = SecretVolume { mountPath = Core.Nothing, projectId = Core.Nothing, secret = Core.Nothing, versions = Core.Nothing } instance Core.FromJSON SecretVolume where parseJSON = Core.withObject "SecretVolume" ( \o -> SecretVolume Core.<$> (o Core..:? "mountPath") Core.<*> (o Core..:? "projectId") Core.<*> (o Core..:? "secret") Core.<*> (o Core..:? "versions") ) instance Core.ToJSON SecretVolume where toJSON SecretVolume {..} = Core.object ( Core.catMaybes [ ("mountPath" Core..=) Core.<$> mountPath, ("projectId" Core..=) Core.<$> projectId, ("secret" Core..=) Core.<$> secret, ("versions" Core..=) Core.<$> versions ] ) -- | Describes the Service being deployed. Currently Supported : Cloud Run (fully managed). -- -- /See:/ 'newServiceConfig' smart constructor. data ServiceConfig = ServiceConfig { -- | Whether 100% of traffic is routed to the latest revision. On CreateFunction and UpdateFunction, when set to true, the revision being deployed will serve 100% of traffic, ignoring any traffic split settings, if any. On GetFunction, true will be returned if the latest revision is serving 100% of traffic. allTrafficOnLatestRevision :: (Core.Maybe Core.Bool), -- | The number of CPUs used in a single container instance. Default value is calculated from available memory. Supports the same values as Cloud Run, see https:\/\/cloud.google.com\/run\/docs\/reference\/rest\/v1\/Container#resourcerequirements Example: \"1\" indicates 1 vCPU availableCpu :: (Core.Maybe Core.Text), -- | The amount of memory available for a function. Defaults to 256M. Supported units are k, M, G, Mi, Gi. If no unit is supplied the value is interpreted as bytes. See https:\/\/github.com\/kubernetes\/kubernetes\/blob\/master\/staging\/src\/k8s.io\/apimachinery\/pkg\/api\/resource\/quantity.go a full description. availableMemory :: (Core.Maybe Core.Text), -- | Optional. The binary authorization policy to be checked when deploying the Cloud Run service. binaryAuthorizationPolicy :: (Core.Maybe Core.Text), -- | Environment variables that shall be available during function execution. environmentVariables :: (Core.Maybe ServiceConfig_EnvironmentVariables), -- | The ingress settings for the function, controlling what traffic can reach it. ingressSettings :: (Core.Maybe ServiceConfig_IngressSettings), -- | The limit on the maximum number of function instances that may coexist at a given time. In some cases, such as rapid traffic surges, Cloud Functions may, for a short period of time, create more instances than the specified max instances limit. If your function cannot tolerate this temporary behavior, you may want to factor in a safety margin and set a lower max instances value than your function can tolerate. See the Guide for more details. maxInstanceCount :: (Core.Maybe Core.Int32), -- | Sets the maximum number of concurrent requests that each instance can receive. Defaults to 1. maxInstanceRequestConcurrency :: (Core.Maybe Core.Int32), -- | The limit on the minimum number of function instances that may coexist at a given time. Function instances are kept in idle state for a short period after they finished executing the request to reduce cold start time for subsequent requests. Setting a minimum instance count will ensure that the given number of instances are kept running in idle state always. This can help with cold start times when jump in incoming request count occurs after the idle instance would have been stopped in the default case. minInstanceCount :: (Core.Maybe Core.Int32), -- | Output only. The name of service revision. revision :: (Core.Maybe Core.Text), -- | Secret environment variables configuration. secretEnvironmentVariables :: (Core.Maybe [SecretEnvVar]), -- | Secret volumes configuration. secretVolumes :: (Core.Maybe [SecretVolume]), -- | Security level configure whether the function only accepts https. This configuration is only applicable to 1st Gen functions with Http trigger. By default https is optional for 1st Gen functions; 2nd Gen functions are https ONLY. securityLevel :: (Core.Maybe ServiceConfig_SecurityLevel), -- | Output only. Name of the service associated with a Function. The format of this field is @projects\/{project}\/locations\/{region}\/services\/{service}@ service :: (Core.Maybe Core.Text), -- | The email of the service\'s service account. If empty, defaults to @{project_number}-compute\@developer.gserviceaccount.com@. serviceAccountEmail :: (Core.Maybe Core.Text), -- | The function execution timeout. Execution is considered failed and can be terminated if the function is not completed at the end of the timeout period. Defaults to 60 seconds. timeoutSeconds :: (Core.Maybe Core.Int32), -- | Output only. URI of the Service deployed. uri :: (Core.Maybe Core.Text), -- | The Serverless VPC Access connector that this cloud function can connect to. The format of this field is @projects\/*\/locations\/*\/connectors\/*@. vpcConnector :: (Core.Maybe Core.Text), -- | The egress settings for the connector, controlling what traffic is diverted through it. vpcConnectorEgressSettings :: (Core.Maybe ServiceConfig_VpcConnectorEgressSettings) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'ServiceConfig' with the minimum fields required to make a request. newServiceConfig :: ServiceConfig newServiceConfig = ServiceConfig { allTrafficOnLatestRevision = Core.Nothing, availableCpu = Core.Nothing, availableMemory = Core.Nothing, binaryAuthorizationPolicy = Core.Nothing, environmentVariables = Core.Nothing, ingressSettings = Core.Nothing, maxInstanceCount = Core.Nothing, maxInstanceRequestConcurrency = Core.Nothing, minInstanceCount = Core.Nothing, revision = Core.Nothing, secretEnvironmentVariables = Core.Nothing, secretVolumes = Core.Nothing, securityLevel = Core.Nothing, service = Core.Nothing, serviceAccountEmail = Core.Nothing, timeoutSeconds = Core.Nothing, uri = Core.Nothing, vpcConnector = Core.Nothing, vpcConnectorEgressSettings = Core.Nothing } instance Core.FromJSON ServiceConfig where parseJSON = Core.withObject "ServiceConfig" ( \o -> ServiceConfig Core.<$> (o Core..:? "allTrafficOnLatestRevision") Core.<*> (o Core..:? "availableCpu") Core.<*> (o Core..:? "availableMemory") Core.<*> (o Core..:? "binaryAuthorizationPolicy") Core.<*> (o Core..:? "environmentVariables") Core.<*> (o Core..:? "ingressSettings") Core.<*> (o Core..:? "maxInstanceCount") Core.<*> (o Core..:? "maxInstanceRequestConcurrency") Core.<*> (o Core..:? "minInstanceCount") Core.<*> (o Core..:? "revision") Core.<*> (o Core..:? "secretEnvironmentVariables") Core.<*> (o Core..:? "secretVolumes") Core.<*> (o Core..:? "securityLevel") Core.<*> (o Core..:? "service") Core.<*> (o Core..:? "serviceAccountEmail") Core.<*> (o Core..:? "timeoutSeconds") Core.<*> (o Core..:? "uri") Core.<*> (o Core..:? "vpcConnector") Core.<*> (o Core..:? "vpcConnectorEgressSettings") ) instance Core.ToJSON ServiceConfig where toJSON ServiceConfig {..} = Core.object ( Core.catMaybes [ ("allTrafficOnLatestRevision" Core..=) Core.<$> allTrafficOnLatestRevision, ("availableCpu" Core..=) Core.<$> availableCpu, ("availableMemory" Core..=) Core.<$> availableMemory, ("binaryAuthorizationPolicy" Core..=) Core.<$> binaryAuthorizationPolicy, ("environmentVariables" Core..=) Core.<$> environmentVariables, ("ingressSettings" Core..=) Core.<$> ingressSettings, ("maxInstanceCount" Core..=) Core.<$> maxInstanceCount, ("maxInstanceRequestConcurrency" Core..=) Core.<$> maxInstanceRequestConcurrency, ("minInstanceCount" Core..=) Core.<$> minInstanceCount, ("revision" Core..=) Core.<$> revision, ("secretEnvironmentVariables" Core..=) Core.<$> secretEnvironmentVariables, ("secretVolumes" Core..=) Core.<$> secretVolumes, ("securityLevel" Core..=) Core.<$> securityLevel, ("service" Core..=) Core.<$> service, ("serviceAccountEmail" Core..=) Core.<$> serviceAccountEmail, ("timeoutSeconds" Core..=) Core.<$> timeoutSeconds, ("uri" Core..=) Core.<$> uri, ("vpcConnector" Core..=) Core.<$> vpcConnector, ("vpcConnectorEgressSettings" Core..=) Core.<$> vpcConnectorEgressSettings ] ) -- | Environment variables that shall be available during function execution. -- -- /See:/ 'newServiceConfig_EnvironmentVariables' smart constructor. newtype ServiceConfig_EnvironmentVariables = ServiceConfig_EnvironmentVariables { additional :: (Core.HashMap Core.Text Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'ServiceConfig_EnvironmentVariables' with the minimum fields required to make a request. newServiceConfig_EnvironmentVariables :: -- | See 'additional'. Core.HashMap Core.Text Core.Text -> ServiceConfig_EnvironmentVariables newServiceConfig_EnvironmentVariables additional = ServiceConfig_EnvironmentVariables {additional = additional} instance Core.FromJSON ServiceConfig_EnvironmentVariables where parseJSON = Core.withObject "ServiceConfig_EnvironmentVariables" ( \o -> ServiceConfig_EnvironmentVariables Core.<$> (Core.parseJSONObject o) ) instance Core.ToJSON ServiceConfig_EnvironmentVariables where toJSON ServiceConfig_EnvironmentVariables {..} = Core.toJSON additional -- | Request message for @SetIamPolicy@ method. -- -- /See:/ 'newSetIamPolicyRequest' smart constructor. data 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 Policy), -- | OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: @paths: \"bindings, etag\"@ updateMask :: (Core.Maybe Core.FieldMask) } 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, updateMask = Core.Nothing } instance Core.FromJSON SetIamPolicyRequest where parseJSON = Core.withObject "SetIamPolicyRequest" ( \o -> SetIamPolicyRequest Core.<$> (o Core..:? "policy") Core.<*> (o Core..:? "updateMask") ) instance Core.ToJSON SetIamPolicyRequest where toJSON SetIamPolicyRequest {..} = Core.object ( Core.catMaybes [ ("policy" Core..=) Core.<$> policy, ("updateMask" Core..=) Core.<$> updateMask ] ) -- | Request for the @SetupFunctionUpgradeConfig@ method. -- -- /See:/ 'newSetupFunctionUpgradeConfigRequest' smart constructor. data SetupFunctionUpgradeConfigRequest = SetupFunctionUpgradeConfigRequest deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'SetupFunctionUpgradeConfigRequest' with the minimum fields required to make a request. newSetupFunctionUpgradeConfigRequest :: SetupFunctionUpgradeConfigRequest newSetupFunctionUpgradeConfigRequest = SetupFunctionUpgradeConfigRequest instance Core.FromJSON SetupFunctionUpgradeConfigRequest where parseJSON = Core.withObject "SetupFunctionUpgradeConfigRequest" (\o -> Core.pure SetupFunctionUpgradeConfigRequest) instance Core.ToJSON SetupFunctionUpgradeConfigRequest where toJSON = Core.const Core.emptyObject -- | The location of the function source code. -- -- /See:/ 'newSource' smart constructor. data Source = Source { -- | If provided, get the source from GitHub repository. This option is valid only for GCF 1st Gen function. Example: https:\/\/github.com\/\/\/blob\/\/ gitUri :: (Core.Maybe Core.Text), -- | If provided, get the source from this location in a Cloud Source Repository. repoSource :: (Core.Maybe RepoSource), -- | If provided, get the source from this location in Google Cloud Storage. storageSource :: (Core.Maybe StorageSource) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'Source' with the minimum fields required to make a request. newSource :: Source newSource = Source { gitUri = Core.Nothing, repoSource = Core.Nothing, storageSource = Core.Nothing } instance Core.FromJSON Source where parseJSON = Core.withObject "Source" ( \o -> Source Core.<$> (o Core..:? "gitUri") Core.<*> (o Core..:? "repoSource") Core.<*> (o Core..:? "storageSource") ) instance Core.ToJSON Source where toJSON Source {..} = Core.object ( Core.catMaybes [ ("gitUri" Core..=) Core.<$> gitUri, ("repoSource" Core..=) Core.<$> repoSource, ("storageSource" Core..=) Core.<$> storageSource ] ) -- | Provenance of the source. Ways to find the original source, or verify that some source was used for this build. -- -- /See:/ 'newSourceProvenance' smart constructor. data SourceProvenance = SourceProvenance { -- | A copy of the build\'s @source.git_uri@, if exists, with any commits resolved. gitUri :: (Core.Maybe Core.Text), -- | A copy of the build\'s @source.repo_source@, if exists, with any revisions resolved. resolvedRepoSource :: (Core.Maybe RepoSource), -- | A copy of the build\'s @source.storage_source@, if exists, with any generations resolved. resolvedStorageSource :: (Core.Maybe StorageSource) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'SourceProvenance' with the minimum fields required to make a request. newSourceProvenance :: SourceProvenance newSourceProvenance = SourceProvenance { gitUri = Core.Nothing, resolvedRepoSource = Core.Nothing, resolvedStorageSource = Core.Nothing } instance Core.FromJSON SourceProvenance where parseJSON = Core.withObject "SourceProvenance" ( \o -> SourceProvenance Core.<$> (o Core..:? "gitUri") Core.<*> (o Core..:? "resolvedRepoSource") Core.<*> (o Core..:? "resolvedStorageSource") ) instance Core.ToJSON SourceProvenance where toJSON SourceProvenance {..} = Core.object ( Core.catMaybes [ ("gitUri" Core..=) Core.<$> gitUri, ("resolvedRepoSource" Core..=) Core.<$> resolvedRepoSource, ("resolvedStorageSource" Core..=) Core.<$> resolvedStorageSource ] ) -- | The @Status@ type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by . Each @Status@ message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the . -- -- /See:/ 'newStatus' smart constructor. data Status = Status { -- | The status code, which should be an enum value of google.rpc.Code. code :: (Core.Maybe Core.Int32), -- | A list of messages that carry the error details. There is a common set of message types for APIs to use. details :: (Core.Maybe [Status_DetailsItem]), -- | A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. message :: (Core.Maybe Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'Status' with the minimum fields required to make a request. newStatus :: Status newStatus = Status { code = Core.Nothing, details = Core.Nothing, message = Core.Nothing } instance Core.FromJSON Status where parseJSON = Core.withObject "Status" ( \o -> Status Core.<$> (o Core..:? "code") Core.<*> (o Core..:? "details") Core.<*> (o Core..:? "message") ) instance Core.ToJSON Status where toJSON Status {..} = Core.object ( Core.catMaybes [ ("code" Core..=) Core.<$> code, ("details" Core..=) Core.<$> details, ("message" Core..=) Core.<$> message ] ) -- -- /See:/ 'newStatus_DetailsItem' smart constructor. newtype Status_DetailsItem = Status_DetailsItem { -- | Properties of the object. Contains field \@type with type URL. additional :: (Core.HashMap Core.Text Core.Value) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'Status_DetailsItem' with the minimum fields required to make a request. newStatus_DetailsItem :: -- | Properties of the object. Contains field \@type with type URL. See 'additional'. Core.HashMap Core.Text Core.Value -> Status_DetailsItem newStatus_DetailsItem additional = Status_DetailsItem {additional = additional} instance Core.FromJSON Status_DetailsItem where parseJSON = Core.withObject "Status_DetailsItem" (\o -> Status_DetailsItem Core.<$> (Core.parseJSONObject o)) instance Core.ToJSON Status_DetailsItem where toJSON Status_DetailsItem {..} = Core.toJSON additional -- | Location of the source in an archive file in Google Cloud Storage. -- -- /See:/ 'newStorageSource' smart constructor. data StorageSource = StorageSource { -- | Google Cloud Storage bucket containing the source (see ). bucket :: (Core.Maybe Core.Text), -- | Google Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used. generation :: (Core.Maybe Core.Int64), -- | Google Cloud Storage object containing the source. This object must be a gzipped archive file (@.tar.gz@) containing source to build. object :: (Core.Maybe Core.Text), -- | When the specified storage bucket is a 1st gen function uploard url bucket, this field should be set as the generated upload url for 1st gen deployment. sourceUploadUrl :: (Core.Maybe Core.Text) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'StorageSource' with the minimum fields required to make a request. newStorageSource :: StorageSource newStorageSource = StorageSource { bucket = Core.Nothing, generation = Core.Nothing, object = Core.Nothing, sourceUploadUrl = Core.Nothing } instance Core.FromJSON StorageSource where parseJSON = Core.withObject "StorageSource" ( \o -> StorageSource Core.<$> (o Core..:? "bucket") Core.<*> (o Core..:? "generation" Core.<&> Core.fmap Core.fromAsText) Core.<*> (o Core..:? "object") Core.<*> (o Core..:? "sourceUploadUrl") ) instance Core.ToJSON StorageSource where toJSON StorageSource {..} = Core.object ( Core.catMaybes [ ("bucket" Core..=) Core.<$> bucket, ("generation" Core..=) Core.. Core.AsText Core.<$> generation, ("object" Core..=) Core.<$> object, ("sourceUploadUrl" Core..=) Core.<$> sourceUploadUrl ] ) -- | 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 . 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]) -- | Information related to: * A function\'s eligibility for 1st Gen to 2nd Gen migration. * Current state of migration for function undergoing migration. -- -- /See:/ 'newUpgradeInfo' smart constructor. data UpgradeInfo = UpgradeInfo { -- | Describes the Build step of the function that builds a container to prepare for 2nd gen upgrade. buildConfig :: (Core.Maybe BuildConfig), -- | Describes the Event trigger which has been setup to prepare for 2nd gen upgrade. eventTrigger :: (Core.Maybe EventTrigger), -- | Describes the Cloud Run service which has been setup to prepare for 2nd gen upgrade. serviceConfig :: (Core.Maybe ServiceConfig), -- | UpgradeState of the function upgradeState :: (Core.Maybe UpgradeInfo_UpgradeState) } deriving (Core.Eq, Core.Show, Core.Generic) -- | Creates a value of 'UpgradeInfo' with the minimum fields required to make a request. newUpgradeInfo :: UpgradeInfo newUpgradeInfo = UpgradeInfo { buildConfig = Core.Nothing, eventTrigger = Core.Nothing, serviceConfig = Core.Nothing, upgradeState = Core.Nothing } instance Core.FromJSON UpgradeInfo where parseJSON = Core.withObject "UpgradeInfo" ( \o -> UpgradeInfo Core.<$> (o Core..:? "buildConfig") Core.<*> (o Core..:? "eventTrigger") Core.<*> (o Core..:? "serviceConfig") Core.<*> (o Core..:? "upgradeState") ) instance Core.ToJSON UpgradeInfo where toJSON UpgradeInfo {..} = Core.object ( Core.catMaybes [ ("buildConfig" Core..=) Core.<$> buildConfig, ("eventTrigger" Core..=) Core.<$> eventTrigger, ("serviceConfig" Core..=) Core.<$> serviceConfig, ("upgradeState" Core..=) Core.<$> upgradeState ] )