xref: /aosp_15_r20/external/googleapis/google/cloud/functions/v2/functions.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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