📄 Source: ServiceConfig.php
<?php
/*
* Copyright 2014 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
namespace Google\Service\CloudFunctions;
class ServiceConfig extends \Google\Collection
{
/**
* Unspecified.
*/
public const DIRECT_VPC_EGRESS_DIRECT_VPC_EGRESS_UNSPECIFIED = 'DIRECT_VPC_EGRESS_UNSPECIFIED';
/**
* Sends only traffic to internal addresses through the VPC network.
*/
public const DIRECT_VPC_EGRESS_VPC_EGRESS_PRIVATE_RANGES_ONLY = 'VPC_EGRESS_PRIVATE_RANGES_ONLY';
/**
* Sends all outbound traffic through the VPC network.
*/
public const DIRECT_VPC_EGRESS_VPC_EGRESS_ALL_TRAFFIC = 'VPC_EGRESS_ALL_TRAFFIC';
/**
* Unspecified.
*/
public const INGRESS_SETTINGS_INGRESS_SETTINGS_UNSPECIFIED = 'INGRESS_SETTINGS_UNSPECIFIED';
/**
* Allow HTTP traffic from public and private sources.
*/
public const INGRESS_SETTINGS_ALLOW_ALL = 'ALLOW_ALL';
/**
* Allow HTTP traffic from only private VPC sources.
*/
public const INGRESS_SETTINGS_ALLOW_INTERNAL_ONLY = 'ALLOW_INTERNAL_ONLY';
/**
* Allow HTTP traffic from private VPC sources and through GCLB.
*/
public const INGRESS_SETTINGS_ALLOW_INTERNAL_AND_GCLB = 'ALLOW_INTERNAL_AND_GCLB';
/**
* Unspecified.
*/
public const SECURITY_LEVEL_SECURITY_LEVEL_UNSPECIFIED = 'SECURITY_LEVEL_UNSPECIFIED';
/**
* Requests for a URL that match this handler that do not use HTTPS are
* automatically redirected to the HTTPS URL with the same path. Query
* parameters are reserved for the redirect.
*/
public const SECURITY_LEVEL_SECURE_ALWAYS = 'SECURE_ALWAYS';
/**
* Both HTTP and HTTPS requests with URLs that match the handler succeed
* without redirects. The application can examine the request to determine
* which protocol was used and respond accordingly.
*/
public const SECURITY_LEVEL_SECURE_OPTIONAL = 'SECURE_OPTIONAL';
/**
* Unspecified.
*/
public const VPC_CONNECTOR_EGRESS_SETTINGS_VPC_CONNECTOR_EGRESS_SETTINGS_UNSPECIFIED = 'VPC_CONNECTOR_EGRESS_SETTINGS_UNSPECIFIED';
/**
* Use the VPC Access Connector only for private IP space from RFC1918.
*/
public const VPC_CONNECTOR_EGRESS_SETTINGS_PRIVATE_RANGES_ONLY = 'PRIVATE_RANGES_ONLY';
/**
* Force the use of VPC Access Connector for all egress traffic from the
* function.
*/
public const VPC_CONNECTOR_EGRESS_SETTINGS_ALL_TRAFFIC = 'ALL_TRAFFIC';
protected $collection_key = 'secretVolumes';
/**
* 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.
*
* @var bool
*/
public $allTrafficOnLatestRevision;
/**
* 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#resourcer
* equirements Example: "1" indicates 1 vCPU
*
* @var string
*/
public $availableCpu;
/**
* 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.
*
* @var string
*/
public $availableMemory;
/**
* Optional. The binary authorization policy to be checked when deploying the
* Cloud Run service.
*
* @var string
*/
public $binaryAuthorizationPolicy;
/**
* Optional. Egress settings for direct VPC. If not provided, it defaults to
* VPC_EGRESS_PRIVATE_RANGES_ONLY.
*
* @var string
*/
public $directVpcEgress;
protected $directVpcNetworkInterfaceType = DirectVpcNetworkInterface::class;
protected $directVpcNetworkInterfaceDataType = 'array';
/**
* Environment variables that shall be available during function execution.
*
* @var string[]
*/
public $environmentVariables;
/**
* The ingress settings for the function, controlling what traffic can reach
* it.
*
* @var string
*/
public $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 [Max
* Instances](https://cloud.google.com/functions/docs/max-instances) Guide for
* more details.
*
* @var int
*/
public $maxInstanceCount;
/**
* Sets the maximum number of concurrent requests that each instance can
* receive. Defaults to 1.
*
* @var int
*/
public $maxInstanceRequestConcurrency;
/**
* 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.
*
* @var int
*/
public $minInstanceCount;
/**
* Output only. The name of service revision.
*
* @var string
*/
public $revision;
protected $secretEnvironmentVariablesType = SecretEnvVar::class;
protected $secretEnvironmentVariablesDataType = 'array';
protected $secretVolumesType = SecretVolume::class;
protected $secretVolumesDataType = 'array';
/**
* 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.
*
* @var string
*/
public $securityLevel;
/**
* Output only. Name of the service associated with a Function. The format of
* this field is `projects/{project}/locations/{region}/services/{service}`
*
* @var string
*/
public $service;
/**
* The email of the service's service account. If empty, defaults to
* `{project_number}-compute@developer.gserviceaccount.com`.
*
* @var string
*/
public $serviceAccountEmail;
/**
* 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.
*
* @var int
*/
public $timeoutSeconds;
/**
* Output only. URI of the Service deployed.
*
* @var string
*/
public $uri;
/**
* The Serverless VPC Access connector that this cloud function can connect
* to. The format of this field is `projects/locations/connectors`.
*
* @var string
*/
public $vpcConnector;
/**
* The egress settings for the connector, controlling what traffic is diverted
* through it.
*
* @var string
*/
public $vpcConnectorEgressSettings;
/**
* 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.
*
* @param bool $allTrafficOnLatestRevision
*/
public function setAllTrafficOnLatestRevision($allTrafficOnLatestRevision)
{
$this->allTrafficOnLatestRevision = $allTrafficOnLatestRevision;
}
/**
* @return bool
*/
public function getAllTrafficOnLatestRevision()
{
return $this->allTrafficOnLatestRevision;
}
/**
* 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#resourcer
* equirements Example: "1" indicates 1 vCPU
*
* @param string $availableCpu
*/
public function setAvailableCpu($availableCpu)
{
$this->availableCpu = $availableCpu;
}
/**
* @return string
*/
public function getAvailableCpu()
{
return $this->availableCpu;
}
/**
* 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.
*
* @param string $availableMemory
*/
public function setAvailableMemory($availableMemory)
{
$this->availableMemory = $availableMemory;
}
/**
* @return string
*/
public function getAvailableMemory()
{
return $this->availableMemory;
}
/**
* Optional. The binary authorization policy to be checked when deploying the
* Cloud Run service.
*
* @param string $binaryAuthorizationPolicy
*/
public function setBinaryAuthorizationPolicy($binaryAuthorizationPolicy)
{
$this->binaryAuthorizationPolicy = $binaryAuthorizationPolicy;
}
/**
* @return string
*/
public function getBinaryAuthorizationPolicy()
{
return $this->binaryAuthorizationPolicy;
}
/**
* Optional. Egress settings for direct VPC. If not provided, it defaults to
* VPC_EGRESS_PRIVATE_RANGES_ONLY.
*
* Accepted values: DIRECT_VPC_EGRESS_UNSPECIFIED,
* VPC_EGRESS_PRIVATE_RANGES_ONLY, VPC_EGRESS_ALL_TRAFFIC
*
* @param self::DIRECT_VPC_EGRESS_* $directVpcEgress
*/
public function setDirectVpcEgress($directVpcEgress)
{
$this->directVpcEgress = $directVpcEgress;
}
/**
* @return self::DIRECT_VPC_EGRESS_*
*/
public function getDirectVpcEgress()
{
return $this->directVpcEgress;
}
/**
* Optional. The Direct VPC network interface for the Cloud Function.
* Currently only a single Direct VPC is supported.
*
* @param DirectVpcNetworkInterface[] $directVpcNetworkInterface
*/
public function setDirectVpcNetworkInterface($directVpcNetworkInterface)
{
$this->directVpcNetworkInterface = $directVpcNetworkInterface;
}
/**
* @return DirectVpcNetworkInterface[]
*/
public function getDirectVpcNetworkInterface()
{
return $this->directVpcNetworkInterface;
}
/**
* Environment variables that shall be available during function execution.
*
* @param string[] $environmentVariables
*/
public function setEnvironmentVariables($environmentVariables)
{
$this->environmentVariables = $environmentVariables;
}
/**
* @return string[]
*/
public function getEnvironmentVariables()
{
return $this->environmentVariables;
}
/**
* The ingress settings for the function, controlling what traffic can reach
* it.
*
* Accepted values: INGRESS_SETTINGS_UNSPECIFIED, ALLOW_ALL,
* ALLOW_INTERNAL_ONLY, ALLOW_INTERNAL_AND_GCLB
*
* @param self::INGRESS_SETTINGS_* $ingressSettings
*/
public function setIngressSettings($ingressSettings)
{
$this->ingressSettings = $ingressSettings;
}
/**
* @return self::INGRESS_SETTINGS_*
*/
public function getIngressSettings()
{
return $this->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 [Max
* Instances](https://cloud.google.com/functions/docs/max-instances) Guide for
* more details.
*
* @param int $maxInstanceCount
*/
public function setMaxInstanceCount($maxInstanceCount)
{
$this->maxInstanceCount = $maxInstanceCount;
}
/**
* @return int
*/
public function getMaxInstanceCount()
{
return $this->maxInstanceCount;
}
/**
* Sets the maximum number of concurrent requests that each instance can
* receive. Defaults to 1.
*
* @param int $maxInstanceRequestConcurrency
*/
public function setMaxInstanceRequestConcurrency($maxInstanceRequestConcurrency)
{
$this->maxInstanceRequestConcurrency = $maxInstanceRequestConcurrency;
}
/**
* @return int
*/
public function getMaxInstanceRequestConcurrency()
{
return $this->maxInstanceRequestConcurrency;
}
/**
* 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.
*
* @param int $minInstanceCount
*/
public function setMinInstanceCount($minInstanceCount)
{
$this->minInstanceCount = $minInstanceCount;
}
/**
* @return int
*/
public function getMinInstanceCount()
{
return $this->minInstanceCount;
}
/**
* Output only. The name of service revision.
*
* @param string $revision
*/
public function setRevision($revision)
{
$this->revision = $revision;
}
/**
* @return string
*/
public function getRevision()
{
return $this->revision;
}
/**
* Secret environment variables configuration.
*
* @param SecretEnvVar[] $secretEnvironmentVariables
*/
public function setSecretEnvironmentVariables($secretEnvironmentVariables)
{
$this->secretEnvironmentVariables = $secretEnvironmentVariables;
}
/**
* @return SecretEnvVar[]
*/
public function getSecretEnvironmentVariables()
{
return $this->secretEnvironmentVariables;
}
/**
* Secret volumes configuration.
*
* @param SecretVolume[] $secretVolumes
*/
public function setSecretVolumes($secretVolumes)
{
$this->secretVolumes = $secretVolumes;
}
/**
* @return SecretVolume[]
*/
public function getSecretVolumes()
{
return $this->secretVolumes;
}
/**
* 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.
*
* Accepted values: SECURITY_LEVEL_UNSPECIFIED, SECURE_ALWAYS, SECURE_OPTIONAL
*
* @param self::SECURITY_LEVEL_* $securityLevel
*/
public function setSecurityLevel($securityLevel)
{
$this->securityLevel = $securityLevel;
}
/**
* @return self::SECURITY_LEVEL_*
*/
public function getSecurityLevel()
{
return $this->securityLevel;
}
/**
* Output only. Name of the service associated with a Function. The format of
* this field is `projects/{project}/locations/{region}/services/{service}`
*
* @param string $service
*/
public function setService($service)
{
$this->service = $service;
}
/**
* @return string
*/
public function getService()
{
return $this->service;
}
/**
* The email of the service's service account. If empty, defaults to
* `{project_number}-compute@developer.gserviceaccount.com`.
*
* @param string $serviceAccountEmail
*/
public function setServiceAccountEmail($serviceAccountEmail)
{
$this->serviceAccountEmail = $serviceAccountEmail;
}
/**
* @return string
*/
public function getServiceAccountEmail()
{
return $this->serviceAccountEmail;
}
/**
* 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.
*
* @param int $timeoutSeconds
*/
public function setTimeoutSeconds($timeoutSeconds)
{
$this->timeoutSeconds = $timeoutSeconds;
}
/**
* @return int
*/
public function getTimeoutSeconds()
{
return $this->timeoutSeconds;
}
/**
* Output only. URI of the Service deployed.
*
* @param string $uri
*/
public function setUri($uri)
{
$this->uri = $uri;
}
/**
* @return string
*/
public function getUri()
{
return $this->uri;
}
/**
* The Serverless VPC Access connector that this cloud function can connect
* to. The format of this field is `projects/locations/connectors`.
*
* @param string $vpcConnector
*/
public function setVpcConnector($vpcConnector)
{
$this->vpcConnector = $vpcConnector;
}
/**
* @return string
*/
public function getVpcConnector()
{
return $this->vpcConnector;
}
/**
* The egress settings for the connector, controlling what traffic is diverted
* through it.
*
* Accepted values: VPC_CONNECTOR_EGRESS_SETTINGS_UNSPECIFIED,
* PRIVATE_RANGES_ONLY, ALL_TRAFFIC
*
* @param self::VPC_CONNECTOR_EGRESS_SETTINGS_* $vpcConnectorEgressSettings
*/
public function setVpcConnectorEgressSettings($vpcConnectorEgressSettings)
{
$this->vpcConnectorEgressSettings = $vpcConnectorEgressSettings;
}
/**
* @return self::VPC_CONNECTOR_EGRESS_SETTINGS_*
*/
public function getVpcConnectorEgressSettings()
{
return $this->vpcConnectorEgressSettings;
}
}
// Adding a class alias for backwards compatibility with the previous class name.
class_alias(ServiceConfig::class, 'Google_Service_CloudFunctions_ServiceConfig');
← Back