1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC 2*d5c09012SAndroid Build Coastguard Worker// 3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*d5c09012SAndroid Build Coastguard Worker// 7*d5c09012SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*d5c09012SAndroid Build Coastguard Worker// 9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*d5c09012SAndroid Build Coastguard Worker// limitations under the License. 14*d5c09012SAndroid Build Coastguard Worker 15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3"; 16*d5c09012SAndroid Build Coastguard Worker 17*d5c09012SAndroid Build Coastguard Workerpackage google.cloud.functions.v2; 18*d5c09012SAndroid Build Coastguard Worker 19*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto"; 20*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto"; 22*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto"; 23*d5c09012SAndroid Build Coastguard Workerimport "google/longrunning/operations.proto"; 24*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/any.proto"; 25*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto"; 26*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto"; 27*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto"; 28*d5c09012SAndroid Build Coastguard Worker 29*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/functions/apiv2/functionspb;functionspb"; 30*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 31*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "FunctionsProto"; 32*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.functions.v2"; 33*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "GCF"; 34*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = { 35*d5c09012SAndroid Build Coastguard Worker type: "artifactregistry.googleapis.com/Repository" 36*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/repositories/{repository}" 37*d5c09012SAndroid Build Coastguard Worker}; 38*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = { 39*d5c09012SAndroid Build Coastguard Worker type: "cloudbuild.googleapis.com/Build" 40*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/builds/{build}" 41*d5c09012SAndroid Build Coastguard Worker}; 42*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = { 43*d5c09012SAndroid Build Coastguard Worker type: "cloudbuild.googleapis.com/WorkerPool" 44*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/workerPools/{worker_pool}" 45*d5c09012SAndroid Build Coastguard Worker}; 46*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = { 47*d5c09012SAndroid Build Coastguard Worker type: "run.googleapis.com/Service" 48*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/services/{service}" 49*d5c09012SAndroid Build Coastguard Worker}; 50*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = { 51*d5c09012SAndroid Build Coastguard Worker type: "vpcaccess.googleapis.com/Connector" 52*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/connectors/{connector}" 53*d5c09012SAndroid Build Coastguard Worker}; 54*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = { 55*d5c09012SAndroid Build Coastguard Worker type: "eventarc.googleapis.com/Trigger" 56*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/triggers/{trigger}" 57*d5c09012SAndroid Build Coastguard Worker}; 58*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = { 59*d5c09012SAndroid Build Coastguard Worker type: "eventarc.googleapis.com/Channel" 60*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/channels/{channel}" 61*d5c09012SAndroid Build Coastguard Worker}; 62*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = { 63*d5c09012SAndroid Build Coastguard Worker type: "pubsub.googleapis.com/Topic" 64*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/topics/{topic}" 65*d5c09012SAndroid Build Coastguard Worker}; 66*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = { 67*d5c09012SAndroid Build Coastguard Worker type: "cloudkms.googleapis.com/CryptoKey" 68*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}" 69*d5c09012SAndroid Build Coastguard Worker}; 70*d5c09012SAndroid Build Coastguard Worker 71*d5c09012SAndroid Build Coastguard Worker// Google Cloud Functions is used to deploy functions that are executed by 72*d5c09012SAndroid Build Coastguard Worker// Google in response to various events. Data connected with that event is 73*d5c09012SAndroid Build Coastguard Worker// passed to a function as the input data. 74*d5c09012SAndroid Build Coastguard Worker// 75*d5c09012SAndroid Build Coastguard Worker// A **function** is a resource which describes a function that should be 76*d5c09012SAndroid Build Coastguard Worker// executed and how it is triggered. 77*d5c09012SAndroid Build Coastguard Workerservice FunctionService { 78*d5c09012SAndroid Build Coastguard Worker option (google.api.default_host) = "cloudfunctions.googleapis.com"; 79*d5c09012SAndroid Build Coastguard Worker option (google.api.oauth_scopes) = 80*d5c09012SAndroid Build Coastguard Worker "https://www.googleapis.com/auth/cloud-platform"; 81*d5c09012SAndroid Build Coastguard Worker 82*d5c09012SAndroid Build Coastguard Worker // Returns a function with the given name from the requested project. 83*d5c09012SAndroid Build Coastguard Worker rpc GetFunction(GetFunctionRequest) returns (Function) { 84*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 85*d5c09012SAndroid Build Coastguard Worker get: "/v2/{name=projects/*/locations/*/functions/*}" 86*d5c09012SAndroid Build Coastguard Worker }; 87*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 88*d5c09012SAndroid Build Coastguard Worker } 89*d5c09012SAndroid Build Coastguard Worker 90*d5c09012SAndroid Build Coastguard Worker // Returns a list of functions that belong to the requested project. 91*d5c09012SAndroid Build Coastguard Worker rpc ListFunctions(ListFunctionsRequest) returns (ListFunctionsResponse) { 92*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 93*d5c09012SAndroid Build Coastguard Worker get: "/v2/{parent=projects/*/locations/*}/functions" 94*d5c09012SAndroid Build Coastguard Worker }; 95*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "parent"; 96*d5c09012SAndroid Build Coastguard Worker } 97*d5c09012SAndroid Build Coastguard Worker 98*d5c09012SAndroid Build Coastguard Worker // Creates a new function. If a function with the given name already exists in 99*d5c09012SAndroid Build Coastguard Worker // the specified project, the long running operation will return 100*d5c09012SAndroid Build Coastguard Worker // `ALREADY_EXISTS` error. 101*d5c09012SAndroid Build Coastguard Worker rpc CreateFunction(CreateFunctionRequest) 102*d5c09012SAndroid Build Coastguard Worker returns (google.longrunning.Operation) { 103*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 104*d5c09012SAndroid Build Coastguard Worker post: "/v2/{parent=projects/*/locations/*}/functions" 105*d5c09012SAndroid Build Coastguard Worker body: "function" 106*d5c09012SAndroid Build Coastguard Worker }; 107*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "parent,function,function_id"; 108*d5c09012SAndroid Build Coastguard Worker option (google.longrunning.operation_info) = { 109*d5c09012SAndroid Build Coastguard Worker response_type: "google.cloud.functions.v2.Function" 110*d5c09012SAndroid Build Coastguard Worker metadata_type: "google.cloud.functions.v2.OperationMetadata" 111*d5c09012SAndroid Build Coastguard Worker }; 112*d5c09012SAndroid Build Coastguard Worker } 113*d5c09012SAndroid Build Coastguard Worker 114*d5c09012SAndroid Build Coastguard Worker // Updates existing function. 115*d5c09012SAndroid Build Coastguard Worker rpc UpdateFunction(UpdateFunctionRequest) 116*d5c09012SAndroid Build Coastguard Worker returns (google.longrunning.Operation) { 117*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 118*d5c09012SAndroid Build Coastguard Worker patch: "/v2/{function.name=projects/*/locations/*/functions/*}" 119*d5c09012SAndroid Build Coastguard Worker body: "function" 120*d5c09012SAndroid Build Coastguard Worker }; 121*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "function,update_mask"; 122*d5c09012SAndroid Build Coastguard Worker option (google.longrunning.operation_info) = { 123*d5c09012SAndroid Build Coastguard Worker response_type: "google.cloud.functions.v2.Function" 124*d5c09012SAndroid Build Coastguard Worker metadata_type: "google.cloud.functions.v2.OperationMetadata" 125*d5c09012SAndroid Build Coastguard Worker }; 126*d5c09012SAndroid Build Coastguard Worker } 127*d5c09012SAndroid Build Coastguard Worker 128*d5c09012SAndroid Build Coastguard Worker // Deletes a function with the given name from the specified project. If the 129*d5c09012SAndroid Build Coastguard Worker // given function is used by some trigger, the trigger will be updated to 130*d5c09012SAndroid Build Coastguard Worker // remove this function. 131*d5c09012SAndroid Build Coastguard Worker rpc DeleteFunction(DeleteFunctionRequest) 132*d5c09012SAndroid Build Coastguard Worker returns (google.longrunning.Operation) { 133*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 134*d5c09012SAndroid Build Coastguard Worker delete: "/v2/{name=projects/*/locations/*/functions/*}" 135*d5c09012SAndroid Build Coastguard Worker }; 136*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 137*d5c09012SAndroid Build Coastguard Worker option (google.longrunning.operation_info) = { 138*d5c09012SAndroid Build Coastguard Worker response_type: "google.protobuf.Empty" 139*d5c09012SAndroid Build Coastguard Worker metadata_type: "google.cloud.functions.v2.OperationMetadata" 140*d5c09012SAndroid Build Coastguard Worker }; 141*d5c09012SAndroid Build Coastguard Worker } 142*d5c09012SAndroid Build Coastguard Worker 143*d5c09012SAndroid Build Coastguard Worker // Returns a signed URL for uploading a function source code. 144*d5c09012SAndroid Build Coastguard Worker // For more information about the signed URL usage see: 145*d5c09012SAndroid Build Coastguard Worker // https://cloud.google.com/storage/docs/access-control/signed-urls. 146*d5c09012SAndroid Build Coastguard Worker // Once the function source code upload is complete, the used signed 147*d5c09012SAndroid Build Coastguard Worker // URL should be provided in CreateFunction or UpdateFunction request 148*d5c09012SAndroid Build Coastguard Worker // as a reference to the function source code. 149*d5c09012SAndroid Build Coastguard Worker // 150*d5c09012SAndroid Build Coastguard Worker // When uploading source code to the generated signed URL, please follow 151*d5c09012SAndroid Build Coastguard Worker // these restrictions: 152*d5c09012SAndroid Build Coastguard Worker // 153*d5c09012SAndroid Build Coastguard Worker // * Source file type should be a zip file. 154*d5c09012SAndroid Build Coastguard Worker // * No credentials should be attached - the signed URLs provide access to the 155*d5c09012SAndroid Build Coastguard Worker // target bucket using internal service identity; if credentials were 156*d5c09012SAndroid Build Coastguard Worker // attached, the identity from the credentials would be used, but that 157*d5c09012SAndroid Build Coastguard Worker // identity does not have permissions to upload files to the URL. 158*d5c09012SAndroid Build Coastguard Worker // 159*d5c09012SAndroid Build Coastguard Worker // When making a HTTP PUT request, these two headers need to be specified: 160*d5c09012SAndroid Build Coastguard Worker // 161*d5c09012SAndroid Build Coastguard Worker // * `content-type: application/zip` 162*d5c09012SAndroid Build Coastguard Worker // 163*d5c09012SAndroid Build Coastguard Worker // And this header SHOULD NOT be specified: 164*d5c09012SAndroid Build Coastguard Worker // 165*d5c09012SAndroid Build Coastguard Worker // * `Authorization: Bearer YOUR_TOKEN` 166*d5c09012SAndroid Build Coastguard Worker rpc GenerateUploadUrl(GenerateUploadUrlRequest) 167*d5c09012SAndroid Build Coastguard Worker returns (GenerateUploadUrlResponse) { 168*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 169*d5c09012SAndroid Build Coastguard Worker post: "/v2/{parent=projects/*/locations/*}/functions:generateUploadUrl" 170*d5c09012SAndroid Build Coastguard Worker body: "*" 171*d5c09012SAndroid Build Coastguard Worker }; 172*d5c09012SAndroid Build Coastguard Worker } 173*d5c09012SAndroid Build Coastguard Worker 174*d5c09012SAndroid Build Coastguard Worker // Returns a signed URL for downloading deployed function source code. 175*d5c09012SAndroid Build Coastguard Worker // The URL is only valid for a limited period and should be used within 176*d5c09012SAndroid Build Coastguard Worker // 30 minutes of generation. 177*d5c09012SAndroid Build Coastguard Worker // For more information about the signed URL usage see: 178*d5c09012SAndroid Build Coastguard Worker // https://cloud.google.com/storage/docs/access-control/signed-urls 179*d5c09012SAndroid Build Coastguard Worker rpc GenerateDownloadUrl(GenerateDownloadUrlRequest) 180*d5c09012SAndroid Build Coastguard Worker returns (GenerateDownloadUrlResponse) { 181*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 182*d5c09012SAndroid Build Coastguard Worker post: "/v2/{name=projects/*/locations/*/functions/*}:generateDownloadUrl" 183*d5c09012SAndroid Build Coastguard Worker body: "*" 184*d5c09012SAndroid Build Coastguard Worker }; 185*d5c09012SAndroid Build Coastguard Worker } 186*d5c09012SAndroid Build Coastguard Worker 187*d5c09012SAndroid Build Coastguard Worker // Returns a list of runtimes that are supported for the requested project. 188*d5c09012SAndroid Build Coastguard Worker rpc ListRuntimes(ListRuntimesRequest) returns (ListRuntimesResponse) { 189*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 190*d5c09012SAndroid Build Coastguard Worker get: "/v2/{parent=projects/*/locations/*}/runtimes" 191*d5c09012SAndroid Build Coastguard Worker }; 192*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "parent"; 193*d5c09012SAndroid Build Coastguard Worker } 194*d5c09012SAndroid Build Coastguard Worker} 195*d5c09012SAndroid Build Coastguard Worker 196*d5c09012SAndroid Build Coastguard Worker// The environment the function is hosted on. 197*d5c09012SAndroid Build Coastguard Workerenum Environment { 198*d5c09012SAndroid Build Coastguard Worker // Unspecified 199*d5c09012SAndroid Build Coastguard Worker ENVIRONMENT_UNSPECIFIED = 0; 200*d5c09012SAndroid Build Coastguard Worker 201*d5c09012SAndroid Build Coastguard Worker // Gen 1 202*d5c09012SAndroid Build Coastguard Worker GEN_1 = 1; 203*d5c09012SAndroid Build Coastguard Worker 204*d5c09012SAndroid Build Coastguard Worker // Gen 2 205*d5c09012SAndroid Build Coastguard Worker GEN_2 = 2; 206*d5c09012SAndroid Build Coastguard Worker} 207*d5c09012SAndroid Build Coastguard Worker 208*d5c09012SAndroid Build Coastguard Worker// Describes a Cloud Function that contains user computation executed in 209*d5c09012SAndroid Build Coastguard Worker// response to an event. It encapsulates function and trigger configurations. 210*d5c09012SAndroid Build Coastguard Workermessage Function { 211*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 212*d5c09012SAndroid Build Coastguard Worker type: "cloudfunctions.googleapis.com/Function" 213*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/functions/{function}" 214*d5c09012SAndroid Build Coastguard Worker plural: "functions" 215*d5c09012SAndroid Build Coastguard Worker singular: "function" 216*d5c09012SAndroid Build Coastguard Worker }; 217*d5c09012SAndroid Build Coastguard Worker 218*d5c09012SAndroid Build Coastguard Worker // Describes the current state of the function. 219*d5c09012SAndroid Build Coastguard Worker enum State { 220*d5c09012SAndroid Build Coastguard Worker // Not specified. Invalid state. 221*d5c09012SAndroid Build Coastguard Worker STATE_UNSPECIFIED = 0; 222*d5c09012SAndroid Build Coastguard Worker 223*d5c09012SAndroid Build Coastguard Worker // Function has been successfully deployed and is serving. 224*d5c09012SAndroid Build Coastguard Worker ACTIVE = 1; 225*d5c09012SAndroid Build Coastguard Worker 226*d5c09012SAndroid Build Coastguard Worker // Function deployment failed and the function is not serving. 227*d5c09012SAndroid Build Coastguard Worker FAILED = 2; 228*d5c09012SAndroid Build Coastguard Worker 229*d5c09012SAndroid Build Coastguard Worker // Function is being created or updated. 230*d5c09012SAndroid Build Coastguard Worker DEPLOYING = 3; 231*d5c09012SAndroid Build Coastguard Worker 232*d5c09012SAndroid Build Coastguard Worker // Function is being deleted. 233*d5c09012SAndroid Build Coastguard Worker DELETING = 4; 234*d5c09012SAndroid Build Coastguard Worker 235*d5c09012SAndroid Build Coastguard Worker // Function deployment failed and the function serving state is undefined. 236*d5c09012SAndroid Build Coastguard Worker // The function should be updated or deleted to move it out of this state. 237*d5c09012SAndroid Build Coastguard Worker UNKNOWN = 5; 238*d5c09012SAndroid Build Coastguard Worker } 239*d5c09012SAndroid Build Coastguard Worker 240*d5c09012SAndroid Build Coastguard Worker // A user-defined name of the function. Function names must be unique 241*d5c09012SAndroid Build Coastguard Worker // globally and match pattern `projects/*/locations/*/functions/*` 242*d5c09012SAndroid Build Coastguard Worker string name = 1; 243*d5c09012SAndroid Build Coastguard Worker 244*d5c09012SAndroid Build Coastguard Worker // User-provided description of a function. 245*d5c09012SAndroid Build Coastguard Worker string description = 2; 246*d5c09012SAndroid Build Coastguard Worker 247*d5c09012SAndroid Build Coastguard Worker // Describes the Build step of the function that builds a container from the 248*d5c09012SAndroid Build Coastguard Worker // given source. 249*d5c09012SAndroid Build Coastguard Worker BuildConfig build_config = 3; 250*d5c09012SAndroid Build Coastguard Worker 251*d5c09012SAndroid Build Coastguard Worker // Describes the Service being deployed. Currently deploys services to Cloud 252*d5c09012SAndroid Build Coastguard Worker // Run (fully managed). 253*d5c09012SAndroid Build Coastguard Worker ServiceConfig service_config = 4; 254*d5c09012SAndroid Build Coastguard Worker 255*d5c09012SAndroid Build Coastguard Worker // An Eventarc trigger managed by Google Cloud Functions that fires events in 256*d5c09012SAndroid Build Coastguard Worker // response to a condition in another service. 257*d5c09012SAndroid Build Coastguard Worker EventTrigger event_trigger = 5; 258*d5c09012SAndroid Build Coastguard Worker 259*d5c09012SAndroid Build Coastguard Worker // Output only. State of the function. 260*d5c09012SAndroid Build Coastguard Worker State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 261*d5c09012SAndroid Build Coastguard Worker 262*d5c09012SAndroid Build Coastguard Worker // Output only. The last update timestamp of a Cloud Function. 263*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp update_time = 7 264*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 265*d5c09012SAndroid Build Coastguard Worker 266*d5c09012SAndroid Build Coastguard Worker // Labels associated with this Cloud Function. 267*d5c09012SAndroid Build Coastguard Worker map<string, string> labels = 8; 268*d5c09012SAndroid Build Coastguard Worker 269*d5c09012SAndroid Build Coastguard Worker // Output only. State Messages for this Cloud Function. 270*d5c09012SAndroid Build Coastguard Worker repeated StateMessage state_messages = 9 271*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 272*d5c09012SAndroid Build Coastguard Worker 273*d5c09012SAndroid Build Coastguard Worker // Describe whether the function is 1st Gen or 2nd Gen. 274*d5c09012SAndroid Build Coastguard Worker Environment environment = 10; 275*d5c09012SAndroid Build Coastguard Worker 276*d5c09012SAndroid Build Coastguard Worker // Output only. The deployed url for the function. 277*d5c09012SAndroid Build Coastguard Worker string url = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; 278*d5c09012SAndroid Build Coastguard Worker 279*d5c09012SAndroid Build Coastguard Worker // [Preview] Resource name of a KMS crypto key (managed by the user) used to 280*d5c09012SAndroid Build Coastguard Worker // encrypt/decrypt function resources. 281*d5c09012SAndroid Build Coastguard Worker // 282*d5c09012SAndroid Build Coastguard Worker // It must match the pattern 283*d5c09012SAndroid Build Coastguard Worker // `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`. 284*d5c09012SAndroid Build Coastguard Worker string kms_key_name = 25 [(google.api.resource_reference) = { 285*d5c09012SAndroid Build Coastguard Worker type: "cloudkms.googleapis.com/CryptoKey" 286*d5c09012SAndroid Build Coastguard Worker }]; 287*d5c09012SAndroid Build Coastguard Worker} 288*d5c09012SAndroid Build Coastguard Worker 289*d5c09012SAndroid Build Coastguard Worker// Informational messages about the state of the Cloud Function or Operation. 290*d5c09012SAndroid Build Coastguard Workermessage StateMessage { 291*d5c09012SAndroid Build Coastguard Worker // Severity of the state message. 292*d5c09012SAndroid Build Coastguard Worker enum Severity { 293*d5c09012SAndroid Build Coastguard Worker // Not specified. Invalid severity. 294*d5c09012SAndroid Build Coastguard Worker SEVERITY_UNSPECIFIED = 0; 295*d5c09012SAndroid Build Coastguard Worker 296*d5c09012SAndroid Build Coastguard Worker // ERROR-level severity. 297*d5c09012SAndroid Build Coastguard Worker ERROR = 1; 298*d5c09012SAndroid Build Coastguard Worker 299*d5c09012SAndroid Build Coastguard Worker // WARNING-level severity. 300*d5c09012SAndroid Build Coastguard Worker WARNING = 2; 301*d5c09012SAndroid Build Coastguard Worker 302*d5c09012SAndroid Build Coastguard Worker // INFO-level severity. 303*d5c09012SAndroid Build Coastguard Worker INFO = 3; 304*d5c09012SAndroid Build Coastguard Worker } 305*d5c09012SAndroid Build Coastguard Worker 306*d5c09012SAndroid Build Coastguard Worker // Severity of the state message. 307*d5c09012SAndroid Build Coastguard Worker Severity severity = 1; 308*d5c09012SAndroid Build Coastguard Worker 309*d5c09012SAndroid Build Coastguard Worker // One-word CamelCase type of the state message. 310*d5c09012SAndroid Build Coastguard Worker string type = 2; 311*d5c09012SAndroid Build Coastguard Worker 312*d5c09012SAndroid Build Coastguard Worker // The message. 313*d5c09012SAndroid Build Coastguard Worker string message = 3; 314*d5c09012SAndroid Build Coastguard Worker} 315*d5c09012SAndroid Build Coastguard Worker 316*d5c09012SAndroid Build Coastguard Worker// Location of the source in an archive file in Google Cloud Storage. 317*d5c09012SAndroid Build Coastguard Workermessage StorageSource { 318*d5c09012SAndroid Build Coastguard Worker // Google Cloud Storage bucket containing the source (see 319*d5c09012SAndroid Build Coastguard Worker // [Bucket Name 320*d5c09012SAndroid Build Coastguard Worker // Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). 321*d5c09012SAndroid Build Coastguard Worker string bucket = 1; 322*d5c09012SAndroid Build Coastguard Worker 323*d5c09012SAndroid Build Coastguard Worker // Google Cloud Storage object containing the source. 324*d5c09012SAndroid Build Coastguard Worker // 325*d5c09012SAndroid Build Coastguard Worker // This object must be a gzipped archive file (`.tar.gz`) containing source to 326*d5c09012SAndroid Build Coastguard Worker // build. 327*d5c09012SAndroid Build Coastguard Worker string object = 2; 328*d5c09012SAndroid Build Coastguard Worker 329*d5c09012SAndroid Build Coastguard Worker // Google Cloud Storage generation for the object. If the generation is 330*d5c09012SAndroid Build Coastguard Worker // omitted, the latest generation will be used. 331*d5c09012SAndroid Build Coastguard Worker int64 generation = 3; 332*d5c09012SAndroid Build Coastguard Worker} 333*d5c09012SAndroid Build Coastguard Worker 334*d5c09012SAndroid Build Coastguard Worker// Location of the source in a Google Cloud Source Repository. 335*d5c09012SAndroid Build Coastguard Workermessage RepoSource { 336*d5c09012SAndroid Build Coastguard Worker // A revision within the Cloud Source Repository must be specified in 337*d5c09012SAndroid Build Coastguard Worker // one of these ways. 338*d5c09012SAndroid Build Coastguard Worker oneof revision { 339*d5c09012SAndroid Build Coastguard Worker // Regex matching branches to build. 340*d5c09012SAndroid Build Coastguard Worker // 341*d5c09012SAndroid Build Coastguard Worker // The syntax of the regular expressions accepted is the syntax accepted by 342*d5c09012SAndroid Build Coastguard Worker // RE2 and described at https://github.com/google/re2/wiki/Syntax 343*d5c09012SAndroid Build Coastguard Worker string branch_name = 3; 344*d5c09012SAndroid Build Coastguard Worker 345*d5c09012SAndroid Build Coastguard Worker // Regex matching tags to build. 346*d5c09012SAndroid Build Coastguard Worker // 347*d5c09012SAndroid Build Coastguard Worker // The syntax of the regular expressions accepted is the syntax accepted by 348*d5c09012SAndroid Build Coastguard Worker // RE2 and described at https://github.com/google/re2/wiki/Syntax 349*d5c09012SAndroid Build Coastguard Worker string tag_name = 4; 350*d5c09012SAndroid Build Coastguard Worker 351*d5c09012SAndroid Build Coastguard Worker // Explicit commit SHA to build. 352*d5c09012SAndroid Build Coastguard Worker string commit_sha = 5; 353*d5c09012SAndroid Build Coastguard Worker } 354*d5c09012SAndroid Build Coastguard Worker 355*d5c09012SAndroid Build Coastguard Worker // ID of the project that owns the Cloud Source Repository. If omitted, the 356*d5c09012SAndroid Build Coastguard Worker // project ID requesting the build is assumed. 357*d5c09012SAndroid Build Coastguard Worker string project_id = 1; 358*d5c09012SAndroid Build Coastguard Worker 359*d5c09012SAndroid Build Coastguard Worker // Name of the Cloud Source Repository. 360*d5c09012SAndroid Build Coastguard Worker string repo_name = 2; 361*d5c09012SAndroid Build Coastguard Worker 362*d5c09012SAndroid Build Coastguard Worker // Directory, relative to the source root, in which to run the build. 363*d5c09012SAndroid Build Coastguard Worker // 364*d5c09012SAndroid Build Coastguard Worker // This must be a relative path. If a step's `dir` is specified and is an 365*d5c09012SAndroid Build Coastguard Worker // absolute path, this value is ignored for that step's execution. 366*d5c09012SAndroid Build Coastguard Worker // eg. helloworld (no leading slash allowed) 367*d5c09012SAndroid Build Coastguard Worker string dir = 6; 368*d5c09012SAndroid Build Coastguard Worker 369*d5c09012SAndroid Build Coastguard Worker // Only trigger a build if the revision regex does NOT match the revision 370*d5c09012SAndroid Build Coastguard Worker // regex. 371*d5c09012SAndroid Build Coastguard Worker bool invert_regex = 7; 372*d5c09012SAndroid Build Coastguard Worker} 373*d5c09012SAndroid Build Coastguard Worker 374*d5c09012SAndroid Build Coastguard Worker// The location of the function source code. 375*d5c09012SAndroid Build Coastguard Workermessage Source { 376*d5c09012SAndroid Build Coastguard Worker // Location of the source. 377*d5c09012SAndroid Build Coastguard Worker // At least one source needs to be provided for the deployment to succeed. 378*d5c09012SAndroid Build Coastguard Worker oneof source { 379*d5c09012SAndroid Build Coastguard Worker // If provided, get the source from this location in Google Cloud Storage. 380*d5c09012SAndroid Build Coastguard Worker StorageSource storage_source = 1; 381*d5c09012SAndroid Build Coastguard Worker 382*d5c09012SAndroid Build Coastguard Worker // If provided, get the source from this location in a Cloud Source 383*d5c09012SAndroid Build Coastguard Worker // Repository. 384*d5c09012SAndroid Build Coastguard Worker RepoSource repo_source = 2; 385*d5c09012SAndroid Build Coastguard Worker } 386*d5c09012SAndroid Build Coastguard Worker} 387*d5c09012SAndroid Build Coastguard Worker 388*d5c09012SAndroid Build Coastguard Worker// Provenance of the source. Ways to find the original source, or verify that 389*d5c09012SAndroid Build Coastguard Worker// some source was used for this build. 390*d5c09012SAndroid Build Coastguard Workermessage SourceProvenance { 391*d5c09012SAndroid Build Coastguard Worker // A copy of the build's `source.storage_source`, if exists, with any 392*d5c09012SAndroid Build Coastguard Worker // generations resolved. 393*d5c09012SAndroid Build Coastguard Worker StorageSource resolved_storage_source = 1; 394*d5c09012SAndroid Build Coastguard Worker 395*d5c09012SAndroid Build Coastguard Worker // A copy of the build's `source.repo_source`, if exists, with any 396*d5c09012SAndroid Build Coastguard Worker // revisions resolved. 397*d5c09012SAndroid Build Coastguard Worker RepoSource resolved_repo_source = 2; 398*d5c09012SAndroid Build Coastguard Worker} 399*d5c09012SAndroid Build Coastguard Worker 400*d5c09012SAndroid Build Coastguard Worker// Describes the Build step of the function that builds a container from the 401*d5c09012SAndroid Build Coastguard Worker// given source. 402*d5c09012SAndroid Build Coastguard Workermessage BuildConfig { 403*d5c09012SAndroid Build Coastguard Worker // Docker Registry to use for storing function Docker images. 404*d5c09012SAndroid Build Coastguard Worker enum DockerRegistry { 405*d5c09012SAndroid Build Coastguard Worker // Unspecified. 406*d5c09012SAndroid Build Coastguard Worker DOCKER_REGISTRY_UNSPECIFIED = 0; 407*d5c09012SAndroid Build Coastguard Worker 408*d5c09012SAndroid Build Coastguard Worker // Docker images will be stored in multi-regional Container Registry 409*d5c09012SAndroid Build Coastguard Worker // repositories named `gcf`. 410*d5c09012SAndroid Build Coastguard Worker CONTAINER_REGISTRY = 1; 411*d5c09012SAndroid Build Coastguard Worker 412*d5c09012SAndroid Build Coastguard Worker // Docker images will be stored in regional Artifact Registry repositories. 413*d5c09012SAndroid Build Coastguard Worker // By default, GCF will create and use repositories named `gcf-artifacts` 414*d5c09012SAndroid Build Coastguard Worker // in every region in which a function is deployed. But the repository to 415*d5c09012SAndroid Build Coastguard Worker // use can also be specified by the user using the `docker_repository` 416*d5c09012SAndroid Build Coastguard Worker // field. 417*d5c09012SAndroid Build Coastguard Worker ARTIFACT_REGISTRY = 2; 418*d5c09012SAndroid Build Coastguard Worker } 419*d5c09012SAndroid Build Coastguard Worker 420*d5c09012SAndroid Build Coastguard Worker // Output only. The Cloud Build name of the latest successful deployment of 421*d5c09012SAndroid Build Coastguard Worker // the function. 422*d5c09012SAndroid Build Coastguard Worker string build = 1 [ 423*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = OUTPUT_ONLY, 424*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 425*d5c09012SAndroid Build Coastguard Worker type: "cloudbuild.googleapis.com/Build" 426*d5c09012SAndroid Build Coastguard Worker } 427*d5c09012SAndroid Build Coastguard Worker ]; 428*d5c09012SAndroid Build Coastguard Worker 429*d5c09012SAndroid Build Coastguard Worker // The runtime in which to run the function. Required when deploying a new 430*d5c09012SAndroid Build Coastguard Worker // function, optional when updating an existing function. For a complete 431*d5c09012SAndroid Build Coastguard Worker // list of possible choices, see the 432*d5c09012SAndroid Build Coastguard Worker // [`gcloud` command 433*d5c09012SAndroid Build Coastguard Worker // reference](https://cloud.google.com/sdk/gcloud/reference/functions/deploy#--runtime). 434*d5c09012SAndroid Build Coastguard Worker string runtime = 2; 435*d5c09012SAndroid Build Coastguard Worker 436*d5c09012SAndroid Build Coastguard Worker // The name of the function (as defined in source code) that will be 437*d5c09012SAndroid Build Coastguard Worker // executed. Defaults to the resource name suffix, if not specified. For 438*d5c09012SAndroid Build Coastguard Worker // backward compatibility, if function with given name is not found, then the 439*d5c09012SAndroid Build Coastguard Worker // system will try to use function named "function". 440*d5c09012SAndroid Build Coastguard Worker // For Node.js this is name of a function exported by the module specified 441*d5c09012SAndroid Build Coastguard Worker // in `source_location`. 442*d5c09012SAndroid Build Coastguard Worker string entry_point = 3; 443*d5c09012SAndroid Build Coastguard Worker 444*d5c09012SAndroid Build Coastguard Worker // The location of the function source code. 445*d5c09012SAndroid Build Coastguard Worker Source source = 4; 446*d5c09012SAndroid Build Coastguard Worker 447*d5c09012SAndroid Build Coastguard Worker // Output only. A permanent fixed identifier for source. 448*d5c09012SAndroid Build Coastguard Worker SourceProvenance source_provenance = 8 449*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 450*d5c09012SAndroid Build Coastguard Worker 451*d5c09012SAndroid Build Coastguard Worker // Name of the Cloud Build Custom Worker Pool that should be used to build the 452*d5c09012SAndroid Build Coastguard Worker // function. The format of this field is 453*d5c09012SAndroid Build Coastguard Worker // `projects/{project}/locations/{region}/workerPools/{workerPool}` where 454*d5c09012SAndroid Build Coastguard Worker // {project} and {region} are the project id and region respectively where the 455*d5c09012SAndroid Build Coastguard Worker // worker pool is defined and {workerPool} is the short name of the worker 456*d5c09012SAndroid Build Coastguard Worker // pool. 457*d5c09012SAndroid Build Coastguard Worker // 458*d5c09012SAndroid Build Coastguard Worker // If the project id is not the same as the function, then the Cloud 459*d5c09012SAndroid Build Coastguard Worker // Functions Service Agent 460*d5c09012SAndroid Build Coastguard Worker // (service-<project_number>@gcf-admin-robot.iam.gserviceaccount.com) must be 461*d5c09012SAndroid Build Coastguard Worker // granted the role Cloud Build Custom Workers Builder 462*d5c09012SAndroid Build Coastguard Worker // (roles/cloudbuild.customworkers.builder) in the project. 463*d5c09012SAndroid Build Coastguard Worker string worker_pool = 5 [(google.api.resource_reference) = { 464*d5c09012SAndroid Build Coastguard Worker type: "cloudbuild.googleapis.com/WorkerPool" 465*d5c09012SAndroid Build Coastguard Worker }]; 466*d5c09012SAndroid Build Coastguard Worker 467*d5c09012SAndroid Build Coastguard Worker // User-provided build-time environment variables for the function 468*d5c09012SAndroid Build Coastguard Worker map<string, string> environment_variables = 6; 469*d5c09012SAndroid Build Coastguard Worker 470*d5c09012SAndroid Build Coastguard Worker // Docker Registry to use for this deployment. This configuration is only 471*d5c09012SAndroid Build Coastguard Worker // applicable to 1st Gen functions, 2nd Gen functions can only use Artifact 472*d5c09012SAndroid Build Coastguard Worker // Registry. 473*d5c09012SAndroid Build Coastguard Worker // 474*d5c09012SAndroid Build Coastguard Worker // If `docker_repository` field is specified, this field will be automatically 475*d5c09012SAndroid Build Coastguard Worker // set as `ARTIFACT_REGISTRY`. 476*d5c09012SAndroid Build Coastguard Worker // If unspecified, it currently defaults to `CONTAINER_REGISTRY`. 477*d5c09012SAndroid Build Coastguard Worker // This field may be overridden by the backend for eligible deployments. 478*d5c09012SAndroid Build Coastguard Worker DockerRegistry docker_registry = 10; 479*d5c09012SAndroid Build Coastguard Worker 480*d5c09012SAndroid Build Coastguard Worker // User managed repository created in Artifact Registry optionally 481*d5c09012SAndroid Build Coastguard Worker // with a customer managed encryption key. This is the repository to which the 482*d5c09012SAndroid Build Coastguard Worker // function docker image will be pushed after it is built by Cloud Build. 483*d5c09012SAndroid Build Coastguard Worker // If unspecified, GCF will create and use a repository named 'gcf-artifacts' 484*d5c09012SAndroid Build Coastguard Worker // for every deployed region. 485*d5c09012SAndroid Build Coastguard Worker // 486*d5c09012SAndroid Build Coastguard Worker // It must match the pattern 487*d5c09012SAndroid Build Coastguard Worker // `projects/{project}/locations/{location}/repositories/{repository}`. 488*d5c09012SAndroid Build Coastguard Worker // 489*d5c09012SAndroid Build Coastguard Worker // Cross-project repositories are not supported. 490*d5c09012SAndroid Build Coastguard Worker // Cross-location repositories are not supported. 491*d5c09012SAndroid Build Coastguard Worker // Repository format must be 'DOCKER'. 492*d5c09012SAndroid Build Coastguard Worker string docker_repository = 7 [(google.api.resource_reference) = { 493*d5c09012SAndroid Build Coastguard Worker type: "artifactregistry.googleapis.com/Repository" 494*d5c09012SAndroid Build Coastguard Worker }]; 495*d5c09012SAndroid Build Coastguard Worker} 496*d5c09012SAndroid Build Coastguard Worker 497*d5c09012SAndroid Build Coastguard Worker// Describes the Service being deployed. 498*d5c09012SAndroid Build Coastguard Worker// Currently Supported : Cloud Run (fully managed). 499*d5c09012SAndroid Build Coastguard Workermessage ServiceConfig { 500*d5c09012SAndroid Build Coastguard Worker // Available egress settings. 501*d5c09012SAndroid Build Coastguard Worker // 502*d5c09012SAndroid Build Coastguard Worker // This controls what traffic is diverted through the VPC Access Connector 503*d5c09012SAndroid Build Coastguard Worker // resource. By default PRIVATE_RANGES_ONLY will be used. 504*d5c09012SAndroid Build Coastguard Worker enum VpcConnectorEgressSettings { 505*d5c09012SAndroid Build Coastguard Worker // Unspecified. 506*d5c09012SAndroid Build Coastguard Worker VPC_CONNECTOR_EGRESS_SETTINGS_UNSPECIFIED = 0; 507*d5c09012SAndroid Build Coastguard Worker 508*d5c09012SAndroid Build Coastguard Worker // Use the VPC Access Connector only for private IP space from RFC1918. 509*d5c09012SAndroid Build Coastguard Worker PRIVATE_RANGES_ONLY = 1; 510*d5c09012SAndroid Build Coastguard Worker 511*d5c09012SAndroid Build Coastguard Worker // Force the use of VPC Access Connector for all egress traffic from the 512*d5c09012SAndroid Build Coastguard Worker // function. 513*d5c09012SAndroid Build Coastguard Worker ALL_TRAFFIC = 2; 514*d5c09012SAndroid Build Coastguard Worker } 515*d5c09012SAndroid Build Coastguard Worker 516*d5c09012SAndroid Build Coastguard Worker // Available ingress settings. 517*d5c09012SAndroid Build Coastguard Worker // 518*d5c09012SAndroid Build Coastguard Worker // This controls what traffic can reach the function. 519*d5c09012SAndroid Build Coastguard Worker // 520*d5c09012SAndroid Build Coastguard Worker // If unspecified, ALLOW_ALL will be used. 521*d5c09012SAndroid Build Coastguard Worker enum IngressSettings { 522*d5c09012SAndroid Build Coastguard Worker // Unspecified. 523*d5c09012SAndroid Build Coastguard Worker INGRESS_SETTINGS_UNSPECIFIED = 0; 524*d5c09012SAndroid Build Coastguard Worker 525*d5c09012SAndroid Build Coastguard Worker // Allow HTTP traffic from public and private sources. 526*d5c09012SAndroid Build Coastguard Worker ALLOW_ALL = 1; 527*d5c09012SAndroid Build Coastguard Worker 528*d5c09012SAndroid Build Coastguard Worker // Allow HTTP traffic from only private VPC sources. 529*d5c09012SAndroid Build Coastguard Worker ALLOW_INTERNAL_ONLY = 2; 530*d5c09012SAndroid Build Coastguard Worker 531*d5c09012SAndroid Build Coastguard Worker // Allow HTTP traffic from private VPC sources and through GCLB. 532*d5c09012SAndroid Build Coastguard Worker ALLOW_INTERNAL_AND_GCLB = 3; 533*d5c09012SAndroid Build Coastguard Worker } 534*d5c09012SAndroid Build Coastguard Worker 535*d5c09012SAndroid Build Coastguard Worker // Available security level settings. 536*d5c09012SAndroid Build Coastguard Worker // 537*d5c09012SAndroid Build Coastguard Worker // This enforces security protocol on function URL. 538*d5c09012SAndroid Build Coastguard Worker // 539*d5c09012SAndroid Build Coastguard Worker // Security level is only configurable for 1st Gen functions, If unspecified, 540*d5c09012SAndroid Build Coastguard Worker // SECURE_OPTIONAL will be used. 2nd Gen functions are SECURE_ALWAYS ONLY. 541*d5c09012SAndroid Build Coastguard Worker enum SecurityLevel { 542*d5c09012SAndroid Build Coastguard Worker // Unspecified. 543*d5c09012SAndroid Build Coastguard Worker SECURITY_LEVEL_UNSPECIFIED = 0; 544*d5c09012SAndroid Build Coastguard Worker 545*d5c09012SAndroid Build Coastguard Worker // Requests for a URL that match this handler that do not use HTTPS are 546*d5c09012SAndroid Build Coastguard Worker // automatically redirected to the HTTPS URL with the same path. Query 547*d5c09012SAndroid Build Coastguard Worker // parameters are reserved for the redirect. 548*d5c09012SAndroid Build Coastguard Worker SECURE_ALWAYS = 1; 549*d5c09012SAndroid Build Coastguard Worker 550*d5c09012SAndroid Build Coastguard Worker // Both HTTP and HTTPS requests with URLs that match the handler succeed 551*d5c09012SAndroid Build Coastguard Worker // without redirects. The application can examine the request to determine 552*d5c09012SAndroid Build Coastguard Worker // which protocol was used and respond accordingly. 553*d5c09012SAndroid Build Coastguard Worker SECURE_OPTIONAL = 2; 554*d5c09012SAndroid Build Coastguard Worker } 555*d5c09012SAndroid Build Coastguard Worker 556*d5c09012SAndroid Build Coastguard Worker // Output only. Name of the service associated with a Function. 557*d5c09012SAndroid Build Coastguard Worker // The format of this field is 558*d5c09012SAndroid Build Coastguard Worker // `projects/{project}/locations/{region}/services/{service}` 559*d5c09012SAndroid Build Coastguard Worker string service = 1 [ 560*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = OUTPUT_ONLY, 561*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { type: "run.googleapis.com/Service" } 562*d5c09012SAndroid Build Coastguard Worker ]; 563*d5c09012SAndroid Build Coastguard Worker 564*d5c09012SAndroid Build Coastguard Worker // The function execution timeout. Execution is considered failed and 565*d5c09012SAndroid Build Coastguard Worker // can be terminated if the function is not completed at the end of the 566*d5c09012SAndroid Build Coastguard Worker // timeout period. Defaults to 60 seconds. 567*d5c09012SAndroid Build Coastguard Worker int32 timeout_seconds = 2; 568*d5c09012SAndroid Build Coastguard Worker 569*d5c09012SAndroid Build Coastguard Worker // The amount of memory available for a function. 570*d5c09012SAndroid Build Coastguard Worker // Defaults to 256M. Supported units are k, M, G, Mi, Gi. If no unit is 571*d5c09012SAndroid Build Coastguard Worker // supplied the value is interpreted as bytes. 572*d5c09012SAndroid Build Coastguard Worker // See 573*d5c09012SAndroid Build Coastguard Worker // https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go 574*d5c09012SAndroid Build Coastguard Worker // a full description. 575*d5c09012SAndroid Build Coastguard Worker string available_memory = 13; 576*d5c09012SAndroid Build Coastguard Worker 577*d5c09012SAndroid Build Coastguard Worker // [Preview] The number of CPUs used in a single container instance. 578*d5c09012SAndroid Build Coastguard Worker // Default value is calculated from available memory. 579*d5c09012SAndroid Build Coastguard Worker // Supports the same values as Cloud Run, see 580*d5c09012SAndroid Build Coastguard Worker // https://cloud.google.com/run/docs/reference/rest/v1/Container#resourcerequirements 581*d5c09012SAndroid Build Coastguard Worker // Example: "1" indicates 1 vCPU 582*d5c09012SAndroid Build Coastguard Worker string available_cpu = 22; 583*d5c09012SAndroid Build Coastguard Worker 584*d5c09012SAndroid Build Coastguard Worker // Environment variables that shall be available during function execution. 585*d5c09012SAndroid Build Coastguard Worker map<string, string> environment_variables = 4; 586*d5c09012SAndroid Build Coastguard Worker 587*d5c09012SAndroid Build Coastguard Worker // The limit on the maximum number of function instances that may coexist at a 588*d5c09012SAndroid Build Coastguard Worker // given time. 589*d5c09012SAndroid Build Coastguard Worker // 590*d5c09012SAndroid Build Coastguard Worker // In some cases, such as rapid traffic surges, Cloud Functions may, for a 591*d5c09012SAndroid Build Coastguard Worker // short period of time, create more instances than the specified max 592*d5c09012SAndroid Build Coastguard Worker // instances limit. If your function cannot tolerate this temporary behavior, 593*d5c09012SAndroid Build Coastguard Worker // you may want to factor in a safety margin and set a lower max instances 594*d5c09012SAndroid Build Coastguard Worker // value than your function can tolerate. 595*d5c09012SAndroid Build Coastguard Worker // 596*d5c09012SAndroid Build Coastguard Worker // See the [Max 597*d5c09012SAndroid Build Coastguard Worker // Instances](https://cloud.google.com/functions/docs/max-instances) Guide for 598*d5c09012SAndroid Build Coastguard Worker // more details. 599*d5c09012SAndroid Build Coastguard Worker int32 max_instance_count = 5; 600*d5c09012SAndroid Build Coastguard Worker 601*d5c09012SAndroid Build Coastguard Worker // The limit on the minimum number of function instances that may coexist at a 602*d5c09012SAndroid Build Coastguard Worker // given time. 603*d5c09012SAndroid Build Coastguard Worker // 604*d5c09012SAndroid Build Coastguard Worker // Function instances are kept in idle state for a short period after they 605*d5c09012SAndroid Build Coastguard Worker // finished executing the request to reduce cold start time for subsequent 606*d5c09012SAndroid Build Coastguard Worker // requests. Setting a minimum instance count will ensure that the given 607*d5c09012SAndroid Build Coastguard Worker // number of instances are kept running in idle state always. This can help 608*d5c09012SAndroid Build Coastguard Worker // with cold start times when jump in incoming request count occurs after the 609*d5c09012SAndroid Build Coastguard Worker // idle instance would have been stopped in the default case. 610*d5c09012SAndroid Build Coastguard Worker int32 min_instance_count = 12; 611*d5c09012SAndroid Build Coastguard Worker 612*d5c09012SAndroid Build Coastguard Worker // The Serverless VPC Access connector that this cloud function can connect 613*d5c09012SAndroid Build Coastguard Worker // to. The format of this field is `projects/*/locations/*/connectors/*`. 614*d5c09012SAndroid Build Coastguard Worker string vpc_connector = 6 [(google.api.resource_reference) = { 615*d5c09012SAndroid Build Coastguard Worker type: "vpcaccess.googleapis.com/Connector" 616*d5c09012SAndroid Build Coastguard Worker }]; 617*d5c09012SAndroid Build Coastguard Worker 618*d5c09012SAndroid Build Coastguard Worker // The egress settings for the connector, controlling what traffic is diverted 619*d5c09012SAndroid Build Coastguard Worker // through it. 620*d5c09012SAndroid Build Coastguard Worker VpcConnectorEgressSettings vpc_connector_egress_settings = 7; 621*d5c09012SAndroid Build Coastguard Worker 622*d5c09012SAndroid Build Coastguard Worker // The ingress settings for the function, controlling what traffic can reach 623*d5c09012SAndroid Build Coastguard Worker // it. 624*d5c09012SAndroid Build Coastguard Worker IngressSettings ingress_settings = 8; 625*d5c09012SAndroid Build Coastguard Worker 626*d5c09012SAndroid Build Coastguard Worker // Output only. URI of the Service deployed. 627*d5c09012SAndroid Build Coastguard Worker string uri = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 628*d5c09012SAndroid Build Coastguard Worker 629*d5c09012SAndroid Build Coastguard Worker // The email of the service's service account. If empty, defaults to 630*d5c09012SAndroid Build Coastguard Worker // `{project_number}[email protected]`. 631*d5c09012SAndroid Build Coastguard Worker string service_account_email = 10; 632*d5c09012SAndroid Build Coastguard Worker 633*d5c09012SAndroid Build Coastguard Worker // Whether 100% of traffic is routed to the latest revision. 634*d5c09012SAndroid Build Coastguard Worker // On CreateFunction and UpdateFunction, when set to true, the revision being 635*d5c09012SAndroid Build Coastguard Worker // deployed will serve 100% of traffic, ignoring any traffic split settings, 636*d5c09012SAndroid Build Coastguard Worker // if any. On GetFunction, true will be returned if the latest revision is 637*d5c09012SAndroid Build Coastguard Worker // serving 100% of traffic. 638*d5c09012SAndroid Build Coastguard Worker bool all_traffic_on_latest_revision = 16; 639*d5c09012SAndroid Build Coastguard Worker 640*d5c09012SAndroid Build Coastguard Worker // Secret environment variables configuration. 641*d5c09012SAndroid Build Coastguard Worker repeated SecretEnvVar secret_environment_variables = 17; 642*d5c09012SAndroid Build Coastguard Worker 643*d5c09012SAndroid Build Coastguard Worker // Secret volumes configuration. 644*d5c09012SAndroid Build Coastguard Worker repeated SecretVolume secret_volumes = 19; 645*d5c09012SAndroid Build Coastguard Worker 646*d5c09012SAndroid Build Coastguard Worker // Output only. The name of service revision. 647*d5c09012SAndroid Build Coastguard Worker string revision = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; 648*d5c09012SAndroid Build Coastguard Worker 649*d5c09012SAndroid Build Coastguard Worker // [Preview] Sets the maximum number of concurrent requests that each instance 650*d5c09012SAndroid Build Coastguard Worker // can receive. Defaults to 1. 651*d5c09012SAndroid Build Coastguard Worker int32 max_instance_request_concurrency = 20; 652*d5c09012SAndroid Build Coastguard Worker 653*d5c09012SAndroid Build Coastguard Worker // Security level configure whether the function only accepts https. 654*d5c09012SAndroid Build Coastguard Worker // This configuration is only applicable to 1st Gen functions with Http 655*d5c09012SAndroid Build Coastguard Worker // trigger. By default https is optional for 1st Gen functions; 2nd Gen 656*d5c09012SAndroid Build Coastguard Worker // functions are https ONLY. 657*d5c09012SAndroid Build Coastguard Worker SecurityLevel security_level = 21; 658*d5c09012SAndroid Build Coastguard Worker} 659*d5c09012SAndroid Build Coastguard Worker 660*d5c09012SAndroid Build Coastguard Worker// Configuration for a secret environment variable. It has the information 661*d5c09012SAndroid Build Coastguard Worker// necessary to fetch the secret value from secret manager and expose it as an 662*d5c09012SAndroid Build Coastguard Worker// environment variable. 663*d5c09012SAndroid Build Coastguard Workermessage SecretEnvVar { 664*d5c09012SAndroid Build Coastguard Worker // Name of the environment variable. 665*d5c09012SAndroid Build Coastguard Worker string key = 1; 666*d5c09012SAndroid Build Coastguard Worker 667*d5c09012SAndroid Build Coastguard Worker // Project identifier (preferably project number but can also be the 668*d5c09012SAndroid Build Coastguard Worker // project ID) of the project that contains the secret. If not set, it is 669*d5c09012SAndroid Build Coastguard Worker // assumed that the secret is in the same project as the function. 670*d5c09012SAndroid Build Coastguard Worker string project_id = 2; 671*d5c09012SAndroid Build Coastguard Worker 672*d5c09012SAndroid Build Coastguard Worker // Name of the secret in secret manager (not the full resource name). 673*d5c09012SAndroid Build Coastguard Worker string secret = 3; 674*d5c09012SAndroid Build Coastguard Worker 675*d5c09012SAndroid Build Coastguard Worker // Version of the secret (version number or the string 'latest'). It is 676*d5c09012SAndroid Build Coastguard Worker // recommended to use a numeric version for secret environment variables as 677*d5c09012SAndroid Build Coastguard Worker // any updates to the secret value is not reflected until new instances 678*d5c09012SAndroid Build Coastguard Worker // start. 679*d5c09012SAndroid Build Coastguard Worker string version = 4; 680*d5c09012SAndroid Build Coastguard Worker} 681*d5c09012SAndroid Build Coastguard Worker 682*d5c09012SAndroid Build Coastguard Worker// Configuration for a secret volume. It has the information necessary to fetch 683*d5c09012SAndroid Build Coastguard Worker// the secret value from secret manager and make it available as files mounted 684*d5c09012SAndroid Build Coastguard Worker// at the requested paths within the application container. 685*d5c09012SAndroid Build Coastguard Workermessage SecretVolume { 686*d5c09012SAndroid Build Coastguard Worker // Configuration for a single version. 687*d5c09012SAndroid Build Coastguard Worker message SecretVersion { 688*d5c09012SAndroid Build Coastguard Worker // Version of the secret (version number or the string 'latest'). It is 689*d5c09012SAndroid Build Coastguard Worker // preferable to use `latest` version with secret volumes as secret value 690*d5c09012SAndroid Build Coastguard Worker // changes are reflected immediately. 691*d5c09012SAndroid Build Coastguard Worker string version = 1; 692*d5c09012SAndroid Build Coastguard Worker 693*d5c09012SAndroid Build Coastguard Worker // Relative path of the file under the mount path where the secret value for 694*d5c09012SAndroid Build Coastguard Worker // this version will be fetched and made available. For example, setting the 695*d5c09012SAndroid Build Coastguard Worker // mount_path as '/etc/secrets' and path as `secret_foo` would mount the 696*d5c09012SAndroid Build Coastguard Worker // secret value file at `/etc/secrets/secret_foo`. 697*d5c09012SAndroid Build Coastguard Worker string path = 2; 698*d5c09012SAndroid Build Coastguard Worker } 699*d5c09012SAndroid Build Coastguard Worker 700*d5c09012SAndroid Build Coastguard Worker // The path within the container to mount the secret volume. For example, 701*d5c09012SAndroid Build Coastguard Worker // setting the mount_path as `/etc/secrets` would mount the secret value files 702*d5c09012SAndroid Build Coastguard Worker // under the `/etc/secrets` directory. This directory will also be completely 703*d5c09012SAndroid Build Coastguard Worker // shadowed and unavailable to mount any other secrets. 704*d5c09012SAndroid Build Coastguard Worker // Recommended mount path: /etc/secrets 705*d5c09012SAndroid Build Coastguard Worker string mount_path = 1; 706*d5c09012SAndroid Build Coastguard Worker 707*d5c09012SAndroid Build Coastguard Worker // Project identifier (preferably project number but can also be the project 708*d5c09012SAndroid Build Coastguard Worker // ID) of the project that contains the secret. If not set, it is 709*d5c09012SAndroid Build Coastguard Worker // assumed that the secret is in the same project as the function. 710*d5c09012SAndroid Build Coastguard Worker string project_id = 2; 711*d5c09012SAndroid Build Coastguard Worker 712*d5c09012SAndroid Build Coastguard Worker // Name of the secret in secret manager (not the full resource name). 713*d5c09012SAndroid Build Coastguard Worker string secret = 3; 714*d5c09012SAndroid Build Coastguard Worker 715*d5c09012SAndroid Build Coastguard Worker // List of secret versions to mount for this secret. If empty, the `latest` 716*d5c09012SAndroid Build Coastguard Worker // version of the secret will be made available in a file named after the 717*d5c09012SAndroid Build Coastguard Worker // secret under the mount point. 718*d5c09012SAndroid Build Coastguard Worker repeated SecretVersion versions = 4; 719*d5c09012SAndroid Build Coastguard Worker} 720*d5c09012SAndroid Build Coastguard Worker 721*d5c09012SAndroid Build Coastguard Worker// Describes EventTrigger, used to request events to be sent from another 722*d5c09012SAndroid Build Coastguard Worker// service. 723*d5c09012SAndroid Build Coastguard Workermessage EventTrigger { 724*d5c09012SAndroid Build Coastguard Worker // Describes the retry policy in case of function's execution failure. 725*d5c09012SAndroid Build Coastguard Worker // Retried execution is charged as any other execution. 726*d5c09012SAndroid Build Coastguard Worker enum RetryPolicy { 727*d5c09012SAndroid Build Coastguard Worker // Not specified. 728*d5c09012SAndroid Build Coastguard Worker RETRY_POLICY_UNSPECIFIED = 0; 729*d5c09012SAndroid Build Coastguard Worker 730*d5c09012SAndroid Build Coastguard Worker // Do not retry. 731*d5c09012SAndroid Build Coastguard Worker RETRY_POLICY_DO_NOT_RETRY = 1; 732*d5c09012SAndroid Build Coastguard Worker 733*d5c09012SAndroid Build Coastguard Worker // Retry on any failure, retry up to 7 days with an exponential backoff 734*d5c09012SAndroid Build Coastguard Worker // (capped at 10 seconds). 735*d5c09012SAndroid Build Coastguard Worker RETRY_POLICY_RETRY = 2; 736*d5c09012SAndroid Build Coastguard Worker } 737*d5c09012SAndroid Build Coastguard Worker 738*d5c09012SAndroid Build Coastguard Worker // Output only. The resource name of the Eventarc trigger. The format of this 739*d5c09012SAndroid Build Coastguard Worker // field is `projects/{project}/locations/{region}/triggers/{trigger}`. 740*d5c09012SAndroid Build Coastguard Worker string trigger = 1 [ 741*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = OUTPUT_ONLY, 742*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 743*d5c09012SAndroid Build Coastguard Worker type: "eventarc.googleapis.com/Trigger" 744*d5c09012SAndroid Build Coastguard Worker } 745*d5c09012SAndroid Build Coastguard Worker ]; 746*d5c09012SAndroid Build Coastguard Worker 747*d5c09012SAndroid Build Coastguard Worker // The region that the trigger will be in. The trigger will only receive 748*d5c09012SAndroid Build Coastguard Worker // events originating in this region. It can be the same 749*d5c09012SAndroid Build Coastguard Worker // region as the function, a different region or multi-region, or the global 750*d5c09012SAndroid Build Coastguard Worker // region. If not provided, defaults to the same region as the function. 751*d5c09012SAndroid Build Coastguard Worker string trigger_region = 2; 752*d5c09012SAndroid Build Coastguard Worker 753*d5c09012SAndroid Build Coastguard Worker // Required. The type of event to observe. For example: 754*d5c09012SAndroid Build Coastguard Worker // `google.cloud.audit.log.v1.written` or 755*d5c09012SAndroid Build Coastguard Worker // `google.cloud.pubsub.topic.v1.messagePublished`. 756*d5c09012SAndroid Build Coastguard Worker string event_type = 3 [(google.api.field_behavior) = REQUIRED]; 757*d5c09012SAndroid Build Coastguard Worker 758*d5c09012SAndroid Build Coastguard Worker // Criteria used to filter events. 759*d5c09012SAndroid Build Coastguard Worker repeated EventFilter event_filters = 4; 760*d5c09012SAndroid Build Coastguard Worker 761*d5c09012SAndroid Build Coastguard Worker // Optional. The name of a Pub/Sub topic in the same project that will be used 762*d5c09012SAndroid Build Coastguard Worker // as the transport topic for the event delivery. Format: 763*d5c09012SAndroid Build Coastguard Worker // `projects/{project}/topics/{topic}`. 764*d5c09012SAndroid Build Coastguard Worker // 765*d5c09012SAndroid Build Coastguard Worker // This is only valid for events of type 766*d5c09012SAndroid Build Coastguard Worker // `google.cloud.pubsub.topic.v1.messagePublished`. The topic provided here 767*d5c09012SAndroid Build Coastguard Worker // will not be deleted at function deletion. 768*d5c09012SAndroid Build Coastguard Worker string pubsub_topic = 5 [ 769*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = OPTIONAL, 770*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { type: "pubsub.googleapis.com/Topic" } 771*d5c09012SAndroid Build Coastguard Worker ]; 772*d5c09012SAndroid Build Coastguard Worker 773*d5c09012SAndroid Build Coastguard Worker // Optional. The email of the trigger's service account. The service account 774*d5c09012SAndroid Build Coastguard Worker // must have permission to invoke Cloud Run services, the permission is 775*d5c09012SAndroid Build Coastguard Worker // `run.routes.invoke`. 776*d5c09012SAndroid Build Coastguard Worker // If empty, defaults to the Compute Engine default service account: 777*d5c09012SAndroid Build Coastguard Worker // `{project_number}[email protected]`. 778*d5c09012SAndroid Build Coastguard Worker string service_account_email = 6 [(google.api.field_behavior) = OPTIONAL]; 779*d5c09012SAndroid Build Coastguard Worker 780*d5c09012SAndroid Build Coastguard Worker // Optional. If unset, then defaults to ignoring failures (i.e. not retrying 781*d5c09012SAndroid Build Coastguard Worker // them). 782*d5c09012SAndroid Build Coastguard Worker RetryPolicy retry_policy = 7 [(google.api.field_behavior) = OPTIONAL]; 783*d5c09012SAndroid Build Coastguard Worker 784*d5c09012SAndroid Build Coastguard Worker // Optional. The name of the channel associated with the trigger in 785*d5c09012SAndroid Build Coastguard Worker // `projects/{project}/locations/{location}/channels/{channel}` format. 786*d5c09012SAndroid Build Coastguard Worker // You must provide a channel to receive events from Eventarc SaaS partners. 787*d5c09012SAndroid Build Coastguard Worker string channel = 8 [ 788*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = OPTIONAL, 789*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 790*d5c09012SAndroid Build Coastguard Worker type: "eventarc.googleapis.com/Channel" 791*d5c09012SAndroid Build Coastguard Worker } 792*d5c09012SAndroid Build Coastguard Worker ]; 793*d5c09012SAndroid Build Coastguard Worker} 794*d5c09012SAndroid Build Coastguard Worker 795*d5c09012SAndroid Build Coastguard Worker// Filters events based on exact matches on the CloudEvents attributes. 796*d5c09012SAndroid Build Coastguard Workermessage EventFilter { 797*d5c09012SAndroid Build Coastguard Worker // Required. The name of a CloudEvents attribute. 798*d5c09012SAndroid Build Coastguard Worker string attribute = 1 [(google.api.field_behavior) = REQUIRED]; 799*d5c09012SAndroid Build Coastguard Worker 800*d5c09012SAndroid Build Coastguard Worker // Required. The value for the attribute. 801*d5c09012SAndroid Build Coastguard Worker string value = 2 [(google.api.field_behavior) = REQUIRED]; 802*d5c09012SAndroid Build Coastguard Worker 803*d5c09012SAndroid Build Coastguard Worker // Optional. The operator used for matching the events with the value of the 804*d5c09012SAndroid Build Coastguard Worker // filter. If not specified, only events that have an exact key-value pair 805*d5c09012SAndroid Build Coastguard Worker // specified in the filter are matched. The only allowed value is 806*d5c09012SAndroid Build Coastguard Worker // `match-path-pattern`. 807*d5c09012SAndroid Build Coastguard Worker string operator = 3 [(google.api.field_behavior) = OPTIONAL]; 808*d5c09012SAndroid Build Coastguard Worker} 809*d5c09012SAndroid Build Coastguard Worker 810*d5c09012SAndroid Build Coastguard Worker// Request for the `GetFunction` method. 811*d5c09012SAndroid Build Coastguard Workermessage GetFunctionRequest { 812*d5c09012SAndroid Build Coastguard Worker // Required. The name of the function which details should be obtained. 813*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 814*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 815*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 816*d5c09012SAndroid Build Coastguard Worker type: "cloudfunctions.googleapis.com/Function" 817*d5c09012SAndroid Build Coastguard Worker } 818*d5c09012SAndroid Build Coastguard Worker ]; 819*d5c09012SAndroid Build Coastguard Worker} 820*d5c09012SAndroid Build Coastguard Worker 821*d5c09012SAndroid Build Coastguard Worker// Request for the `ListFunctions` method. 822*d5c09012SAndroid Build Coastguard Workermessage ListFunctionsRequest { 823*d5c09012SAndroid Build Coastguard Worker // Required. The project and location from which the function should be 824*d5c09012SAndroid Build Coastguard Worker // listed, specified in the format `projects/*/locations/*` If you want to 825*d5c09012SAndroid Build Coastguard Worker // list functions in all locations, use "-" in place of a location. When 826*d5c09012SAndroid Build Coastguard Worker // listing functions in all locations, if one or more location(s) are 827*d5c09012SAndroid Build Coastguard Worker // unreachable, the response will contain functions from all reachable 828*d5c09012SAndroid Build Coastguard Worker // locations along with the names of any unreachable locations. 829*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 830*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 831*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 832*d5c09012SAndroid Build Coastguard Worker child_type: "cloudfunctions.googleapis.com/Function" 833*d5c09012SAndroid Build Coastguard Worker } 834*d5c09012SAndroid Build Coastguard Worker ]; 835*d5c09012SAndroid Build Coastguard Worker 836*d5c09012SAndroid Build Coastguard Worker // Maximum number of functions to return per call. The largest allowed 837*d5c09012SAndroid Build Coastguard Worker // page_size is 1,000, if the page_size is omitted or specified as greater 838*d5c09012SAndroid Build Coastguard Worker // than 1,000 then it will be replaced as 1,000. The size of the list 839*d5c09012SAndroid Build Coastguard Worker // response can be less than specified when used with filters. 840*d5c09012SAndroid Build Coastguard Worker int32 page_size = 2; 841*d5c09012SAndroid Build Coastguard Worker 842*d5c09012SAndroid Build Coastguard Worker // The value returned by the last 843*d5c09012SAndroid Build Coastguard Worker // `ListFunctionsResponse`; indicates that 844*d5c09012SAndroid Build Coastguard Worker // this is a continuation of a prior `ListFunctions` call, and that the 845*d5c09012SAndroid Build Coastguard Worker // system should return the next page of data. 846*d5c09012SAndroid Build Coastguard Worker string page_token = 3; 847*d5c09012SAndroid Build Coastguard Worker 848*d5c09012SAndroid Build Coastguard Worker // The filter for Functions that match the filter expression, 849*d5c09012SAndroid Build Coastguard Worker // following the syntax outlined in https://google.aip.dev/160. 850*d5c09012SAndroid Build Coastguard Worker string filter = 4; 851*d5c09012SAndroid Build Coastguard Worker 852*d5c09012SAndroid Build Coastguard Worker // The sorting order of the resources returned. Value should be a comma 853*d5c09012SAndroid Build Coastguard Worker // separated list of fields. The default sorting oder is ascending. 854*d5c09012SAndroid Build Coastguard Worker // See https://google.aip.dev/132#ordering. 855*d5c09012SAndroid Build Coastguard Worker string order_by = 5; 856*d5c09012SAndroid Build Coastguard Worker} 857*d5c09012SAndroid Build Coastguard Worker 858*d5c09012SAndroid Build Coastguard Worker// Response for the `ListFunctions` method. 859*d5c09012SAndroid Build Coastguard Workermessage ListFunctionsResponse { 860*d5c09012SAndroid Build Coastguard Worker // The functions that match the request. 861*d5c09012SAndroid Build Coastguard Worker repeated Function functions = 1; 862*d5c09012SAndroid Build Coastguard Worker 863*d5c09012SAndroid Build Coastguard Worker // A token, which can be sent as `page_token` to retrieve the next page. 864*d5c09012SAndroid Build Coastguard Worker // If this field is omitted, there are no subsequent pages. 865*d5c09012SAndroid Build Coastguard Worker string next_page_token = 2; 866*d5c09012SAndroid Build Coastguard Worker 867*d5c09012SAndroid Build Coastguard Worker // Locations that could not be reached. The response does not include any 868*d5c09012SAndroid Build Coastguard Worker // functions from these locations. 869*d5c09012SAndroid Build Coastguard Worker repeated string unreachable = 3; 870*d5c09012SAndroid Build Coastguard Worker} 871*d5c09012SAndroid Build Coastguard Worker 872*d5c09012SAndroid Build Coastguard Worker// Request for the `CreateFunction` method. 873*d5c09012SAndroid Build Coastguard Workermessage CreateFunctionRequest { 874*d5c09012SAndroid Build Coastguard Worker // Required. The project and location in which the function should be created, 875*d5c09012SAndroid Build Coastguard Worker // specified in the format `projects/*/locations/*` 876*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 877*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 878*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 879*d5c09012SAndroid Build Coastguard Worker type: "locations.googleapis.com/Location" 880*d5c09012SAndroid Build Coastguard Worker } 881*d5c09012SAndroid Build Coastguard Worker ]; 882*d5c09012SAndroid Build Coastguard Worker 883*d5c09012SAndroid Build Coastguard Worker // Required. Function to be created. 884*d5c09012SAndroid Build Coastguard Worker Function function = 2 [(google.api.field_behavior) = REQUIRED]; 885*d5c09012SAndroid Build Coastguard Worker 886*d5c09012SAndroid Build Coastguard Worker // The ID to use for the function, which will become the final component of 887*d5c09012SAndroid Build Coastguard Worker // the function's resource name. 888*d5c09012SAndroid Build Coastguard Worker // 889*d5c09012SAndroid Build Coastguard Worker // This value should be 4-63 characters, and valid characters 890*d5c09012SAndroid Build Coastguard Worker // are /[a-z][0-9]-/. 891*d5c09012SAndroid Build Coastguard Worker string function_id = 3; 892*d5c09012SAndroid Build Coastguard Worker} 893*d5c09012SAndroid Build Coastguard Worker 894*d5c09012SAndroid Build Coastguard Worker// Request for the `UpdateFunction` method. 895*d5c09012SAndroid Build Coastguard Workermessage UpdateFunctionRequest { 896*d5c09012SAndroid Build Coastguard Worker // Required. New version of the function. 897*d5c09012SAndroid Build Coastguard Worker Function function = 1 [(google.api.field_behavior) = REQUIRED]; 898*d5c09012SAndroid Build Coastguard Worker 899*d5c09012SAndroid Build Coastguard Worker // The list of fields to be updated. 900*d5c09012SAndroid Build Coastguard Worker // If no field mask is provided, all provided fields in the request will be 901*d5c09012SAndroid Build Coastguard Worker // updated. 902*d5c09012SAndroid Build Coastguard Worker google.protobuf.FieldMask update_mask = 2; 903*d5c09012SAndroid Build Coastguard Worker} 904*d5c09012SAndroid Build Coastguard Worker 905*d5c09012SAndroid Build Coastguard Worker// Request for the `DeleteFunction` method. 906*d5c09012SAndroid Build Coastguard Workermessage DeleteFunctionRequest { 907*d5c09012SAndroid Build Coastguard Worker // Required. The name of the function which should be deleted. 908*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 909*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 910*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 911*d5c09012SAndroid Build Coastguard Worker type: "cloudfunctions.googleapis.com/Function" 912*d5c09012SAndroid Build Coastguard Worker } 913*d5c09012SAndroid Build Coastguard Worker ]; 914*d5c09012SAndroid Build Coastguard Worker} 915*d5c09012SAndroid Build Coastguard Worker 916*d5c09012SAndroid Build Coastguard Worker// Request of `GenerateSourceUploadUrl` method. 917*d5c09012SAndroid Build Coastguard Workermessage GenerateUploadUrlRequest { 918*d5c09012SAndroid Build Coastguard Worker // Required. The project and location in which the Google Cloud Storage signed 919*d5c09012SAndroid Build Coastguard Worker // URL should be generated, specified in the format `projects/*/locations/*`. 920*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 921*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 922*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 923*d5c09012SAndroid Build Coastguard Worker type: "locations.googleapis.com/Location" 924*d5c09012SAndroid Build Coastguard Worker } 925*d5c09012SAndroid Build Coastguard Worker ]; 926*d5c09012SAndroid Build Coastguard Worker 927*d5c09012SAndroid Build Coastguard Worker // [Preview] Resource name of a KMS crypto key (managed by the user) used to 928*d5c09012SAndroid Build Coastguard Worker // encrypt/decrypt function source code objects in intermediate Cloud Storage 929*d5c09012SAndroid Build Coastguard Worker // buckets. When you generate an upload url and upload your source code, it 930*d5c09012SAndroid Build Coastguard Worker // gets copied to an intermediate Cloud Storage bucket. The source code is 931*d5c09012SAndroid Build Coastguard Worker // then copied to a versioned directory in the sources bucket in the consumer 932*d5c09012SAndroid Build Coastguard Worker // project during the function deployment. 933*d5c09012SAndroid Build Coastguard Worker // 934*d5c09012SAndroid Build Coastguard Worker // It must match the pattern 935*d5c09012SAndroid Build Coastguard Worker // `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`. 936*d5c09012SAndroid Build Coastguard Worker // 937*d5c09012SAndroid Build Coastguard Worker // The Google Cloud Functions service account 938*d5c09012SAndroid Build Coastguard Worker // (service-{project_number}@gcf-admin-robot.iam.gserviceaccount.com) must be 939*d5c09012SAndroid Build Coastguard Worker // granted the role 'Cloud KMS CryptoKey Encrypter/Decrypter 940*d5c09012SAndroid Build Coastguard Worker // (roles/cloudkms.cryptoKeyEncrypterDecrypter)' on the 941*d5c09012SAndroid Build Coastguard Worker // Key/KeyRing/Project/Organization (least access preferred). 942*d5c09012SAndroid Build Coastguard Worker string kms_key_name = 2 [(google.api.resource_reference) = { 943*d5c09012SAndroid Build Coastguard Worker type: "cloudkms.googleapis.com/CryptoKey" 944*d5c09012SAndroid Build Coastguard Worker }]; 945*d5c09012SAndroid Build Coastguard Worker} 946*d5c09012SAndroid Build Coastguard Worker 947*d5c09012SAndroid Build Coastguard Worker// Response of `GenerateSourceUploadUrl` method. 948*d5c09012SAndroid Build Coastguard Workermessage GenerateUploadUrlResponse { 949*d5c09012SAndroid Build Coastguard Worker // The generated Google Cloud Storage signed URL that should be used for a 950*d5c09012SAndroid Build Coastguard Worker // function source code upload. The uploaded file should be a zip archive 951*d5c09012SAndroid Build Coastguard Worker // which contains a function. 952*d5c09012SAndroid Build Coastguard Worker string upload_url = 1; 953*d5c09012SAndroid Build Coastguard Worker 954*d5c09012SAndroid Build Coastguard Worker // The location of the source code in the upload bucket. 955*d5c09012SAndroid Build Coastguard Worker // 956*d5c09012SAndroid Build Coastguard Worker // Once the archive is uploaded using the `upload_url` use this field to 957*d5c09012SAndroid Build Coastguard Worker // set the `function.build_config.source.storage_source` 958*d5c09012SAndroid Build Coastguard Worker // during CreateFunction and UpdateFunction. 959*d5c09012SAndroid Build Coastguard Worker // 960*d5c09012SAndroid Build Coastguard Worker // Generation defaults to 0, as Cloud Storage provides a new generation only 961*d5c09012SAndroid Build Coastguard Worker // upon uploading a new object or version of an object. 962*d5c09012SAndroid Build Coastguard Worker StorageSource storage_source = 2; 963*d5c09012SAndroid Build Coastguard Worker} 964*d5c09012SAndroid Build Coastguard Worker 965*d5c09012SAndroid Build Coastguard Worker// Request of `GenerateDownloadUrl` method. 966*d5c09012SAndroid Build Coastguard Workermessage GenerateDownloadUrlRequest { 967*d5c09012SAndroid Build Coastguard Worker // Required. The name of function for which source code Google Cloud Storage 968*d5c09012SAndroid Build Coastguard Worker // signed URL should be generated. 969*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 970*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 971*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 972*d5c09012SAndroid Build Coastguard Worker type: "cloudfunctions.googleapis.com/Function" 973*d5c09012SAndroid Build Coastguard Worker } 974*d5c09012SAndroid Build Coastguard Worker ]; 975*d5c09012SAndroid Build Coastguard Worker} 976*d5c09012SAndroid Build Coastguard Worker 977*d5c09012SAndroid Build Coastguard Worker// Response of `GenerateDownloadUrl` method. 978*d5c09012SAndroid Build Coastguard Workermessage GenerateDownloadUrlResponse { 979*d5c09012SAndroid Build Coastguard Worker // The generated Google Cloud Storage signed URL that should be used for 980*d5c09012SAndroid Build Coastguard Worker // function source code download. 981*d5c09012SAndroid Build Coastguard Worker string download_url = 1; 982*d5c09012SAndroid Build Coastguard Worker} 983*d5c09012SAndroid Build Coastguard Worker 984*d5c09012SAndroid Build Coastguard Worker// Request for the `ListRuntimes` method. 985*d5c09012SAndroid Build Coastguard Workermessage ListRuntimesRequest { 986*d5c09012SAndroid Build Coastguard Worker // Required. The project and location from which the runtimes should be 987*d5c09012SAndroid Build Coastguard Worker // listed, specified in the format `projects/*/locations/*` 988*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 989*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 990*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 991*d5c09012SAndroid Build Coastguard Worker type: "locations.googleapis.com/Location" 992*d5c09012SAndroid Build Coastguard Worker } 993*d5c09012SAndroid Build Coastguard Worker ]; 994*d5c09012SAndroid Build Coastguard Worker 995*d5c09012SAndroid Build Coastguard Worker // The filter for Runtimes that match the filter expression, 996*d5c09012SAndroid Build Coastguard Worker // following the syntax outlined in https://google.aip.dev/160. 997*d5c09012SAndroid Build Coastguard Worker string filter = 2; 998*d5c09012SAndroid Build Coastguard Worker} 999*d5c09012SAndroid Build Coastguard Worker 1000*d5c09012SAndroid Build Coastguard Worker// Response for the `ListRuntimes` method. 1001*d5c09012SAndroid Build Coastguard Workermessage ListRuntimesResponse { 1002*d5c09012SAndroid Build Coastguard Worker // Describes a runtime and any special information (e.g., deprecation status) 1003*d5c09012SAndroid Build Coastguard Worker // related to it. 1004*d5c09012SAndroid Build Coastguard Worker message Runtime { 1005*d5c09012SAndroid Build Coastguard Worker // The name of the runtime, e.g., 'go113', 'nodejs12', etc. 1006*d5c09012SAndroid Build Coastguard Worker string name = 1; 1007*d5c09012SAndroid Build Coastguard Worker 1008*d5c09012SAndroid Build Coastguard Worker // The user facing name, eg 'Go 1.13', 'Node.js 12', etc. 1009*d5c09012SAndroid Build Coastguard Worker string display_name = 5; 1010*d5c09012SAndroid Build Coastguard Worker 1011*d5c09012SAndroid Build Coastguard Worker // The stage of life this runtime is in, e.g., BETA, GA, etc. 1012*d5c09012SAndroid Build Coastguard Worker RuntimeStage stage = 2; 1013*d5c09012SAndroid Build Coastguard Worker 1014*d5c09012SAndroid Build Coastguard Worker // Warning messages, e.g., a deprecation warning. 1015*d5c09012SAndroid Build Coastguard Worker repeated string warnings = 3; 1016*d5c09012SAndroid Build Coastguard Worker 1017*d5c09012SAndroid Build Coastguard Worker // The environment for the runtime. 1018*d5c09012SAndroid Build Coastguard Worker Environment environment = 4; 1019*d5c09012SAndroid Build Coastguard Worker } 1020*d5c09012SAndroid Build Coastguard Worker 1021*d5c09012SAndroid Build Coastguard Worker // The various stages that a runtime can be in. 1022*d5c09012SAndroid Build Coastguard Worker enum RuntimeStage { 1023*d5c09012SAndroid Build Coastguard Worker // Not specified. 1024*d5c09012SAndroid Build Coastguard Worker RUNTIME_STAGE_UNSPECIFIED = 0; 1025*d5c09012SAndroid Build Coastguard Worker 1026*d5c09012SAndroid Build Coastguard Worker // The runtime is in development. 1027*d5c09012SAndroid Build Coastguard Worker DEVELOPMENT = 1; 1028*d5c09012SAndroid Build Coastguard Worker 1029*d5c09012SAndroid Build Coastguard Worker // The runtime is in the Alpha stage. 1030*d5c09012SAndroid Build Coastguard Worker ALPHA = 2; 1031*d5c09012SAndroid Build Coastguard Worker 1032*d5c09012SAndroid Build Coastguard Worker // The runtime is in the Beta stage. 1033*d5c09012SAndroid Build Coastguard Worker BETA = 3; 1034*d5c09012SAndroid Build Coastguard Worker 1035*d5c09012SAndroid Build Coastguard Worker // The runtime is generally available. 1036*d5c09012SAndroid Build Coastguard Worker GA = 4; 1037*d5c09012SAndroid Build Coastguard Worker 1038*d5c09012SAndroid Build Coastguard Worker // The runtime is deprecated. 1039*d5c09012SAndroid Build Coastguard Worker DEPRECATED = 5; 1040*d5c09012SAndroid Build Coastguard Worker 1041*d5c09012SAndroid Build Coastguard Worker // The runtime is no longer supported. 1042*d5c09012SAndroid Build Coastguard Worker DECOMMISSIONED = 6; 1043*d5c09012SAndroid Build Coastguard Worker } 1044*d5c09012SAndroid Build Coastguard Worker 1045*d5c09012SAndroid Build Coastguard Worker // The runtimes that match the request. 1046*d5c09012SAndroid Build Coastguard Worker repeated Runtime runtimes = 1; 1047*d5c09012SAndroid Build Coastguard Worker} 1048*d5c09012SAndroid Build Coastguard Worker 1049*d5c09012SAndroid Build Coastguard Worker// Represents the metadata of the long-running operation. 1050*d5c09012SAndroid Build Coastguard Workermessage OperationMetadata { 1051*d5c09012SAndroid Build Coastguard Worker // The time the operation was created. 1052*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp create_time = 1; 1053*d5c09012SAndroid Build Coastguard Worker 1054*d5c09012SAndroid Build Coastguard Worker // The time the operation finished running. 1055*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp end_time = 2; 1056*d5c09012SAndroid Build Coastguard Worker 1057*d5c09012SAndroid Build Coastguard Worker // Server-defined resource path for the target of the operation. 1058*d5c09012SAndroid Build Coastguard Worker string target = 3; 1059*d5c09012SAndroid Build Coastguard Worker 1060*d5c09012SAndroid Build Coastguard Worker // Name of the verb executed by the operation. 1061*d5c09012SAndroid Build Coastguard Worker string verb = 4; 1062*d5c09012SAndroid Build Coastguard Worker 1063*d5c09012SAndroid Build Coastguard Worker // Human-readable status of the operation, if any. 1064*d5c09012SAndroid Build Coastguard Worker string status_detail = 5; 1065*d5c09012SAndroid Build Coastguard Worker 1066*d5c09012SAndroid Build Coastguard Worker // Identifies whether the user has requested cancellation 1067*d5c09012SAndroid Build Coastguard Worker // of the operation. Operations that have successfully been cancelled 1068*d5c09012SAndroid Build Coastguard Worker // have [Operation.error][] value with a 1069*d5c09012SAndroid Build Coastguard Worker // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to 1070*d5c09012SAndroid Build Coastguard Worker // `Code.CANCELLED`. 1071*d5c09012SAndroid Build Coastguard Worker bool cancel_requested = 6; 1072*d5c09012SAndroid Build Coastguard Worker 1073*d5c09012SAndroid Build Coastguard Worker // API version used to start the operation. 1074*d5c09012SAndroid Build Coastguard Worker string api_version = 7; 1075*d5c09012SAndroid Build Coastguard Worker 1076*d5c09012SAndroid Build Coastguard Worker // The original request that started the operation. 1077*d5c09012SAndroid Build Coastguard Worker google.protobuf.Any request_resource = 8; 1078*d5c09012SAndroid Build Coastguard Worker 1079*d5c09012SAndroid Build Coastguard Worker // Mechanism for reporting in-progress stages 1080*d5c09012SAndroid Build Coastguard Worker repeated Stage stages = 9; 1081*d5c09012SAndroid Build Coastguard Worker} 1082*d5c09012SAndroid Build Coastguard Worker 1083*d5c09012SAndroid Build Coastguard Worker// Extra GCF specific location information. 1084*d5c09012SAndroid Build Coastguard Workermessage LocationMetadata { 1085*d5c09012SAndroid Build Coastguard Worker // The Cloud Function environments this location supports. 1086*d5c09012SAndroid Build Coastguard Worker repeated Environment environments = 1; 1087*d5c09012SAndroid Build Coastguard Worker} 1088*d5c09012SAndroid Build Coastguard Worker 1089*d5c09012SAndroid Build Coastguard Worker// Each Stage of the deployment process 1090*d5c09012SAndroid Build Coastguard Workermessage Stage { 1091*d5c09012SAndroid Build Coastguard Worker // Possible names for a Stage 1092*d5c09012SAndroid Build Coastguard Worker enum Name { 1093*d5c09012SAndroid Build Coastguard Worker // Not specified. Invalid name. 1094*d5c09012SAndroid Build Coastguard Worker NAME_UNSPECIFIED = 0; 1095*d5c09012SAndroid Build Coastguard Worker 1096*d5c09012SAndroid Build Coastguard Worker // Artifact Regsitry Stage 1097*d5c09012SAndroid Build Coastguard Worker ARTIFACT_REGISTRY = 1; 1098*d5c09012SAndroid Build Coastguard Worker 1099*d5c09012SAndroid Build Coastguard Worker // Build Stage 1100*d5c09012SAndroid Build Coastguard Worker BUILD = 2; 1101*d5c09012SAndroid Build Coastguard Worker 1102*d5c09012SAndroid Build Coastguard Worker // Service Stage 1103*d5c09012SAndroid Build Coastguard Worker SERVICE = 3; 1104*d5c09012SAndroid Build Coastguard Worker 1105*d5c09012SAndroid Build Coastguard Worker // Trigger Stage 1106*d5c09012SAndroid Build Coastguard Worker TRIGGER = 4; 1107*d5c09012SAndroid Build Coastguard Worker 1108*d5c09012SAndroid Build Coastguard Worker // Service Rollback Stage 1109*d5c09012SAndroid Build Coastguard Worker SERVICE_ROLLBACK = 5; 1110*d5c09012SAndroid Build Coastguard Worker 1111*d5c09012SAndroid Build Coastguard Worker // Trigger Rollback Stage 1112*d5c09012SAndroid Build Coastguard Worker TRIGGER_ROLLBACK = 6; 1113*d5c09012SAndroid Build Coastguard Worker } 1114*d5c09012SAndroid Build Coastguard Worker 1115*d5c09012SAndroid Build Coastguard Worker // Possible states for a Stage 1116*d5c09012SAndroid Build Coastguard Worker enum State { 1117*d5c09012SAndroid Build Coastguard Worker // Not specified. Invalid state. 1118*d5c09012SAndroid Build Coastguard Worker STATE_UNSPECIFIED = 0; 1119*d5c09012SAndroid Build Coastguard Worker 1120*d5c09012SAndroid Build Coastguard Worker // Stage has not started. 1121*d5c09012SAndroid Build Coastguard Worker NOT_STARTED = 1; 1122*d5c09012SAndroid Build Coastguard Worker 1123*d5c09012SAndroid Build Coastguard Worker // Stage is in progress. 1124*d5c09012SAndroid Build Coastguard Worker IN_PROGRESS = 2; 1125*d5c09012SAndroid Build Coastguard Worker 1126*d5c09012SAndroid Build Coastguard Worker // Stage has completed. 1127*d5c09012SAndroid Build Coastguard Worker COMPLETE = 3; 1128*d5c09012SAndroid Build Coastguard Worker } 1129*d5c09012SAndroid Build Coastguard Worker 1130*d5c09012SAndroid Build Coastguard Worker // Name of the Stage. This will be unique for each Stage. 1131*d5c09012SAndroid Build Coastguard Worker Name name = 1; 1132*d5c09012SAndroid Build Coastguard Worker 1133*d5c09012SAndroid Build Coastguard Worker // Message describing the Stage 1134*d5c09012SAndroid Build Coastguard Worker string message = 2; 1135*d5c09012SAndroid Build Coastguard Worker 1136*d5c09012SAndroid Build Coastguard Worker // Current state of the Stage 1137*d5c09012SAndroid Build Coastguard Worker State state = 3; 1138*d5c09012SAndroid Build Coastguard Worker 1139*d5c09012SAndroid Build Coastguard Worker // Resource of the Stage 1140*d5c09012SAndroid Build Coastguard Worker string resource = 4; 1141*d5c09012SAndroid Build Coastguard Worker 1142*d5c09012SAndroid Build Coastguard Worker // Link to the current Stage resource 1143*d5c09012SAndroid Build Coastguard Worker string resource_uri = 5; 1144*d5c09012SAndroid Build Coastguard Worker 1145*d5c09012SAndroid Build Coastguard Worker // State messages from the current Stage. 1146*d5c09012SAndroid Build Coastguard Worker repeated StateMessage state_messages = 6; 1147*d5c09012SAndroid Build Coastguard Worker} 1148