12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037 |
- // Copyright 2022 Google LLC
- //
- // 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.
- syntax = "proto3";
- package google.cloud.functions.v2;
- import "google/api/annotations.proto";
- import "google/api/client.proto";
- import "google/api/field_behavior.proto";
- import "google/api/resource.proto";
- import "google/longrunning/operations.proto";
- import "google/protobuf/any.proto";
- import "google/protobuf/field_mask.proto";
- import "google/protobuf/timestamp.proto";
- option go_package = "google.golang.org/genproto/googleapis/cloud/functions/v2;functions";
- option java_multiple_files = true;
- option java_outer_classname = "FunctionsProto";
- option java_package = "com.google.cloud.functions.v2";
- option objc_class_prefix = "GCF";
- option (google.api.resource_definition) = {
- type: "artifactregistry.googleapis.com/Repository"
- pattern: "projects/{project}/locations/{location}/repositories/{repository}"
- };
- option (google.api.resource_definition) = {
- type: "cloudbuild.googleapis.com/Build"
- pattern: "projects/{project}/locations/{location}/builds/{build}"
- };
- option (google.api.resource_definition) = {
- type: "cloudbuild.googleapis.com/WorkerPool"
- pattern: "projects/{project}/locations/{location}/workerPools/{worker_pool}"
- };
- option (google.api.resource_definition) = {
- type: "run.googleapis.com/Service"
- pattern: "projects/{project}/locations/{location}/services/{service}"
- };
- option (google.api.resource_definition) = {
- type: "vpcaccess.googleapis.com/Connector"
- pattern: "projects/{project}/locations/{location}/connectors/{connector}"
- };
- option (google.api.resource_definition) = {
- type: "eventarc.googleapis.com/Trigger"
- pattern: "projects/{project}/locations/{location}/triggers/{trigger}"
- };
- option (google.api.resource_definition) = {
- type: "eventarc.googleapis.com/Channel"
- pattern: "projects/{project}/locations/{location}/channels/{channel}"
- };
- option (google.api.resource_definition) = {
- type: "pubsub.googleapis.com/Topic"
- pattern: "projects/{project}/topics/{topic}"
- };
- option (google.api.resource_definition) = {
- type: "cloudkms.googleapis.com/CryptoKey"
- pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}"
- };
- // Google Cloud Functions is used to deploy functions that are executed by
- // Google in response to various events. Data connected with that event is
- // passed to a function as the input data.
- //
- // A **function** is a resource which describes a function that should be
- // executed and how it is triggered.
- service FunctionService {
- option (google.api.default_host) = "cloudfunctions.googleapis.com";
- option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
- // Returns a function with the given name from the requested project.
- rpc GetFunction(GetFunctionRequest) returns (Function) {
- option (google.api.http) = {
- get: "/v2/{name=projects/*/locations/*/functions/*}"
- };
- option (google.api.method_signature) = "name";
- }
- // Returns a list of functions that belong to the requested project.
- rpc ListFunctions(ListFunctionsRequest) returns (ListFunctionsResponse) {
- option (google.api.http) = {
- get: "/v2/{parent=projects/*/locations/*}/functions"
- };
- option (google.api.method_signature) = "parent";
- }
- // Creates a new function. If a function with the given name already exists in
- // the specified project, the long running operation will return
- // `ALREADY_EXISTS` error.
- rpc CreateFunction(CreateFunctionRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v2/{parent=projects/*/locations/*}/functions"
- body: "function"
- };
- option (google.api.method_signature) = "parent,function,function_id";
- option (google.longrunning.operation_info) = {
- response_type: "google.cloud.functions.v2.Function"
- metadata_type: "google.cloud.functions.v2.OperationMetadata"
- };
- }
- // Updates existing function.
- rpc UpdateFunction(UpdateFunctionRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- patch: "/v2/{function.name=projects/*/locations/*/functions/*}"
- body: "function"
- };
- option (google.api.method_signature) = "function,update_mask";
- option (google.longrunning.operation_info) = {
- response_type: "google.cloud.functions.v2.Function"
- metadata_type: "google.cloud.functions.v2.OperationMetadata"
- };
- }
- // Deletes a function with the given name from the specified project. If the
- // given function is used by some trigger, the trigger will be updated to
- // remove this function.
- rpc DeleteFunction(DeleteFunctionRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- delete: "/v2/{name=projects/*/locations/*/functions/*}"
- };
- option (google.api.method_signature) = "name";
- option (google.longrunning.operation_info) = {
- response_type: "google.protobuf.Empty"
- metadata_type: "google.cloud.functions.v2.OperationMetadata"
- };
- }
- // Returns a signed URL for uploading a function source code.
- // For more information about the signed URL usage see:
- // https://cloud.google.com/storage/docs/access-control/signed-urls.
- // Once the function source code upload is complete, the used signed
- // URL should be provided in CreateFunction or UpdateFunction request
- // as a reference to the function source code.
- //
- // When uploading source code to the generated signed URL, please follow
- // these restrictions:
- //
- // * Source file type should be a zip file.
- // * No credentials should be attached - the signed URLs provide access to the
- // target bucket using internal service identity; if credentials were
- // attached, the identity from the credentials would be used, but that
- // identity does not have permissions to upload files to the URL.
- //
- // When making a HTTP PUT request, these two headers need to be specified:
- //
- // * `content-type: application/zip`
- //
- // And this header SHOULD NOT be specified:
- //
- // * `Authorization: Bearer YOUR_TOKEN`
- rpc GenerateUploadUrl(GenerateUploadUrlRequest) returns (GenerateUploadUrlResponse) {
- option (google.api.http) = {
- post: "/v2/{parent=projects/*/locations/*}/functions:generateUploadUrl"
- body: "*"
- };
- }
- // Returns a signed URL for downloading deployed function source code.
- // The URL is only valid for a limited period and should be used within
- // 30 minutes of generation.
- // For more information about the signed URL usage see:
- // https://cloud.google.com/storage/docs/access-control/signed-urls
- rpc GenerateDownloadUrl(GenerateDownloadUrlRequest) returns (GenerateDownloadUrlResponse) {
- option (google.api.http) = {
- post: "/v2/{name=projects/*/locations/*/functions/*}:generateDownloadUrl"
- body: "*"
- };
- }
- // Returns a list of runtimes that are supported for the requested project.
- rpc ListRuntimes(ListRuntimesRequest) returns (ListRuntimesResponse) {
- option (google.api.http) = {
- get: "/v2/{parent=projects/*/locations/*}/runtimes"
- };
- option (google.api.method_signature) = "parent";
- }
- }
- // The environment the function is hosted on.
- enum Environment {
- // Unspecified
- ENVIRONMENT_UNSPECIFIED = 0;
- // Gen 1
- GEN_1 = 1;
- // Gen 2
- GEN_2 = 2;
- }
- // Describes a Cloud Function that contains user computation executed in
- // response to an event. It encapsulates function and trigger configurations.
- message Function {
- option (google.api.resource) = {
- type: "cloudfunctions.googleapis.com/Function"
- pattern: "projects/{project}/locations/{location}/functions/{function}"
- plural: "functions"
- singular: "function"
- };
- // Describes the current state of the function.
- enum State {
- // Not specified. Invalid state.
- STATE_UNSPECIFIED = 0;
- // Function has been successfully deployed and is serving.
- ACTIVE = 1;
- // Function deployment failed and the function is not serving.
- FAILED = 2;
- // Function is being created or updated.
- DEPLOYING = 3;
- // Function is being deleted.
- DELETING = 4;
- // Function deployment failed and the function serving state is undefined.
- // The function should be updated or deleted to move it out of this state.
- UNKNOWN = 5;
- }
- // A user-defined name of the function. Function names must be unique
- // globally and match pattern `projects/*/locations/*/functions/*`
- string name = 1;
- // Describe whether the function is gen1 or gen2.
- Environment environment = 10;
- // User-provided description of a function.
- string description = 2;
- // Describes the Build step of the function that builds a container from the
- // given source.
- BuildConfig build_config = 3;
- // Describes the Service being deployed. Currently deploys services to Cloud
- // Run (fully managed).
- ServiceConfig service_config = 4;
- // An Eventarc trigger managed by Google Cloud Functions that fires events in
- // response to a condition in another service.
- EventTrigger event_trigger = 5;
- // Output only. State of the function.
- State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The last update timestamp of a Cloud Function.
- google.protobuf.Timestamp update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Labels associated with this Cloud Function.
- map<string, string> labels = 8;
- // Output only. State Messages for this Cloud Function.
- repeated StateMessage state_messages = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- // Informational messages about the state of the Cloud Function or Operation.
- message StateMessage {
- // Severity of the state message.
- enum Severity {
- // Not specified. Invalid severity.
- SEVERITY_UNSPECIFIED = 0;
- // ERROR-level severity.
- ERROR = 1;
- // WARNING-level severity.
- WARNING = 2;
- // INFO-level severity.
- INFO = 3;
- }
- // Severity of the state message.
- Severity severity = 1;
- // One-word CamelCase type of the state message.
- string type = 2;
- // The message.
- string message = 3;
- }
- // Location of the source in an archive file in Google Cloud Storage.
- message StorageSource {
- // Google Cloud Storage bucket containing the source (see
- // [Bucket Name
- // Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
- string bucket = 1;
- // Google Cloud Storage object containing the source.
- //
- // This object must be a gzipped archive file (`.tar.gz`) containing source to
- // build.
- string object = 2;
- // Google Cloud Storage generation for the object. If the generation is
- // omitted, the latest generation will be used.
- int64 generation = 3;
- }
- // Location of the source in a Google Cloud Source Repository.
- message RepoSource {
- // A revision within the Cloud Source Repository must be specified in
- // one of these ways.
- oneof revision {
- // 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
- string branch_name = 3;
- // 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
- string tag_name = 4;
- // Explicit commit SHA to build.
- string commit_sha = 5;
- }
- // ID of the project that owns the Cloud Source Repository. If omitted, the
- // project ID requesting the build is assumed.
- string project_id = 1;
- // Name of the Cloud Source Repository.
- string repo_name = 2;
- // 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)
- string dir = 6;
- // Only trigger a build if the revision regex does NOT match the revision
- // regex.
- bool invert_regex = 7;
- }
- // The location of the function source code.
- message Source {
- // Location of the source.
- // At least one source needs to be provided for the deployment to succeed.
- oneof source {
- // If provided, get the source from this location in Google Cloud Storage.
- StorageSource storage_source = 1;
- // If provided, get the source from this location in a Cloud Source
- // Repository.
- RepoSource repo_source = 2;
- }
- }
- // Provenance of the source. Ways to find the original source, or verify that
- // some source was used for this build.
- message SourceProvenance {
- // A copy of the build's `source.storage_source`, if exists, with any
- // generations resolved.
- StorageSource resolved_storage_source = 1;
- // A copy of the build's `source.repo_source`, if exists, with any
- // revisions resolved.
- RepoSource resolved_repo_source = 2;
- }
- // Describes the Build step of the function that builds a container from the
- // given source.
- message BuildConfig {
- // Output only. The Cloud Build name of the latest successful deployment of the
- // function.
- string build = 1 [
- (google.api.field_behavior) = OUTPUT_ONLY,
- (google.api.resource_reference) = {
- type: "cloudbuild.googleapis.com/Build"
- }
- ];
- // 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
- // [`gcloud` command
- // reference](https://cloud.google.com/sdk/gcloud/reference/functions/deploy#--runtime).
- string runtime = 2;
- // 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`.
- string entry_point = 3;
- // The location of the function source code.
- Source source = 4;
- // Output only. A permanent fixed identifier for source.
- SourceProvenance source_provenance = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
- // 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-<project_number>@gcf-admin-robot.iam.gserviceaccount.com) must be
- // granted the role Cloud Build Custom Workers Builder
- // (roles/cloudbuild.customworkers.builder) in the project.
- string worker_pool = 5 [(google.api.resource_reference) = {
- type: "cloudbuild.googleapis.com/WorkerPool"
- }];
- // User-provided build-time environment variables for the function
- map<string, string> environment_variables = 6;
- // Optional. User managed repository created in Artifact Registry optionally with a
- // customer managed encryption key. This is the repository to which the
- // function docker image will be pushed after it is built by Cloud Build.
- // If unspecified, 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}`.
- //
- // Cross-project repositories are not supported.
- // Cross-location repositories are not supported.
- // Repository format must be 'DOCKER'.
- string docker_repository = 7 [
- (google.api.field_behavior) = OPTIONAL,
- (google.api.resource_reference) = {
- type: "artifactregistry.googleapis.com/Repository"
- }
- ];
- }
- // Describes the Service being deployed.
- // Currently Supported : Cloud Run (fully managed).
- message ServiceConfig {
- // Available egress settings.
- //
- // This controls what traffic is diverted through the VPC Access Connector
- // resource. By default PRIVATE_RANGES_ONLY will be used.
- enum VpcConnectorEgressSettings {
- // Unspecified.
- VPC_CONNECTOR_EGRESS_SETTINGS_UNSPECIFIED = 0;
- // Use the VPC Access Connector only for private IP space from RFC1918.
- PRIVATE_RANGES_ONLY = 1;
- // Force the use of VPC Access Connector for all egress traffic from the
- // function.
- ALL_TRAFFIC = 2;
- }
- // Available ingress settings.
- //
- // This controls what traffic can reach the function.
- //
- // If unspecified, ALLOW_ALL will be used.
- enum IngressSettings {
- // Unspecified.
- INGRESS_SETTINGS_UNSPECIFIED = 0;
- // Allow HTTP traffic from public and private sources.
- ALLOW_ALL = 1;
- // Allow HTTP traffic from only private VPC sources.
- ALLOW_INTERNAL_ONLY = 2;
- // Allow HTTP traffic from private VPC sources and through GCLB.
- ALLOW_INTERNAL_AND_GCLB = 3;
- }
- // Output only. Name of the service associated with a Function.
- // The format of this field is
- // `projects/{project}/locations/{region}/services/{service}`
- string service = 1 [
- (google.api.field_behavior) = OUTPUT_ONLY,
- (google.api.resource_reference) = {
- type: "run.googleapis.com/Service"
- }
- ];
- // 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.
- int32 timeout_seconds = 2;
- // 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.
- string available_memory = 13;
- // Environment variables that shall be available during function execution.
- map<string, string> environment_variables = 4;
- // 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.
- int32 max_instance_count = 5;
- // 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.
- int32 min_instance_count = 12;
- // The Serverless VPC Access connector that this cloud function can connect
- // to. The format of this field is `projects/*/locations/*/connectors/*`.
- string vpc_connector = 6 [(google.api.resource_reference) = {
- type: "vpcaccess.googleapis.com/Connector"
- }];
- // The egress settings for the connector, controlling what traffic is diverted
- // through it.
- VpcConnectorEgressSettings vpc_connector_egress_settings = 7;
- // The ingress settings for the function, controlling what traffic can reach
- // it.
- IngressSettings ingress_settings = 8;
- // Output only. URI of the Service deployed.
- string uri = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
- // The email of the service's service account. If empty, defaults to
- // `{project_number}-compute@developer.gserviceaccount.com`.
- string service_account_email = 10;
- // 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.
- bool all_traffic_on_latest_revision = 16;
- // Secret environment variables configuration.
- repeated SecretEnvVar secret_environment_variables = 17;
- // Secret volumes configuration.
- repeated SecretVolume secret_volumes = 19;
- // Output only. The name of service revision.
- string revision = 18 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- // 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.
- message SecretEnvVar {
- // Name of the environment variable.
- string key = 1;
- // 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.
- string project_id = 2;
- // Name of the secret in secret manager (not the full resource name).
- string secret = 3;
- // 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.
- string version = 4;
- }
- // 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.
- message SecretVolume {
- // Configuration for a single version.
- message SecretVersion {
- // 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.
- string version = 1;
- // 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`.
- string path = 2;
- }
- // 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
- string mount_path = 1;
- // 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.
- string project_id = 2;
- // Name of the secret in secret manager (not the full resource name).
- string secret = 3;
- // 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.
- repeated SecretVersion versions = 4;
- }
- // Describes EventTrigger, used to request events to be sent from another
- // service.
- message EventTrigger {
- // Describes the retry policy in case of function's execution failure.
- // Retried execution is charged as any other execution.
- enum RetryPolicy {
- // Not specified.
- RETRY_POLICY_UNSPECIFIED = 0;
- // Do not retry.
- RETRY_POLICY_DO_NOT_RETRY = 1;
- // Retry on any failure, retry up to 7 days with an exponential backoff
- // (capped at 10 seconds).
- RETRY_POLICY_RETRY = 2;
- }
- // Output only. The resource name of the Eventarc trigger. The format of this field is
- // `projects/{project}/locations/{region}/triggers/{trigger}`.
- string trigger = 1 [
- (google.api.field_behavior) = OUTPUT_ONLY,
- (google.api.resource_reference) = {
- type: "eventarc.googleapis.com/Trigger"
- }
- ];
- // 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.
- string trigger_region = 2;
- // Required. The type of event to observe. For example:
- // `google.cloud.audit.log.v1.written` or
- // `google.cloud.pubsub.topic.v1.messagePublished`.
- string event_type = 3 [(google.api.field_behavior) = REQUIRED];
- // Criteria used to filter events.
- repeated EventFilter event_filters = 4;
- // 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.
- string pubsub_topic = 5 [
- (google.api.field_behavior) = OPTIONAL,
- (google.api.resource_reference) = {
- type: "pubsub.googleapis.com/Topic"
- }
- ];
- // 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`.
- string service_account_email = 6 [(google.api.field_behavior) = OPTIONAL];
- // Optional. If unset, then defaults to ignoring failures (i.e. not retrying them).
- RetryPolicy retry_policy = 7 [(google.api.field_behavior) = OPTIONAL];
- // 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.
- string channel = 8 [
- (google.api.field_behavior) = OPTIONAL,
- (google.api.resource_reference) = {
- type: "eventarc.googleapis.com/Channel"
- }
- ];
- }
- // Filters events based on exact matches on the CloudEvents attributes.
- message EventFilter {
- // Required. The name of a CloudEvents attribute.
- string attribute = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. The value for the attribute.
- string value = 2 [(google.api.field_behavior) = REQUIRED];
- // 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`.
- string operator = 3 [(google.api.field_behavior) = OPTIONAL];
- }
- // Request for the `GetFunction` method.
- message GetFunctionRequest {
- // Required. The name of the function which details should be obtained.
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "cloudfunctions.googleapis.com/Function"
- }
- ];
- }
- // Request for the `ListFunctions` method.
- message ListFunctionsRequest {
- // Required. The project and location from which the function should be listed,
- // specified in the format `projects/*/locations/*`
- // If you want to list functions in all locations, use "-" in place of a
- // location. When listing functions in all locations, if one or more
- // location(s) are unreachable, the response will contain functions from all
- // reachable locations along with the names of any unreachable locations.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- child_type: "cloudfunctions.googleapis.com/Function"
- }
- ];
- // Maximum number of functions to return per call.
- int32 page_size = 2;
- // The value returned by the last
- // `ListFunctionsResponse`; indicates that
- // this is a continuation of a prior `ListFunctions` call, and that the
- // system should return the next page of data.
- string page_token = 3;
- // The filter for Functions that match the filter expression,
- // following the syntax outlined in https://google.aip.dev/160.
- string filter = 4;
- // The sorting order of the resources returned. Value should be a comma
- // separated list of fields. The default sorting oder is ascending.
- // See https://google.aip.dev/132#ordering.
- string order_by = 5;
- }
- // Response for the `ListFunctions` method.
- message ListFunctionsResponse {
- // The functions that match the request.
- repeated Function functions = 1;
- // A token, which can be sent as `page_token` to retrieve the next page.
- // If this field is omitted, there are no subsequent pages.
- string next_page_token = 2;
- // Locations that could not be reached. The response does not include any
- // functions from these locations.
- repeated string unreachable = 3;
- }
- // Request for the `CreateFunction` method.
- message CreateFunctionRequest {
- // Required. The project and location in which the function should be created, specified
- // in the format `projects/*/locations/*`
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "locations.googleapis.com/Location"
- }
- ];
- // Required. Function to be created.
- Function function = 2 [(google.api.field_behavior) = REQUIRED];
- // The ID to use for the function, which will become the final component of
- // the function's resource name.
- //
- // This value should be 4-63 characters, and valid characters
- // are /[a-z][0-9]-/.
- string function_id = 3;
- }
- // Request for the `UpdateFunction` method.
- message UpdateFunctionRequest {
- // Required. New version of the function.
- Function function = 1 [(google.api.field_behavior) = REQUIRED];
- // The list of fields to be updated.
- // If no field mask is provided, all provided fields in the request will be
- // updated.
- google.protobuf.FieldMask update_mask = 2;
- }
- // Request for the `DeleteFunction` method.
- message DeleteFunctionRequest {
- // Required. The name of the function which should be deleted.
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "cloudfunctions.googleapis.com/Function"
- }
- ];
- }
- // Request of `GenerateSourceUploadUrl` method.
- message GenerateUploadUrlRequest {
- // Required. The project and location in which the Google Cloud Storage signed URL
- // should be generated, specified in the format `projects/*/locations/*`.
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "locations.googleapis.com/Location"
- }
- ];
- }
- // Response of `GenerateSourceUploadUrl` method.
- message GenerateUploadUrlResponse {
- // 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.
- string upload_url = 1;
- // 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 storage_source = 2;
- }
- // Request of `GenerateDownloadUrl` method.
- message GenerateDownloadUrlRequest {
- // Required. The name of function for which source code Google Cloud Storage signed
- // URL should be generated.
- string name = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "cloudfunctions.googleapis.com/Function"
- }
- ];
- }
- // Response of `GenerateDownloadUrl` method.
- message GenerateDownloadUrlResponse {
- // The generated Google Cloud Storage signed URL that should be used for
- // function source code download.
- string download_url = 1;
- }
- // Request for the `ListRuntimes` method.
- message ListRuntimesRequest {
- // Required. The project and location from which the runtimes should be listed,
- // specified in the format `projects/*/locations/*`
- string parent = 1 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.resource_reference) = {
- type: "locations.googleapis.com/Location"
- }
- ];
- // The filter for Runtimes that match the filter expression,
- // following the syntax outlined in https://google.aip.dev/160.
- string filter = 2;
- }
- // Response for the `ListRuntimes` method.
- message ListRuntimesResponse {
- // Describes a runtime and any special information (e.g., deprecation status)
- // related to it.
- message Runtime {
- // The name of the runtime, e.g., 'go113', 'nodejs12', etc.
- string name = 1;
- // The user facing name, eg 'Go 1.13', 'Node.js 12', etc.
- string display_name = 5;
- // The stage of life this runtime is in, e.g., BETA, GA, etc.
- RuntimeStage stage = 2;
- // Warning messages, e.g., a deprecation warning.
- repeated string warnings = 3;
- // The environment for the runtime.
- Environment environment = 4;
- }
- // The various stages that a runtime can be in.
- enum RuntimeStage {
- // Not specified.
- RUNTIME_STAGE_UNSPECIFIED = 0;
- // The runtime is in development.
- DEVELOPMENT = 1;
- // The runtime is in the Alpha stage.
- ALPHA = 2;
- // The runtime is in the Beta stage.
- BETA = 3;
- // The runtime is generally available.
- GA = 4;
- // The runtime is deprecated.
- DEPRECATED = 5;
- // The runtime is no longer supported.
- DECOMMISSIONED = 6;
- }
- // The runtimes that match the request.
- repeated Runtime runtimes = 1;
- }
- // Represents the metadata of the long-running operation.
- message OperationMetadata {
- // The time the operation was created.
- google.protobuf.Timestamp create_time = 1;
- // The time the operation finished running.
- google.protobuf.Timestamp end_time = 2;
- // Server-defined resource path for the target of the operation.
- string target = 3;
- // Name of the verb executed by the operation.
- string verb = 4;
- // Human-readable status of the operation, if any.
- string status_detail = 5;
- // Identifies whether the user has requested cancellation
- // of the operation. Operations that have successfully been cancelled
- // have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
- // corresponding to `Code.CANCELLED`.
- bool cancel_requested = 6;
- // API version used to start the operation.
- string api_version = 7;
- // The original request that started the operation.
- google.protobuf.Any request_resource = 8;
- // Mechanism for reporting in-progress stages
- repeated Stage stages = 9;
- }
- // Each Stage of the deployment process
- message Stage {
- // Possible names for a Stage
- enum Name {
- // Not specified. Invalid name.
- NAME_UNSPECIFIED = 0;
- // Artifact Regsitry Stage
- ARTIFACT_REGISTRY = 1;
- // Build Stage
- BUILD = 2;
- // Service Stage
- SERVICE = 3;
- // Trigger Stage
- TRIGGER = 4;
- // Service Rollback Stage
- SERVICE_ROLLBACK = 5;
- // Trigger Rollback Stage
- TRIGGER_ROLLBACK = 6;
- }
- // Possible states for a Stage
- enum State {
- // Not specified. Invalid state.
- STATE_UNSPECIFIED = 0;
- // Stage has not started.
- NOT_STARTED = 1;
- // Stage is in progress.
- IN_PROGRESS = 2;
- // Stage has completed.
- COMPLETE = 3;
- }
- // Name of the Stage. This will be unique for each Stage.
- Name name = 1;
- // Message describing the Stage
- string message = 2;
- // Current state of the Stage
- State state = 3;
- // Resource of the Stage
- string resource = 4;
- // Link to the current Stage resource
- string resource_uri = 5;
- // State messages from the current Stage.
- repeated StateMessage state_messages = 6;
- }
|