xref: /aosp_15_r20/external/googleapis/google/devtools/cloudbuild/v1/cloudbuild.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.devtools.cloudbuild.v1;
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/httpbody.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/api/routing.proto";
25*d5c09012SAndroid Build Coastguard Workerimport "google/longrunning/operations.proto";
26*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/duration.proto";
27*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto";
28*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto";
29*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
30*d5c09012SAndroid Build Coastguard Worker
31*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.CloudBuild.V1";
32*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/cloudbuild/apiv1/v2/cloudbuildpb;cloudbuildpb";
33*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
34*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloudbuild.v1";
35*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "GCB";
36*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\Build\\V1";
37*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::Build::V1";
38*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = {
39*d5c09012SAndroid Build Coastguard Worker  type: "compute.googleapis.com/Network"
40*d5c09012SAndroid Build Coastguard Worker  pattern: "projects/{project}/global/networks/{network}"
41*d5c09012SAndroid Build Coastguard Worker};
42*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = {
43*d5c09012SAndroid Build Coastguard Worker  type: "iam.googleapis.com/ServiceAccount"
44*d5c09012SAndroid Build Coastguard Worker  pattern: "projects/{project}/serviceAccounts/{service_account}"
45*d5c09012SAndroid Build Coastguard Worker};
46*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = {
47*d5c09012SAndroid Build Coastguard Worker  type: "secretmanager.googleapis.com/Secret"
48*d5c09012SAndroid Build Coastguard Worker  pattern: "projects/{project}/secrets/{secret}"
49*d5c09012SAndroid Build Coastguard Worker};
50*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = {
51*d5c09012SAndroid Build Coastguard Worker  type: "secretmanager.googleapis.com/SecretVersion"
52*d5c09012SAndroid Build Coastguard Worker  pattern: "projects/{project}/secrets/{secret}/versions/{version}"
53*d5c09012SAndroid Build Coastguard Worker};
54*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = {
55*d5c09012SAndroid Build Coastguard Worker  type: "gkehub.googleapis.com/Membership"
56*d5c09012SAndroid Build Coastguard Worker  pattern: "projects/{project}/locations/{location}/memberships/{cluster_name}"
57*d5c09012SAndroid Build Coastguard Worker};
58*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = {
59*d5c09012SAndroid Build Coastguard Worker  type: "cloudkms.googleapis.com/CryptoKey"
60*d5c09012SAndroid Build Coastguard Worker  pattern: "projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}"
61*d5c09012SAndroid Build Coastguard Worker};
62*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = {
63*d5c09012SAndroid Build Coastguard Worker  type: "pubsub.googleapis.com/Subscription"
64*d5c09012SAndroid Build Coastguard Worker  pattern: "projects/{project}/subscriptions/{subscription}"
65*d5c09012SAndroid Build Coastguard Worker};
66*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = {
67*d5c09012SAndroid Build Coastguard Worker  type: "pubsub.googleapis.com/Topic"
68*d5c09012SAndroid Build Coastguard Worker  pattern: "projects/{project}/topics/{topic}"
69*d5c09012SAndroid Build Coastguard Worker};
70*d5c09012SAndroid Build Coastguard Workeroption (google.api.resource_definition) = {
71*d5c09012SAndroid Build Coastguard Worker  type: "cloudbuild.googleapis.com/Repository"
72*d5c09012SAndroid Build Coastguard Worker  pattern: "projects/{project}/locations/{location}/connections/{connection}/repositories/{repository}"
73*d5c09012SAndroid Build Coastguard Worker};
74*d5c09012SAndroid Build Coastguard Worker
75*d5c09012SAndroid Build Coastguard Worker// Creates and manages builds on Google Cloud Platform.
76*d5c09012SAndroid Build Coastguard Worker//
77*d5c09012SAndroid Build Coastguard Worker// The main concept used by this API is a `Build`, which describes the location
78*d5c09012SAndroid Build Coastguard Worker// of the source to build, how to build the source, and where to store the
79*d5c09012SAndroid Build Coastguard Worker// built artifacts, if any.
80*d5c09012SAndroid Build Coastguard Worker//
81*d5c09012SAndroid Build Coastguard Worker// A user can list previously-requested builds or get builds by their ID to
82*d5c09012SAndroid Build Coastguard Worker// determine the status of the build.
83*d5c09012SAndroid Build Coastguard Workerservice CloudBuild {
84*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "cloudbuild.googleapis.com";
85*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
86*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform";
87*d5c09012SAndroid Build Coastguard Worker
88*d5c09012SAndroid Build Coastguard Worker  // Starts a build with the specified configuration.
89*d5c09012SAndroid Build Coastguard Worker  //
90*d5c09012SAndroid Build Coastguard Worker  // This method returns a long-running `Operation`, which includes the build
91*d5c09012SAndroid Build Coastguard Worker  // ID. Pass the build ID to `GetBuild` to determine the build status (such as
92*d5c09012SAndroid Build Coastguard Worker  // `SUCCESS` or `FAILURE`).
93*d5c09012SAndroid Build Coastguard Worker  rpc CreateBuild(CreateBuildRequest) returns (google.longrunning.Operation) {
94*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
95*d5c09012SAndroid Build Coastguard Worker      post: "/v1/projects/{project_id}/builds"
96*d5c09012SAndroid Build Coastguard Worker      body: "build"
97*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
98*d5c09012SAndroid Build Coastguard Worker        post: "/v1/{parent=projects/*/locations/*}/builds"
99*d5c09012SAndroid Build Coastguard Worker        body: "build"
100*d5c09012SAndroid Build Coastguard Worker      }
101*d5c09012SAndroid Build Coastguard Worker    };
102*d5c09012SAndroid Build Coastguard Worker    option (google.api.routing) = {
103*d5c09012SAndroid Build Coastguard Worker      routing_parameters {
104*d5c09012SAndroid Build Coastguard Worker        field: "parent"
105*d5c09012SAndroid Build Coastguard Worker        path_template: "projects/*/locations/{location=*}"
106*d5c09012SAndroid Build Coastguard Worker      }
107*d5c09012SAndroid Build Coastguard Worker    };
108*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "project_id,build";
109*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
110*d5c09012SAndroid Build Coastguard Worker      response_type: "Build"
111*d5c09012SAndroid Build Coastguard Worker      metadata_type: "BuildOperationMetadata"
112*d5c09012SAndroid Build Coastguard Worker    };
113*d5c09012SAndroid Build Coastguard Worker  }
114*d5c09012SAndroid Build Coastguard Worker
115*d5c09012SAndroid Build Coastguard Worker  // Returns information about a previously requested build.
116*d5c09012SAndroid Build Coastguard Worker  //
117*d5c09012SAndroid Build Coastguard Worker  // The `Build` that is returned includes its status (such as `SUCCESS`,
118*d5c09012SAndroid Build Coastguard Worker  // `FAILURE`, or `WORKING`), and timing information.
119*d5c09012SAndroid Build Coastguard Worker  rpc GetBuild(GetBuildRequest) returns (Build) {
120*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
121*d5c09012SAndroid Build Coastguard Worker      get: "/v1/projects/{project_id}/builds/{id}"
122*d5c09012SAndroid Build Coastguard Worker      additional_bindings { get: "/v1/{name=projects/*/locations/*/builds/*}" }
123*d5c09012SAndroid Build Coastguard Worker    };
124*d5c09012SAndroid Build Coastguard Worker    option (google.api.routing) = {
125*d5c09012SAndroid Build Coastguard Worker      routing_parameters {
126*d5c09012SAndroid Build Coastguard Worker        field: "name"
127*d5c09012SAndroid Build Coastguard Worker        path_template: "projects/*/locations/{location=*}/builds/*"
128*d5c09012SAndroid Build Coastguard Worker      }
129*d5c09012SAndroid Build Coastguard Worker    };
130*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "project_id,id";
131*d5c09012SAndroid Build Coastguard Worker  }
132*d5c09012SAndroid Build Coastguard Worker
133*d5c09012SAndroid Build Coastguard Worker  // Lists previously requested builds.
134*d5c09012SAndroid Build Coastguard Worker  //
135*d5c09012SAndroid Build Coastguard Worker  // Previously requested builds may still be in-progress, or may have finished
136*d5c09012SAndroid Build Coastguard Worker  // successfully or unsuccessfully.
137*d5c09012SAndroid Build Coastguard Worker  rpc ListBuilds(ListBuildsRequest) returns (ListBuildsResponse) {
138*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
139*d5c09012SAndroid Build Coastguard Worker      get: "/v1/projects/{project_id}/builds"
140*d5c09012SAndroid Build Coastguard Worker      additional_bindings { get: "/v1/{parent=projects/*/locations/*}/builds" }
141*d5c09012SAndroid Build Coastguard Worker    };
142*d5c09012SAndroid Build Coastguard Worker    option (google.api.routing) = {
143*d5c09012SAndroid Build Coastguard Worker      routing_parameters {
144*d5c09012SAndroid Build Coastguard Worker        field: "parent"
145*d5c09012SAndroid Build Coastguard Worker        path_template: "projects/*/locations/{location=*}"
146*d5c09012SAndroid Build Coastguard Worker      }
147*d5c09012SAndroid Build Coastguard Worker    };
148*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "project_id,filter";
149*d5c09012SAndroid Build Coastguard Worker  }
150*d5c09012SAndroid Build Coastguard Worker
151*d5c09012SAndroid Build Coastguard Worker  // Cancels a build in progress.
152*d5c09012SAndroid Build Coastguard Worker  rpc CancelBuild(CancelBuildRequest) returns (Build) {
153*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
154*d5c09012SAndroid Build Coastguard Worker      post: "/v1/projects/{project_id}/builds/{id}:cancel"
155*d5c09012SAndroid Build Coastguard Worker      body: "*"
156*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
157*d5c09012SAndroid Build Coastguard Worker        post: "/v1/{name=projects/*/locations/*/builds/*}:cancel"
158*d5c09012SAndroid Build Coastguard Worker        body: "*"
159*d5c09012SAndroid Build Coastguard Worker      }
160*d5c09012SAndroid Build Coastguard Worker    };
161*d5c09012SAndroid Build Coastguard Worker    option (google.api.routing) = {
162*d5c09012SAndroid Build Coastguard Worker      routing_parameters {
163*d5c09012SAndroid Build Coastguard Worker        field: "name"
164*d5c09012SAndroid Build Coastguard Worker        path_template: "projects/*/locations/{location=*}/builds/*"
165*d5c09012SAndroid Build Coastguard Worker      }
166*d5c09012SAndroid Build Coastguard Worker    };
167*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "project_id,id";
168*d5c09012SAndroid Build Coastguard Worker  }
169*d5c09012SAndroid Build Coastguard Worker
170*d5c09012SAndroid Build Coastguard Worker  // Creates a new build based on the specified build.
171*d5c09012SAndroid Build Coastguard Worker  //
172*d5c09012SAndroid Build Coastguard Worker  // This method creates a new build using the original build request, which may
173*d5c09012SAndroid Build Coastguard Worker  // or may not result in an identical build.
174*d5c09012SAndroid Build Coastguard Worker  //
175*d5c09012SAndroid Build Coastguard Worker  // For triggered builds:
176*d5c09012SAndroid Build Coastguard Worker  //
177*d5c09012SAndroid Build Coastguard Worker  // * Triggered builds resolve to a precise revision; therefore a retry of a
178*d5c09012SAndroid Build Coastguard Worker  // triggered build will result in a build that uses the same revision.
179*d5c09012SAndroid Build Coastguard Worker  //
180*d5c09012SAndroid Build Coastguard Worker  // For non-triggered builds that specify `RepoSource`:
181*d5c09012SAndroid Build Coastguard Worker  //
182*d5c09012SAndroid Build Coastguard Worker  // * If the original build built from the tip of a branch, the retried build
183*d5c09012SAndroid Build Coastguard Worker  // will build from the tip of that branch, which may not be the same revision
184*d5c09012SAndroid Build Coastguard Worker  // as the original build.
185*d5c09012SAndroid Build Coastguard Worker  // * If the original build specified a commit sha or revision ID, the retried
186*d5c09012SAndroid Build Coastguard Worker  // build will use the identical source.
187*d5c09012SAndroid Build Coastguard Worker  //
188*d5c09012SAndroid Build Coastguard Worker  // For builds that specify `StorageSource`:
189*d5c09012SAndroid Build Coastguard Worker  //
190*d5c09012SAndroid Build Coastguard Worker  // * If the original build pulled source from Cloud Storage without
191*d5c09012SAndroid Build Coastguard Worker  // specifying the generation of the object, the new build will use the current
192*d5c09012SAndroid Build Coastguard Worker  // object, which may be different from the original build source.
193*d5c09012SAndroid Build Coastguard Worker  // * If the original build pulled source from Cloud Storage and specified the
194*d5c09012SAndroid Build Coastguard Worker  // generation of the object, the new build will attempt to use the same
195*d5c09012SAndroid Build Coastguard Worker  // object, which may or may not be available depending on the bucket's
196*d5c09012SAndroid Build Coastguard Worker  // lifecycle management settings.
197*d5c09012SAndroid Build Coastguard Worker  rpc RetryBuild(RetryBuildRequest) returns (google.longrunning.Operation) {
198*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
199*d5c09012SAndroid Build Coastguard Worker      post: "/v1/projects/{project_id}/builds/{id}:retry"
200*d5c09012SAndroid Build Coastguard Worker      body: "*"
201*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
202*d5c09012SAndroid Build Coastguard Worker        post: "/v1/{name=projects/*/locations/*/builds/*}:retry"
203*d5c09012SAndroid Build Coastguard Worker        body: "*"
204*d5c09012SAndroid Build Coastguard Worker      }
205*d5c09012SAndroid Build Coastguard Worker    };
206*d5c09012SAndroid Build Coastguard Worker    option (google.api.routing) = {
207*d5c09012SAndroid Build Coastguard Worker      routing_parameters {
208*d5c09012SAndroid Build Coastguard Worker        field: "name"
209*d5c09012SAndroid Build Coastguard Worker        path_template: "projects/*/locations/{location=*}/builds/*"
210*d5c09012SAndroid Build Coastguard Worker      }
211*d5c09012SAndroid Build Coastguard Worker    };
212*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "project_id,id";
213*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
214*d5c09012SAndroid Build Coastguard Worker      response_type: "Build"
215*d5c09012SAndroid Build Coastguard Worker      metadata_type: "BuildOperationMetadata"
216*d5c09012SAndroid Build Coastguard Worker    };
217*d5c09012SAndroid Build Coastguard Worker  }
218*d5c09012SAndroid Build Coastguard Worker
219*d5c09012SAndroid Build Coastguard Worker  // Approves or rejects a pending build.
220*d5c09012SAndroid Build Coastguard Worker  //
221*d5c09012SAndroid Build Coastguard Worker  // If approved, the returned LRO will be analogous to the LRO returned from
222*d5c09012SAndroid Build Coastguard Worker  // a CreateBuild call.
223*d5c09012SAndroid Build Coastguard Worker  //
224*d5c09012SAndroid Build Coastguard Worker  // If rejected, the returned LRO will be immediately done.
225*d5c09012SAndroid Build Coastguard Worker  rpc ApproveBuild(ApproveBuildRequest) returns (google.longrunning.Operation) {
226*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
227*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{name=projects/*/builds/*}:approve"
228*d5c09012SAndroid Build Coastguard Worker      body: "*"
229*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
230*d5c09012SAndroid Build Coastguard Worker        post: "/v1/{name=projects/*/locations/*/builds/*}:approve"
231*d5c09012SAndroid Build Coastguard Worker        body: "*"
232*d5c09012SAndroid Build Coastguard Worker      }
233*d5c09012SAndroid Build Coastguard Worker    };
234*d5c09012SAndroid Build Coastguard Worker    option (google.api.routing) = {
235*d5c09012SAndroid Build Coastguard Worker      routing_parameters {
236*d5c09012SAndroid Build Coastguard Worker        field: "name"
237*d5c09012SAndroid Build Coastguard Worker        path_template: "projects/*/locations/{location=*}/builds/*"
238*d5c09012SAndroid Build Coastguard Worker      }
239*d5c09012SAndroid Build Coastguard Worker    };
240*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name,approval_result";
241*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
242*d5c09012SAndroid Build Coastguard Worker      response_type: "Build"
243*d5c09012SAndroid Build Coastguard Worker      metadata_type: "BuildOperationMetadata"
244*d5c09012SAndroid Build Coastguard Worker    };
245*d5c09012SAndroid Build Coastguard Worker  }
246*d5c09012SAndroid Build Coastguard Worker
247*d5c09012SAndroid Build Coastguard Worker  // Creates a new `BuildTrigger`.
248*d5c09012SAndroid Build Coastguard Worker  //
249*d5c09012SAndroid Build Coastguard Worker  // This API is experimental.
250*d5c09012SAndroid Build Coastguard Worker  rpc CreateBuildTrigger(CreateBuildTriggerRequest) returns (BuildTrigger) {
251*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
252*d5c09012SAndroid Build Coastguard Worker      post: "/v1/projects/{project_id}/triggers"
253*d5c09012SAndroid Build Coastguard Worker      body: "trigger"
254*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
255*d5c09012SAndroid Build Coastguard Worker        post: "/v1/{parent=projects/*/locations/*}/triggers"
256*d5c09012SAndroid Build Coastguard Worker        body: "trigger"
257*d5c09012SAndroid Build Coastguard Worker      }
258*d5c09012SAndroid Build Coastguard Worker    };
259*d5c09012SAndroid Build Coastguard Worker    option (google.api.routing) = {
260*d5c09012SAndroid Build Coastguard Worker      routing_parameters {
261*d5c09012SAndroid Build Coastguard Worker        field: "parent"
262*d5c09012SAndroid Build Coastguard Worker        path_template: "projects/*/locations/{location=*}"
263*d5c09012SAndroid Build Coastguard Worker      }
264*d5c09012SAndroid Build Coastguard Worker    };
265*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "project_id,trigger";
266*d5c09012SAndroid Build Coastguard Worker  }
267*d5c09012SAndroid Build Coastguard Worker
268*d5c09012SAndroid Build Coastguard Worker  // Returns information about a `BuildTrigger`.
269*d5c09012SAndroid Build Coastguard Worker  //
270*d5c09012SAndroid Build Coastguard Worker  // This API is experimental.
271*d5c09012SAndroid Build Coastguard Worker  rpc GetBuildTrigger(GetBuildTriggerRequest) returns (BuildTrigger) {
272*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
273*d5c09012SAndroid Build Coastguard Worker      get: "/v1/projects/{project_id}/triggers/{trigger_id}"
274*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
275*d5c09012SAndroid Build Coastguard Worker        get: "/v1/{name=projects/*/locations/*/triggers/*}"
276*d5c09012SAndroid Build Coastguard Worker      }
277*d5c09012SAndroid Build Coastguard Worker    };
278*d5c09012SAndroid Build Coastguard Worker    option (google.api.routing) = {
279*d5c09012SAndroid Build Coastguard Worker      routing_parameters {
280*d5c09012SAndroid Build Coastguard Worker        field: "name"
281*d5c09012SAndroid Build Coastguard Worker        path_template: "projects/*/locations/{location=*}/triggers/*"
282*d5c09012SAndroid Build Coastguard Worker      }
283*d5c09012SAndroid Build Coastguard Worker    };
284*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "project_id,trigger_id";
285*d5c09012SAndroid Build Coastguard Worker  }
286*d5c09012SAndroid Build Coastguard Worker
287*d5c09012SAndroid Build Coastguard Worker  // Lists existing `BuildTrigger`s.
288*d5c09012SAndroid Build Coastguard Worker  //
289*d5c09012SAndroid Build Coastguard Worker  // This API is experimental.
290*d5c09012SAndroid Build Coastguard Worker  rpc ListBuildTriggers(ListBuildTriggersRequest)
291*d5c09012SAndroid Build Coastguard Worker      returns (ListBuildTriggersResponse) {
292*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
293*d5c09012SAndroid Build Coastguard Worker      get: "/v1/projects/{project_id}/triggers"
294*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
295*d5c09012SAndroid Build Coastguard Worker        get: "/v1/{parent=projects/*/locations/*}/triggers"
296*d5c09012SAndroid Build Coastguard Worker      }
297*d5c09012SAndroid Build Coastguard Worker    };
298*d5c09012SAndroid Build Coastguard Worker    option (google.api.routing) = {
299*d5c09012SAndroid Build Coastguard Worker      routing_parameters {
300*d5c09012SAndroid Build Coastguard Worker        field: "parent"
301*d5c09012SAndroid Build Coastguard Worker        path_template: "projects/*/locations/{location=*}"
302*d5c09012SAndroid Build Coastguard Worker      }
303*d5c09012SAndroid Build Coastguard Worker    };
304*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "project_id";
305*d5c09012SAndroid Build Coastguard Worker  }
306*d5c09012SAndroid Build Coastguard Worker
307*d5c09012SAndroid Build Coastguard Worker  // Deletes a `BuildTrigger` by its project ID and trigger ID.
308*d5c09012SAndroid Build Coastguard Worker  //
309*d5c09012SAndroid Build Coastguard Worker  // This API is experimental.
310*d5c09012SAndroid Build Coastguard Worker  rpc DeleteBuildTrigger(DeleteBuildTriggerRequest)
311*d5c09012SAndroid Build Coastguard Worker      returns (google.protobuf.Empty) {
312*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
313*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/projects/{project_id}/triggers/{trigger_id}"
314*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
315*d5c09012SAndroid Build Coastguard Worker        delete: "/v1/{name=projects/*/locations/*/triggers/*}"
316*d5c09012SAndroid Build Coastguard Worker      }
317*d5c09012SAndroid Build Coastguard Worker    };
318*d5c09012SAndroid Build Coastguard Worker    option (google.api.routing) = {
319*d5c09012SAndroid Build Coastguard Worker      routing_parameters {
320*d5c09012SAndroid Build Coastguard Worker        field: "name"
321*d5c09012SAndroid Build Coastguard Worker        path_template: "projects/*/locations/{location=*}/triggers/*"
322*d5c09012SAndroid Build Coastguard Worker      }
323*d5c09012SAndroid Build Coastguard Worker    };
324*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "project_id,trigger_id";
325*d5c09012SAndroid Build Coastguard Worker  }
326*d5c09012SAndroid Build Coastguard Worker
327*d5c09012SAndroid Build Coastguard Worker  // Updates a `BuildTrigger` by its project ID and trigger ID.
328*d5c09012SAndroid Build Coastguard Worker  //
329*d5c09012SAndroid Build Coastguard Worker  // This API is experimental.
330*d5c09012SAndroid Build Coastguard Worker  rpc UpdateBuildTrigger(UpdateBuildTriggerRequest) returns (BuildTrigger) {
331*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
332*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/projects/{project_id}/triggers/{trigger_id}"
333*d5c09012SAndroid Build Coastguard Worker      body: "trigger"
334*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
335*d5c09012SAndroid Build Coastguard Worker        patch: "/v1/{trigger.resource_name=projects/*/locations/*/triggers/*}"
336*d5c09012SAndroid Build Coastguard Worker        body: "trigger"
337*d5c09012SAndroid Build Coastguard Worker      }
338*d5c09012SAndroid Build Coastguard Worker    };
339*d5c09012SAndroid Build Coastguard Worker    option (google.api.routing) = {
340*d5c09012SAndroid Build Coastguard Worker      routing_parameters {
341*d5c09012SAndroid Build Coastguard Worker        field: "trigger.resource_name"
342*d5c09012SAndroid Build Coastguard Worker        path_template: "projects/*/locations/{location=*}/triggers/*"
343*d5c09012SAndroid Build Coastguard Worker      }
344*d5c09012SAndroid Build Coastguard Worker    };
345*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "project_id,trigger_id,trigger";
346*d5c09012SAndroid Build Coastguard Worker  }
347*d5c09012SAndroid Build Coastguard Worker
348*d5c09012SAndroid Build Coastguard Worker  // Runs a `BuildTrigger` at a particular source revision.
349*d5c09012SAndroid Build Coastguard Worker  //
350*d5c09012SAndroid Build Coastguard Worker  // To run a regional or global trigger, use the POST request
351*d5c09012SAndroid Build Coastguard Worker  // that includes the location endpoint in the path (ex.
352*d5c09012SAndroid Build Coastguard Worker  // v1/projects/{projectId}/locations/{region}/triggers/{triggerId}:run). The
353*d5c09012SAndroid Build Coastguard Worker  // POST request that does not include the location endpoint in the path can
354*d5c09012SAndroid Build Coastguard Worker  // only be used when running global triggers.
355*d5c09012SAndroid Build Coastguard Worker  rpc RunBuildTrigger(RunBuildTriggerRequest)
356*d5c09012SAndroid Build Coastguard Worker      returns (google.longrunning.Operation) {
357*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
358*d5c09012SAndroid Build Coastguard Worker      post: "/v1/projects/{project_id}/triggers/{trigger_id}:run"
359*d5c09012SAndroid Build Coastguard Worker      body: "source"
360*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
361*d5c09012SAndroid Build Coastguard Worker        post: "/v1/{name=projects/*/locations/*/triggers/*}:run"
362*d5c09012SAndroid Build Coastguard Worker        body: "*"
363*d5c09012SAndroid Build Coastguard Worker      }
364*d5c09012SAndroid Build Coastguard Worker    };
365*d5c09012SAndroid Build Coastguard Worker    option (google.api.routing) = {
366*d5c09012SAndroid Build Coastguard Worker      routing_parameters {
367*d5c09012SAndroid Build Coastguard Worker        field: "name"
368*d5c09012SAndroid Build Coastguard Worker        path_template: "projects/*/locations/{location=*}/triggers/*"
369*d5c09012SAndroid Build Coastguard Worker      }
370*d5c09012SAndroid Build Coastguard Worker    };
371*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "project_id,trigger_id,source";
372*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
373*d5c09012SAndroid Build Coastguard Worker      response_type: "Build"
374*d5c09012SAndroid Build Coastguard Worker      metadata_type: "BuildOperationMetadata"
375*d5c09012SAndroid Build Coastguard Worker    };
376*d5c09012SAndroid Build Coastguard Worker  }
377*d5c09012SAndroid Build Coastguard Worker
378*d5c09012SAndroid Build Coastguard Worker  // ReceiveTriggerWebhook [Experimental] is called when the API receives a
379*d5c09012SAndroid Build Coastguard Worker  // webhook request targeted at a specific trigger.
380*d5c09012SAndroid Build Coastguard Worker  rpc ReceiveTriggerWebhook(ReceiveTriggerWebhookRequest)
381*d5c09012SAndroid Build Coastguard Worker      returns (ReceiveTriggerWebhookResponse) {
382*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
383*d5c09012SAndroid Build Coastguard Worker      post: "/v1/projects/{project_id}/triggers/{trigger}:webhook"
384*d5c09012SAndroid Build Coastguard Worker      body: "body"
385*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
386*d5c09012SAndroid Build Coastguard Worker        post: "/v1/{name=projects/*/locations/*/triggers/*}:webhook"
387*d5c09012SAndroid Build Coastguard Worker        body: "body"
388*d5c09012SAndroid Build Coastguard Worker      }
389*d5c09012SAndroid Build Coastguard Worker    };
390*d5c09012SAndroid Build Coastguard Worker  }
391*d5c09012SAndroid Build Coastguard Worker
392*d5c09012SAndroid Build Coastguard Worker  // Creates a `WorkerPool`.
393*d5c09012SAndroid Build Coastguard Worker  rpc CreateWorkerPool(CreateWorkerPoolRequest)
394*d5c09012SAndroid Build Coastguard Worker      returns (google.longrunning.Operation) {
395*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
396*d5c09012SAndroid Build Coastguard Worker      post: "/v1/{parent=projects/*/locations/*}/workerPools"
397*d5c09012SAndroid Build Coastguard Worker      body: "worker_pool"
398*d5c09012SAndroid Build Coastguard Worker    };
399*d5c09012SAndroid Build Coastguard Worker    option (google.api.routing) = {
400*d5c09012SAndroid Build Coastguard Worker      routing_parameters {
401*d5c09012SAndroid Build Coastguard Worker        field: "parent"
402*d5c09012SAndroid Build Coastguard Worker        path_template: "projects/*/locations/{location=*}"
403*d5c09012SAndroid Build Coastguard Worker      }
404*d5c09012SAndroid Build Coastguard Worker    };
405*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent,worker_pool,worker_pool_id";
406*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
407*d5c09012SAndroid Build Coastguard Worker      response_type: "WorkerPool"
408*d5c09012SAndroid Build Coastguard Worker      metadata_type: "CreateWorkerPoolOperationMetadata"
409*d5c09012SAndroid Build Coastguard Worker    };
410*d5c09012SAndroid Build Coastguard Worker  }
411*d5c09012SAndroid Build Coastguard Worker
412*d5c09012SAndroid Build Coastguard Worker  // Returns details of a `WorkerPool`.
413*d5c09012SAndroid Build Coastguard Worker  rpc GetWorkerPool(GetWorkerPoolRequest) returns (WorkerPool) {
414*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
415*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{name=projects/*/locations/*/workerPools/*}"
416*d5c09012SAndroid Build Coastguard Worker    };
417*d5c09012SAndroid Build Coastguard Worker    option (google.api.routing) = {
418*d5c09012SAndroid Build Coastguard Worker      routing_parameters {
419*d5c09012SAndroid Build Coastguard Worker        field: "name"
420*d5c09012SAndroid Build Coastguard Worker        path_template: "projects/*/locations/{location=*}/workerPools/*"
421*d5c09012SAndroid Build Coastguard Worker      }
422*d5c09012SAndroid Build Coastguard Worker    };
423*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
424*d5c09012SAndroid Build Coastguard Worker  }
425*d5c09012SAndroid Build Coastguard Worker
426*d5c09012SAndroid Build Coastguard Worker  // Deletes a `WorkerPool`.
427*d5c09012SAndroid Build Coastguard Worker  rpc DeleteWorkerPool(DeleteWorkerPoolRequest)
428*d5c09012SAndroid Build Coastguard Worker      returns (google.longrunning.Operation) {
429*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
430*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/{name=projects/*/locations/*/workerPools/*}"
431*d5c09012SAndroid Build Coastguard Worker    };
432*d5c09012SAndroid Build Coastguard Worker    option (google.api.routing) = {
433*d5c09012SAndroid Build Coastguard Worker      routing_parameters {
434*d5c09012SAndroid Build Coastguard Worker        field: "name"
435*d5c09012SAndroid Build Coastguard Worker        path_template: "projects/*/locations/{location=*}/workerPools/*"
436*d5c09012SAndroid Build Coastguard Worker      }
437*d5c09012SAndroid Build Coastguard Worker    };
438*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "name";
439*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
440*d5c09012SAndroid Build Coastguard Worker      response_type: "google.protobuf.Empty"
441*d5c09012SAndroid Build Coastguard Worker      metadata_type: "DeleteWorkerPoolOperationMetadata"
442*d5c09012SAndroid Build Coastguard Worker    };
443*d5c09012SAndroid Build Coastguard Worker  }
444*d5c09012SAndroid Build Coastguard Worker
445*d5c09012SAndroid Build Coastguard Worker  // Updates a `WorkerPool`.
446*d5c09012SAndroid Build Coastguard Worker  rpc UpdateWorkerPool(UpdateWorkerPoolRequest)
447*d5c09012SAndroid Build Coastguard Worker      returns (google.longrunning.Operation) {
448*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
449*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/{worker_pool.name=projects/*/locations/*/workerPools/*}"
450*d5c09012SAndroid Build Coastguard Worker      body: "worker_pool"
451*d5c09012SAndroid Build Coastguard Worker    };
452*d5c09012SAndroid Build Coastguard Worker    option (google.api.routing) = {
453*d5c09012SAndroid Build Coastguard Worker      routing_parameters {
454*d5c09012SAndroid Build Coastguard Worker        field: "worker_pool.name"
455*d5c09012SAndroid Build Coastguard Worker        path_template: "projects/*/locations/{location=*}/workerPools/*"
456*d5c09012SAndroid Build Coastguard Worker      }
457*d5c09012SAndroid Build Coastguard Worker    };
458*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "worker_pool,update_mask";
459*d5c09012SAndroid Build Coastguard Worker    option (google.longrunning.operation_info) = {
460*d5c09012SAndroid Build Coastguard Worker      response_type: "WorkerPool"
461*d5c09012SAndroid Build Coastguard Worker      metadata_type: "UpdateWorkerPoolOperationMetadata"
462*d5c09012SAndroid Build Coastguard Worker    };
463*d5c09012SAndroid Build Coastguard Worker  }
464*d5c09012SAndroid Build Coastguard Worker
465*d5c09012SAndroid Build Coastguard Worker  // Lists `WorkerPool`s.
466*d5c09012SAndroid Build Coastguard Worker  rpc ListWorkerPools(ListWorkerPoolsRequest)
467*d5c09012SAndroid Build Coastguard Worker      returns (ListWorkerPoolsResponse) {
468*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
469*d5c09012SAndroid Build Coastguard Worker      get: "/v1/{parent=projects/*/locations/*}/workerPools"
470*d5c09012SAndroid Build Coastguard Worker    };
471*d5c09012SAndroid Build Coastguard Worker    option (google.api.routing) = {
472*d5c09012SAndroid Build Coastguard Worker      routing_parameters {
473*d5c09012SAndroid Build Coastguard Worker        field: "parent"
474*d5c09012SAndroid Build Coastguard Worker        path_template: "projects/*/locations/{location=*}"
475*d5c09012SAndroid Build Coastguard Worker      }
476*d5c09012SAndroid Build Coastguard Worker    };
477*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "parent";
478*d5c09012SAndroid Build Coastguard Worker  }
479*d5c09012SAndroid Build Coastguard Worker}
480*d5c09012SAndroid Build Coastguard Worker
481*d5c09012SAndroid Build Coastguard Worker// Specifies a build to retry.
482*d5c09012SAndroid Build Coastguard Workermessage RetryBuildRequest {
483*d5c09012SAndroid Build Coastguard Worker  // The name of the `Build` to retry.
484*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project}/locations/{location}/builds/{build}`
485*d5c09012SAndroid Build Coastguard Worker  string name = 3 [(google.api.resource_reference) = {
486*d5c09012SAndroid Build Coastguard Worker    type: "cloudbuild.googleapis.com/Build"
487*d5c09012SAndroid Build Coastguard Worker  }];
488*d5c09012SAndroid Build Coastguard Worker
489*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the project.
490*d5c09012SAndroid Build Coastguard Worker  string project_id = 1 [(google.api.field_behavior) = REQUIRED];
491*d5c09012SAndroid Build Coastguard Worker
492*d5c09012SAndroid Build Coastguard Worker  // Required. Build ID of the original build.
493*d5c09012SAndroid Build Coastguard Worker  string id = 2 [(google.api.field_behavior) = REQUIRED];
494*d5c09012SAndroid Build Coastguard Worker}
495*d5c09012SAndroid Build Coastguard Worker
496*d5c09012SAndroid Build Coastguard Worker// Specifies a build trigger to run and the source to use.
497*d5c09012SAndroid Build Coastguard Workermessage RunBuildTriggerRequest {
498*d5c09012SAndroid Build Coastguard Worker  // The name of the `Trigger` to run.
499*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project}/locations/{location}/triggers/{trigger}`
500*d5c09012SAndroid Build Coastguard Worker  string name = 4 [(google.api.resource_reference) = {
501*d5c09012SAndroid Build Coastguard Worker    type: "cloudbuild.googleapis.com/BuildTrigger"
502*d5c09012SAndroid Build Coastguard Worker  }];
503*d5c09012SAndroid Build Coastguard Worker
504*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the project.
505*d5c09012SAndroid Build Coastguard Worker  string project_id = 1 [(google.api.field_behavior) = REQUIRED];
506*d5c09012SAndroid Build Coastguard Worker
507*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the trigger.
508*d5c09012SAndroid Build Coastguard Worker  string trigger_id = 2 [(google.api.field_behavior) = REQUIRED];
509*d5c09012SAndroid Build Coastguard Worker
510*d5c09012SAndroid Build Coastguard Worker  // Source to build against this trigger.
511*d5c09012SAndroid Build Coastguard Worker  // Branch and tag names cannot consist of regular expressions.
512*d5c09012SAndroid Build Coastguard Worker  RepoSource source = 3;
513*d5c09012SAndroid Build Coastguard Worker}
514*d5c09012SAndroid Build Coastguard Worker
515*d5c09012SAndroid Build Coastguard Worker// Location of the source in an archive file in Cloud Storage.
516*d5c09012SAndroid Build Coastguard Workermessage StorageSource {
517*d5c09012SAndroid Build Coastguard Worker  // Cloud Storage bucket containing the source (see
518*d5c09012SAndroid Build Coastguard Worker  // [Bucket Name
519*d5c09012SAndroid Build Coastguard Worker  // Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
520*d5c09012SAndroid Build Coastguard Worker  string bucket = 1;
521*d5c09012SAndroid Build Coastguard Worker
522*d5c09012SAndroid Build Coastguard Worker  // Cloud Storage object containing the source.
523*d5c09012SAndroid Build Coastguard Worker  //
524*d5c09012SAndroid Build Coastguard Worker  // This object must be a zipped (`.zip`) or gzipped archive file (`.tar.gz`)
525*d5c09012SAndroid Build Coastguard Worker  // containing source to build.
526*d5c09012SAndroid Build Coastguard Worker  string object = 2;
527*d5c09012SAndroid Build Coastguard Worker
528*d5c09012SAndroid Build Coastguard Worker  // Cloud Storage generation for the object. If the generation is
529*d5c09012SAndroid Build Coastguard Worker  // omitted, the latest generation will be used.
530*d5c09012SAndroid Build Coastguard Worker  int64 generation = 3;
531*d5c09012SAndroid Build Coastguard Worker
532*d5c09012SAndroid Build Coastguard Worker  // Specifies the tool to fetch the source file for the build.
533*d5c09012SAndroid Build Coastguard Worker  enum SourceFetcher {
534*d5c09012SAndroid Build Coastguard Worker    // Unspecified. Defaults to GSUTIL.
535*d5c09012SAndroid Build Coastguard Worker    SOURCE_FETCHER_UNSPECIFIED = 0;
536*d5c09012SAndroid Build Coastguard Worker
537*d5c09012SAndroid Build Coastguard Worker    // Use the "gsutil" tool to download the source file.
538*d5c09012SAndroid Build Coastguard Worker    GSUTIL = 1;
539*d5c09012SAndroid Build Coastguard Worker
540*d5c09012SAndroid Build Coastguard Worker    // Use the Cloud Storage Fetcher tool to download the source file.
541*d5c09012SAndroid Build Coastguard Worker    GCS_FETCHER = 2;
542*d5c09012SAndroid Build Coastguard Worker  }
543*d5c09012SAndroid Build Coastguard Worker
544*d5c09012SAndroid Build Coastguard Worker  // Option to specify the tool to fetch the source file for the build.
545*d5c09012SAndroid Build Coastguard Worker  SourceFetcher source_fetcher = 5 [(google.api.field_behavior) = OPTIONAL];
546*d5c09012SAndroid Build Coastguard Worker}
547*d5c09012SAndroid Build Coastguard Worker
548*d5c09012SAndroid Build Coastguard Worker// Location of the source in any accessible Git repository.
549*d5c09012SAndroid Build Coastguard Workermessage GitSource {
550*d5c09012SAndroid Build Coastguard Worker  // Location of the Git repo to build.
551*d5c09012SAndroid Build Coastguard Worker  //
552*d5c09012SAndroid Build Coastguard Worker  // This will be used as a `git remote`, see
553*d5c09012SAndroid Build Coastguard Worker  // https://git-scm.com/docs/git-remote.
554*d5c09012SAndroid Build Coastguard Worker  string url = 1;
555*d5c09012SAndroid Build Coastguard Worker
556*d5c09012SAndroid Build Coastguard Worker  // Directory, relative to the source root, in which to run the build.
557*d5c09012SAndroid Build Coastguard Worker  //
558*d5c09012SAndroid Build Coastguard Worker  // This must be a relative path. If a step's `dir` is specified and is an
559*d5c09012SAndroid Build Coastguard Worker  // absolute path, this value is ignored for that step's execution.
560*d5c09012SAndroid Build Coastguard Worker  string dir = 5;
561*d5c09012SAndroid Build Coastguard Worker
562*d5c09012SAndroid Build Coastguard Worker  // The revision to fetch from the Git repository such as a branch, a tag, a
563*d5c09012SAndroid Build Coastguard Worker  // commit SHA, or any Git ref.
564*d5c09012SAndroid Build Coastguard Worker  //
565*d5c09012SAndroid Build Coastguard Worker  // Cloud Build uses `git fetch` to fetch the revision from the Git
566*d5c09012SAndroid Build Coastguard Worker  // repository; therefore make sure that the string you provide for `revision`
567*d5c09012SAndroid Build Coastguard Worker  // is parsable  by the command. For information on string values accepted by
568*d5c09012SAndroid Build Coastguard Worker  // `git fetch`, see
569*d5c09012SAndroid Build Coastguard Worker  // https://git-scm.com/docs/gitrevisions#_specifying_revisions. For
570*d5c09012SAndroid Build Coastguard Worker  // information on `git fetch`, see https://git-scm.com/docs/git-fetch.
571*d5c09012SAndroid Build Coastguard Worker  string revision = 6;
572*d5c09012SAndroid Build Coastguard Worker}
573*d5c09012SAndroid Build Coastguard Worker
574*d5c09012SAndroid Build Coastguard Worker// Location of the source in a Google Cloud Source Repository.
575*d5c09012SAndroid Build Coastguard Workermessage RepoSource {
576*d5c09012SAndroid Build Coastguard Worker  // ID of the project that owns the Cloud Source Repository. If omitted, the
577*d5c09012SAndroid Build Coastguard Worker  // project ID requesting the build is assumed.
578*d5c09012SAndroid Build Coastguard Worker  string project_id = 1;
579*d5c09012SAndroid Build Coastguard Worker
580*d5c09012SAndroid Build Coastguard Worker  // Name of the Cloud Source Repository.
581*d5c09012SAndroid Build Coastguard Worker  string repo_name = 2;
582*d5c09012SAndroid Build Coastguard Worker
583*d5c09012SAndroid Build Coastguard Worker  // A revision within the Cloud Source Repository must be specified in
584*d5c09012SAndroid Build Coastguard Worker  // one of these ways.
585*d5c09012SAndroid Build Coastguard Worker  oneof revision {
586*d5c09012SAndroid Build Coastguard Worker    // Regex matching branches to build.
587*d5c09012SAndroid Build Coastguard Worker    //
588*d5c09012SAndroid Build Coastguard Worker    // The syntax of the regular expressions accepted is the syntax accepted by
589*d5c09012SAndroid Build Coastguard Worker    // RE2 and described at https://github.com/google/re2/wiki/Syntax
590*d5c09012SAndroid Build Coastguard Worker    string branch_name = 3;
591*d5c09012SAndroid Build Coastguard Worker
592*d5c09012SAndroid Build Coastguard Worker    // Regex matching tags to build.
593*d5c09012SAndroid Build Coastguard Worker    //
594*d5c09012SAndroid Build Coastguard Worker    // The syntax of the regular expressions accepted is the syntax accepted by
595*d5c09012SAndroid Build Coastguard Worker    // RE2 and described at https://github.com/google/re2/wiki/Syntax
596*d5c09012SAndroid Build Coastguard Worker    string tag_name = 4;
597*d5c09012SAndroid Build Coastguard Worker
598*d5c09012SAndroid Build Coastguard Worker    // Explicit commit SHA to build.
599*d5c09012SAndroid Build Coastguard Worker    string commit_sha = 5;
600*d5c09012SAndroid Build Coastguard Worker  }
601*d5c09012SAndroid Build Coastguard Worker
602*d5c09012SAndroid Build Coastguard Worker  // Directory, relative to the source root, in which to run the build.
603*d5c09012SAndroid Build Coastguard Worker  //
604*d5c09012SAndroid Build Coastguard Worker  // This must be a relative path. If a step's `dir` is specified and is an
605*d5c09012SAndroid Build Coastguard Worker  // absolute path, this value is ignored for that step's execution.
606*d5c09012SAndroid Build Coastguard Worker  string dir = 7;
607*d5c09012SAndroid Build Coastguard Worker
608*d5c09012SAndroid Build Coastguard Worker  // Only trigger a build if the revision regex does NOT match the revision
609*d5c09012SAndroid Build Coastguard Worker  // regex.
610*d5c09012SAndroid Build Coastguard Worker  bool invert_regex = 8;
611*d5c09012SAndroid Build Coastguard Worker
612*d5c09012SAndroid Build Coastguard Worker  // Substitutions to use in a triggered build.
613*d5c09012SAndroid Build Coastguard Worker  // Should only be used with RunBuildTrigger
614*d5c09012SAndroid Build Coastguard Worker  map<string, string> substitutions = 9;
615*d5c09012SAndroid Build Coastguard Worker}
616*d5c09012SAndroid Build Coastguard Worker
617*d5c09012SAndroid Build Coastguard Worker// Location of the source manifest in Cloud Storage.
618*d5c09012SAndroid Build Coastguard Worker// This feature is in Preview; see description
619*d5c09012SAndroid Build Coastguard Worker// [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher).
620*d5c09012SAndroid Build Coastguard Workermessage StorageSourceManifest {
621*d5c09012SAndroid Build Coastguard Worker  // Cloud Storage bucket containing the source manifest (see [Bucket
622*d5c09012SAndroid Build Coastguard Worker  // Name
623*d5c09012SAndroid Build Coastguard Worker  // Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
624*d5c09012SAndroid Build Coastguard Worker  string bucket = 1;
625*d5c09012SAndroid Build Coastguard Worker
626*d5c09012SAndroid Build Coastguard Worker  // Cloud Storage object containing the source manifest.
627*d5c09012SAndroid Build Coastguard Worker  //
628*d5c09012SAndroid Build Coastguard Worker  // This object must be a JSON file.
629*d5c09012SAndroid Build Coastguard Worker  string object = 2;
630*d5c09012SAndroid Build Coastguard Worker
631*d5c09012SAndroid Build Coastguard Worker  // Cloud Storage generation for the object. If the generation is
632*d5c09012SAndroid Build Coastguard Worker  // omitted, the latest generation will be used.
633*d5c09012SAndroid Build Coastguard Worker  int64 generation = 3;
634*d5c09012SAndroid Build Coastguard Worker}
635*d5c09012SAndroid Build Coastguard Worker
636*d5c09012SAndroid Build Coastguard Worker// Location of the source in a supported storage service.
637*d5c09012SAndroid Build Coastguard Workermessage Source {
638*d5c09012SAndroid Build Coastguard Worker  // Location of source.
639*d5c09012SAndroid Build Coastguard Worker  oneof source {
640*d5c09012SAndroid Build Coastguard Worker    // If provided, get the source from this location in Cloud Storage.
641*d5c09012SAndroid Build Coastguard Worker    StorageSource storage_source = 2;
642*d5c09012SAndroid Build Coastguard Worker
643*d5c09012SAndroid Build Coastguard Worker    // If provided, get the source from this location in a Cloud Source
644*d5c09012SAndroid Build Coastguard Worker    // Repository.
645*d5c09012SAndroid Build Coastguard Worker    RepoSource repo_source = 3;
646*d5c09012SAndroid Build Coastguard Worker
647*d5c09012SAndroid Build Coastguard Worker    // If provided, get the source from this Git repository.
648*d5c09012SAndroid Build Coastguard Worker    GitSource git_source = 5;
649*d5c09012SAndroid Build Coastguard Worker
650*d5c09012SAndroid Build Coastguard Worker    // If provided, get the source from this manifest in Cloud Storage.
651*d5c09012SAndroid Build Coastguard Worker    // This feature is in Preview; see description
652*d5c09012SAndroid Build Coastguard Worker    // [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher).
653*d5c09012SAndroid Build Coastguard Worker    StorageSourceManifest storage_source_manifest = 8;
654*d5c09012SAndroid Build Coastguard Worker  }
655*d5c09012SAndroid Build Coastguard Worker}
656*d5c09012SAndroid Build Coastguard Worker
657*d5c09012SAndroid Build Coastguard Worker// An image built by the pipeline.
658*d5c09012SAndroid Build Coastguard Workermessage BuiltImage {
659*d5c09012SAndroid Build Coastguard Worker  // Name used to push the container image to Google Container Registry, as
660*d5c09012SAndroid Build Coastguard Worker  // presented to `docker push`.
661*d5c09012SAndroid Build Coastguard Worker  string name = 1;
662*d5c09012SAndroid Build Coastguard Worker
663*d5c09012SAndroid Build Coastguard Worker  // Docker Registry 2.0 digest.
664*d5c09012SAndroid Build Coastguard Worker  string digest = 3;
665*d5c09012SAndroid Build Coastguard Worker
666*d5c09012SAndroid Build Coastguard Worker  // Output only. Stores timing information for pushing the specified image.
667*d5c09012SAndroid Build Coastguard Worker  TimeSpan push_timing = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
668*d5c09012SAndroid Build Coastguard Worker}
669*d5c09012SAndroid Build Coastguard Worker
670*d5c09012SAndroid Build Coastguard Worker// Artifact uploaded using the PythonPackage directive.
671*d5c09012SAndroid Build Coastguard Workermessage UploadedPythonPackage {
672*d5c09012SAndroid Build Coastguard Worker  // URI of the uploaded artifact.
673*d5c09012SAndroid Build Coastguard Worker  string uri = 1;
674*d5c09012SAndroid Build Coastguard Worker
675*d5c09012SAndroid Build Coastguard Worker  // Hash types and values of the Python Artifact.
676*d5c09012SAndroid Build Coastguard Worker  FileHashes file_hashes = 2;
677*d5c09012SAndroid Build Coastguard Worker
678*d5c09012SAndroid Build Coastguard Worker  // Output only. Stores timing information for pushing the specified artifact.
679*d5c09012SAndroid Build Coastguard Worker  TimeSpan push_timing = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
680*d5c09012SAndroid Build Coastguard Worker}
681*d5c09012SAndroid Build Coastguard Worker
682*d5c09012SAndroid Build Coastguard Worker// A Maven artifact uploaded using the MavenArtifact directive.
683*d5c09012SAndroid Build Coastguard Workermessage UploadedMavenArtifact {
684*d5c09012SAndroid Build Coastguard Worker  // URI of the uploaded artifact.
685*d5c09012SAndroid Build Coastguard Worker  string uri = 1;
686*d5c09012SAndroid Build Coastguard Worker
687*d5c09012SAndroid Build Coastguard Worker  // Hash types and values of the Maven Artifact.
688*d5c09012SAndroid Build Coastguard Worker  FileHashes file_hashes = 2;
689*d5c09012SAndroid Build Coastguard Worker
690*d5c09012SAndroid Build Coastguard Worker  // Output only. Stores timing information for pushing the specified artifact.
691*d5c09012SAndroid Build Coastguard Worker  TimeSpan push_timing = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
692*d5c09012SAndroid Build Coastguard Worker}
693*d5c09012SAndroid Build Coastguard Worker
694*d5c09012SAndroid Build Coastguard Worker// An npm package uploaded to Artifact Registry using the NpmPackage
695*d5c09012SAndroid Build Coastguard Worker// directive.
696*d5c09012SAndroid Build Coastguard Workermessage UploadedNpmPackage {
697*d5c09012SAndroid Build Coastguard Worker  // URI of the uploaded npm package.
698*d5c09012SAndroid Build Coastguard Worker  string uri = 1;
699*d5c09012SAndroid Build Coastguard Worker
700*d5c09012SAndroid Build Coastguard Worker  // Hash types and values of the npm package.
701*d5c09012SAndroid Build Coastguard Worker  FileHashes file_hashes = 2;
702*d5c09012SAndroid Build Coastguard Worker
703*d5c09012SAndroid Build Coastguard Worker  // Output only. Stores timing information for pushing the specified artifact.
704*d5c09012SAndroid Build Coastguard Worker  TimeSpan push_timing = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
705*d5c09012SAndroid Build Coastguard Worker}
706*d5c09012SAndroid Build Coastguard Worker
707*d5c09012SAndroid Build Coastguard Worker// A step in the build pipeline.
708*d5c09012SAndroid Build Coastguard Workermessage BuildStep {
709*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the container image that will run this particular
710*d5c09012SAndroid Build Coastguard Worker  // build step.
711*d5c09012SAndroid Build Coastguard Worker  //
712*d5c09012SAndroid Build Coastguard Worker  // If the image is available in the host's Docker daemon's cache, it
713*d5c09012SAndroid Build Coastguard Worker  // will be run directly. If not, the host will attempt to pull the image
714*d5c09012SAndroid Build Coastguard Worker  // first, using the builder service account's credentials if necessary.
715*d5c09012SAndroid Build Coastguard Worker  //
716*d5c09012SAndroid Build Coastguard Worker  // The Docker daemon's cache will already have the latest versions of all of
717*d5c09012SAndroid Build Coastguard Worker  // the officially supported build steps
718*d5c09012SAndroid Build Coastguard Worker  // ([https://github.com/GoogleCloudPlatform/cloud-builders](https://github.com/GoogleCloudPlatform/cloud-builders)).
719*d5c09012SAndroid Build Coastguard Worker  // The Docker daemon will also have cached many of the layers for some popular
720*d5c09012SAndroid Build Coastguard Worker  // images, like "ubuntu", "debian", but they will be refreshed at the time you
721*d5c09012SAndroid Build Coastguard Worker  // attempt to use them.
722*d5c09012SAndroid Build Coastguard Worker  //
723*d5c09012SAndroid Build Coastguard Worker  // If you built an image in a previous build step, it will be stored in the
724*d5c09012SAndroid Build Coastguard Worker  // host's Docker daemon's cache and is available to use as the name for a
725*d5c09012SAndroid Build Coastguard Worker  // later build step.
726*d5c09012SAndroid Build Coastguard Worker  string name = 1;
727*d5c09012SAndroid Build Coastguard Worker
728*d5c09012SAndroid Build Coastguard Worker  // A list of environment variable definitions to be used when running a step.
729*d5c09012SAndroid Build Coastguard Worker  //
730*d5c09012SAndroid Build Coastguard Worker  // The elements are of the form "KEY=VALUE" for the environment variable "KEY"
731*d5c09012SAndroid Build Coastguard Worker  // being given the value "VALUE".
732*d5c09012SAndroid Build Coastguard Worker  repeated string env = 2;
733*d5c09012SAndroid Build Coastguard Worker
734*d5c09012SAndroid Build Coastguard Worker  // A list of arguments that will be presented to the step when it is started.
735*d5c09012SAndroid Build Coastguard Worker  //
736*d5c09012SAndroid Build Coastguard Worker  // If the image used to run the step's container has an entrypoint, the `args`
737*d5c09012SAndroid Build Coastguard Worker  // are used as arguments to that entrypoint. If the image does not define
738*d5c09012SAndroid Build Coastguard Worker  // an entrypoint, the first element in args is used as the entrypoint,
739*d5c09012SAndroid Build Coastguard Worker  // and the remainder will be used as arguments.
740*d5c09012SAndroid Build Coastguard Worker  repeated string args = 3;
741*d5c09012SAndroid Build Coastguard Worker
742*d5c09012SAndroid Build Coastguard Worker  // Working directory to use when running this step's container.
743*d5c09012SAndroid Build Coastguard Worker  //
744*d5c09012SAndroid Build Coastguard Worker  // If this value is a relative path, it is relative to the build's working
745*d5c09012SAndroid Build Coastguard Worker  // directory. If this value is absolute, it may be outside the build's working
746*d5c09012SAndroid Build Coastguard Worker  // directory, in which case the contents of the path may not be persisted
747*d5c09012SAndroid Build Coastguard Worker  // across build step executions, unless a `volume` for that path is specified.
748*d5c09012SAndroid Build Coastguard Worker  //
749*d5c09012SAndroid Build Coastguard Worker  // If the build specifies a `RepoSource` with `dir` and a step with a `dir`,
750*d5c09012SAndroid Build Coastguard Worker  // which specifies an absolute path, the `RepoSource` `dir` is ignored for
751*d5c09012SAndroid Build Coastguard Worker  // the step's execution.
752*d5c09012SAndroid Build Coastguard Worker  string dir = 4;
753*d5c09012SAndroid Build Coastguard Worker
754*d5c09012SAndroid Build Coastguard Worker  // Unique identifier for this build step, used in `wait_for` to
755*d5c09012SAndroid Build Coastguard Worker  // reference this build step as a dependency.
756*d5c09012SAndroid Build Coastguard Worker  string id = 5;
757*d5c09012SAndroid Build Coastguard Worker
758*d5c09012SAndroid Build Coastguard Worker  // The ID(s) of the step(s) that this build step depends on.
759*d5c09012SAndroid Build Coastguard Worker  // This build step will not start until all the build steps in `wait_for`
760*d5c09012SAndroid Build Coastguard Worker  // have completed successfully. If `wait_for` is empty, this build step will
761*d5c09012SAndroid Build Coastguard Worker  // start when all previous build steps in the `Build.Steps` list have
762*d5c09012SAndroid Build Coastguard Worker  // completed successfully.
763*d5c09012SAndroid Build Coastguard Worker  repeated string wait_for = 6;
764*d5c09012SAndroid Build Coastguard Worker
765*d5c09012SAndroid Build Coastguard Worker  // Entrypoint to be used instead of the build step image's default entrypoint.
766*d5c09012SAndroid Build Coastguard Worker  // If unset, the image's default entrypoint is used.
767*d5c09012SAndroid Build Coastguard Worker  string entrypoint = 7;
768*d5c09012SAndroid Build Coastguard Worker
769*d5c09012SAndroid Build Coastguard Worker  // A list of environment variables which are encrypted using a Cloud Key
770*d5c09012SAndroid Build Coastguard Worker  // Management Service crypto key. These values must be specified in the
771*d5c09012SAndroid Build Coastguard Worker  // build's `Secret`.
772*d5c09012SAndroid Build Coastguard Worker  repeated string secret_env = 8;
773*d5c09012SAndroid Build Coastguard Worker
774*d5c09012SAndroid Build Coastguard Worker  // List of volumes to mount into the build step.
775*d5c09012SAndroid Build Coastguard Worker  //
776*d5c09012SAndroid Build Coastguard Worker  // Each volume is created as an empty volume prior to execution of the
777*d5c09012SAndroid Build Coastguard Worker  // build step. Upon completion of the build, volumes and their contents are
778*d5c09012SAndroid Build Coastguard Worker  // discarded.
779*d5c09012SAndroid Build Coastguard Worker  //
780*d5c09012SAndroid Build Coastguard Worker  // Using a named volume in only one step is not valid as it is indicative
781*d5c09012SAndroid Build Coastguard Worker  // of a build request with an incorrect configuration.
782*d5c09012SAndroid Build Coastguard Worker  repeated Volume volumes = 9;
783*d5c09012SAndroid Build Coastguard Worker
784*d5c09012SAndroid Build Coastguard Worker  // Output only. Stores timing information for executing this build step.
785*d5c09012SAndroid Build Coastguard Worker  TimeSpan timing = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
786*d5c09012SAndroid Build Coastguard Worker
787*d5c09012SAndroid Build Coastguard Worker  // Output only. Stores timing information for pulling this build step's
788*d5c09012SAndroid Build Coastguard Worker  // builder image only.
789*d5c09012SAndroid Build Coastguard Worker  TimeSpan pull_timing = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
790*d5c09012SAndroid Build Coastguard Worker
791*d5c09012SAndroid Build Coastguard Worker  // Time limit for executing this build step. If not defined, the step has no
792*d5c09012SAndroid Build Coastguard Worker  // time limit and will be allowed to continue to run until either it completes
793*d5c09012SAndroid Build Coastguard Worker  // or the build itself times out.
794*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration timeout = 11;
795*d5c09012SAndroid Build Coastguard Worker
796*d5c09012SAndroid Build Coastguard Worker  // Output only. Status of the build step. At this time, build step status is
797*d5c09012SAndroid Build Coastguard Worker  // only updated on build completion; step status is not updated in real-time
798*d5c09012SAndroid Build Coastguard Worker  // as the build progresses.
799*d5c09012SAndroid Build Coastguard Worker  Build.Status status = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
800*d5c09012SAndroid Build Coastguard Worker
801*d5c09012SAndroid Build Coastguard Worker  // Allow this build step to fail without failing the entire build.
802*d5c09012SAndroid Build Coastguard Worker  //
803*d5c09012SAndroid Build Coastguard Worker  // If false, the entire build will fail if this step fails. Otherwise, the
804*d5c09012SAndroid Build Coastguard Worker  // build will succeed, but this step will still have a failure status.
805*d5c09012SAndroid Build Coastguard Worker  // Error information will be reported in the failure_detail field.
806*d5c09012SAndroid Build Coastguard Worker  bool allow_failure = 14;
807*d5c09012SAndroid Build Coastguard Worker
808*d5c09012SAndroid Build Coastguard Worker  // Output only. Return code from running the step.
809*d5c09012SAndroid Build Coastguard Worker  int32 exit_code = 16 [(google.api.field_behavior) = OUTPUT_ONLY];
810*d5c09012SAndroid Build Coastguard Worker
811*d5c09012SAndroid Build Coastguard Worker  // Allow this build step to fail without failing the entire build if and
812*d5c09012SAndroid Build Coastguard Worker  // only if the exit code is one of the specified codes. If allow_failure
813*d5c09012SAndroid Build Coastguard Worker  // is also specified, this field will take precedence.
814*d5c09012SAndroid Build Coastguard Worker  repeated int32 allow_exit_codes = 18;
815*d5c09012SAndroid Build Coastguard Worker
816*d5c09012SAndroid Build Coastguard Worker  // A shell script to be executed in the step.
817*d5c09012SAndroid Build Coastguard Worker  //
818*d5c09012SAndroid Build Coastguard Worker  // When script is provided, the user cannot specify the entrypoint or args.
819*d5c09012SAndroid Build Coastguard Worker  string script = 19;
820*d5c09012SAndroid Build Coastguard Worker
821*d5c09012SAndroid Build Coastguard Worker  // Option to include built-in and custom substitutions as env variables
822*d5c09012SAndroid Build Coastguard Worker  // for this build step. This option will override the global option
823*d5c09012SAndroid Build Coastguard Worker  // in BuildOption.
824*d5c09012SAndroid Build Coastguard Worker  optional bool automap_substitutions = 20;
825*d5c09012SAndroid Build Coastguard Worker}
826*d5c09012SAndroid Build Coastguard Worker
827*d5c09012SAndroid Build Coastguard Worker// Volume describes a Docker container volume which is mounted into build steps
828*d5c09012SAndroid Build Coastguard Worker// in order to persist files across build step execution.
829*d5c09012SAndroid Build Coastguard Workermessage Volume {
830*d5c09012SAndroid Build Coastguard Worker  // Name of the volume to mount.
831*d5c09012SAndroid Build Coastguard Worker  //
832*d5c09012SAndroid Build Coastguard Worker  // Volume names must be unique per build step and must be valid names for
833*d5c09012SAndroid Build Coastguard Worker  // Docker volumes. Each named volume must be used by at least two build steps.
834*d5c09012SAndroid Build Coastguard Worker  string name = 1;
835*d5c09012SAndroid Build Coastguard Worker
836*d5c09012SAndroid Build Coastguard Worker  // Path at which to mount the volume.
837*d5c09012SAndroid Build Coastguard Worker  //
838*d5c09012SAndroid Build Coastguard Worker  // Paths must be absolute and cannot conflict with other volume paths on the
839*d5c09012SAndroid Build Coastguard Worker  // same build step or with certain reserved volume paths.
840*d5c09012SAndroid Build Coastguard Worker  string path = 2;
841*d5c09012SAndroid Build Coastguard Worker}
842*d5c09012SAndroid Build Coastguard Worker
843*d5c09012SAndroid Build Coastguard Worker// Artifacts created by the build pipeline.
844*d5c09012SAndroid Build Coastguard Workermessage Results {
845*d5c09012SAndroid Build Coastguard Worker  // Container images that were built as a part of the build.
846*d5c09012SAndroid Build Coastguard Worker  repeated BuiltImage images = 2;
847*d5c09012SAndroid Build Coastguard Worker
848*d5c09012SAndroid Build Coastguard Worker  // List of build step digests, in the order corresponding to build step
849*d5c09012SAndroid Build Coastguard Worker  // indices.
850*d5c09012SAndroid Build Coastguard Worker  repeated string build_step_images = 3;
851*d5c09012SAndroid Build Coastguard Worker
852*d5c09012SAndroid Build Coastguard Worker  // Path to the artifact manifest for non-container artifacts uploaded to Cloud
853*d5c09012SAndroid Build Coastguard Worker  // Storage. Only populated when artifacts are uploaded to Cloud Storage.
854*d5c09012SAndroid Build Coastguard Worker  string artifact_manifest = 4;
855*d5c09012SAndroid Build Coastguard Worker
856*d5c09012SAndroid Build Coastguard Worker  // Number of non-container artifacts uploaded to Cloud Storage. Only populated
857*d5c09012SAndroid Build Coastguard Worker  // when artifacts are uploaded to Cloud Storage.
858*d5c09012SAndroid Build Coastguard Worker  int64 num_artifacts = 5;
859*d5c09012SAndroid Build Coastguard Worker
860*d5c09012SAndroid Build Coastguard Worker  // List of build step outputs, produced by builder images, in the order
861*d5c09012SAndroid Build Coastguard Worker  // corresponding to build step indices.
862*d5c09012SAndroid Build Coastguard Worker  //
863*d5c09012SAndroid Build Coastguard Worker  // [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders)
864*d5c09012SAndroid Build Coastguard Worker  // can produce this output by writing to `$BUILDER_OUTPUT/output`.
865*d5c09012SAndroid Build Coastguard Worker  // Only the first 4KB of data is stored.
866*d5c09012SAndroid Build Coastguard Worker  repeated bytes build_step_outputs = 6;
867*d5c09012SAndroid Build Coastguard Worker
868*d5c09012SAndroid Build Coastguard Worker  // Time to push all non-container artifacts to Cloud Storage.
869*d5c09012SAndroid Build Coastguard Worker  TimeSpan artifact_timing = 7;
870*d5c09012SAndroid Build Coastguard Worker
871*d5c09012SAndroid Build Coastguard Worker  // Python artifacts uploaded to Artifact Registry at the end of the build.
872*d5c09012SAndroid Build Coastguard Worker  repeated UploadedPythonPackage python_packages = 8;
873*d5c09012SAndroid Build Coastguard Worker
874*d5c09012SAndroid Build Coastguard Worker  // Maven artifacts uploaded to Artifact Registry at the end of the build.
875*d5c09012SAndroid Build Coastguard Worker  repeated UploadedMavenArtifact maven_artifacts = 9;
876*d5c09012SAndroid Build Coastguard Worker
877*d5c09012SAndroid Build Coastguard Worker  // Npm packages uploaded to Artifact Registry at the end of the build.
878*d5c09012SAndroid Build Coastguard Worker  repeated UploadedNpmPackage npm_packages = 12;
879*d5c09012SAndroid Build Coastguard Worker}
880*d5c09012SAndroid Build Coastguard Worker
881*d5c09012SAndroid Build Coastguard Worker// An artifact that was uploaded during a build. This
882*d5c09012SAndroid Build Coastguard Worker// is a single record in the artifact manifest JSON file.
883*d5c09012SAndroid Build Coastguard Workermessage ArtifactResult {
884*d5c09012SAndroid Build Coastguard Worker  // The path of an artifact in a Cloud Storage bucket, with the
885*d5c09012SAndroid Build Coastguard Worker  // generation number. For example,
886*d5c09012SAndroid Build Coastguard Worker  // `gs://mybucket/path/to/output.jar#generation`.
887*d5c09012SAndroid Build Coastguard Worker  string location = 1;
888*d5c09012SAndroid Build Coastguard Worker
889*d5c09012SAndroid Build Coastguard Worker  // The file hash of the artifact.
890*d5c09012SAndroid Build Coastguard Worker  repeated FileHashes file_hash = 2;
891*d5c09012SAndroid Build Coastguard Worker}
892*d5c09012SAndroid Build Coastguard Worker
893*d5c09012SAndroid Build Coastguard Worker// A build resource in the Cloud Build API.
894*d5c09012SAndroid Build Coastguard Worker//
895*d5c09012SAndroid Build Coastguard Worker// At a high level, a `Build` describes where to find source code, how to build
896*d5c09012SAndroid Build Coastguard Worker// it (for example, the builder image to run on the source), and where to store
897*d5c09012SAndroid Build Coastguard Worker// the built artifacts.
898*d5c09012SAndroid Build Coastguard Worker//
899*d5c09012SAndroid Build Coastguard Worker// Fields can include the following variables, which will be expanded when the
900*d5c09012SAndroid Build Coastguard Worker// build is created:
901*d5c09012SAndroid Build Coastguard Worker//
902*d5c09012SAndroid Build Coastguard Worker// - $PROJECT_ID: the project ID of the build.
903*d5c09012SAndroid Build Coastguard Worker// - $PROJECT_NUMBER: the project number of the build.
904*d5c09012SAndroid Build Coastguard Worker// - $LOCATION: the location/region of the build.
905*d5c09012SAndroid Build Coastguard Worker// - $BUILD_ID: the autogenerated ID of the build.
906*d5c09012SAndroid Build Coastguard Worker// - $REPO_NAME: the source repository name specified by RepoSource.
907*d5c09012SAndroid Build Coastguard Worker// - $BRANCH_NAME: the branch name specified by RepoSource.
908*d5c09012SAndroid Build Coastguard Worker// - $TAG_NAME: the tag name specified by RepoSource.
909*d5c09012SAndroid Build Coastguard Worker// - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or
910*d5c09012SAndroid Build Coastguard Worker//   resolved from the specified branch or tag.
911*d5c09012SAndroid Build Coastguard Worker// - $SHORT_SHA: first 7 characters of $REVISION_ID or $COMMIT_SHA.
912*d5c09012SAndroid Build Coastguard Workermessage Build {
913*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
914*d5c09012SAndroid Build Coastguard Worker    type: "cloudbuild.googleapis.com/Build"
915*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/builds/{build}"
916*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/builds/{build}"
917*d5c09012SAndroid Build Coastguard Worker  };
918*d5c09012SAndroid Build Coastguard Worker
919*d5c09012SAndroid Build Coastguard Worker  // Possible status of a build or build step.
920*d5c09012SAndroid Build Coastguard Worker  enum Status {
921*d5c09012SAndroid Build Coastguard Worker    // Status of the build is unknown.
922*d5c09012SAndroid Build Coastguard Worker    STATUS_UNKNOWN = 0;
923*d5c09012SAndroid Build Coastguard Worker
924*d5c09012SAndroid Build Coastguard Worker    // Build has been created and is pending execution and queuing. It has not
925*d5c09012SAndroid Build Coastguard Worker    // been queued.
926*d5c09012SAndroid Build Coastguard Worker    PENDING = 10;
927*d5c09012SAndroid Build Coastguard Worker
928*d5c09012SAndroid Build Coastguard Worker    // Build or step is queued; work has not yet begun.
929*d5c09012SAndroid Build Coastguard Worker    QUEUED = 1;
930*d5c09012SAndroid Build Coastguard Worker
931*d5c09012SAndroid Build Coastguard Worker    // Build or step is being executed.
932*d5c09012SAndroid Build Coastguard Worker    WORKING = 2;
933*d5c09012SAndroid Build Coastguard Worker
934*d5c09012SAndroid Build Coastguard Worker    // Build or step finished successfully.
935*d5c09012SAndroid Build Coastguard Worker    SUCCESS = 3;
936*d5c09012SAndroid Build Coastguard Worker
937*d5c09012SAndroid Build Coastguard Worker    // Build or step failed to complete successfully.
938*d5c09012SAndroid Build Coastguard Worker    FAILURE = 4;
939*d5c09012SAndroid Build Coastguard Worker
940*d5c09012SAndroid Build Coastguard Worker    // Build or step failed due to an internal cause.
941*d5c09012SAndroid Build Coastguard Worker    INTERNAL_ERROR = 5;
942*d5c09012SAndroid Build Coastguard Worker
943*d5c09012SAndroid Build Coastguard Worker    // Build or step took longer than was allowed.
944*d5c09012SAndroid Build Coastguard Worker    TIMEOUT = 6;
945*d5c09012SAndroid Build Coastguard Worker
946*d5c09012SAndroid Build Coastguard Worker    // Build or step was canceled by a user.
947*d5c09012SAndroid Build Coastguard Worker    CANCELLED = 7;
948*d5c09012SAndroid Build Coastguard Worker
949*d5c09012SAndroid Build Coastguard Worker    // Build was enqueued for longer than the value of `queue_ttl`.
950*d5c09012SAndroid Build Coastguard Worker    EXPIRED = 9;
951*d5c09012SAndroid Build Coastguard Worker  }
952*d5c09012SAndroid Build Coastguard Worker
953*d5c09012SAndroid Build Coastguard Worker  // A non-fatal problem encountered during the execution of the build.
954*d5c09012SAndroid Build Coastguard Worker  message Warning {
955*d5c09012SAndroid Build Coastguard Worker    // The relative importance of this warning.
956*d5c09012SAndroid Build Coastguard Worker    enum Priority {
957*d5c09012SAndroid Build Coastguard Worker      // Should not be used.
958*d5c09012SAndroid Build Coastguard Worker      PRIORITY_UNSPECIFIED = 0;
959*d5c09012SAndroid Build Coastguard Worker
960*d5c09012SAndroid Build Coastguard Worker      // e.g. deprecation warnings and alternative feature highlights.
961*d5c09012SAndroid Build Coastguard Worker      INFO = 1;
962*d5c09012SAndroid Build Coastguard Worker
963*d5c09012SAndroid Build Coastguard Worker      // e.g. automated detection of possible issues with the build.
964*d5c09012SAndroid Build Coastguard Worker      WARNING = 2;
965*d5c09012SAndroid Build Coastguard Worker
966*d5c09012SAndroid Build Coastguard Worker      // e.g. alerts that a feature used in the build is pending removal
967*d5c09012SAndroid Build Coastguard Worker      ALERT = 3;
968*d5c09012SAndroid Build Coastguard Worker    }
969*d5c09012SAndroid Build Coastguard Worker
970*d5c09012SAndroid Build Coastguard Worker    // Explanation of the warning generated.
971*d5c09012SAndroid Build Coastguard Worker    string text = 1;
972*d5c09012SAndroid Build Coastguard Worker
973*d5c09012SAndroid Build Coastguard Worker    // The priority for this warning.
974*d5c09012SAndroid Build Coastguard Worker    Priority priority = 2;
975*d5c09012SAndroid Build Coastguard Worker  }
976*d5c09012SAndroid Build Coastguard Worker
977*d5c09012SAndroid Build Coastguard Worker  // A fatal problem encountered during the execution of the build.
978*d5c09012SAndroid Build Coastguard Worker  message FailureInfo {
979*d5c09012SAndroid Build Coastguard Worker    // The name of a fatal problem encountered during the execution of the
980*d5c09012SAndroid Build Coastguard Worker    // build.
981*d5c09012SAndroid Build Coastguard Worker    enum FailureType {
982*d5c09012SAndroid Build Coastguard Worker      // Type unspecified
983*d5c09012SAndroid Build Coastguard Worker      FAILURE_TYPE_UNSPECIFIED = 0;
984*d5c09012SAndroid Build Coastguard Worker
985*d5c09012SAndroid Build Coastguard Worker      // Unable to push the image to the repository.
986*d5c09012SAndroid Build Coastguard Worker      PUSH_FAILED = 1;
987*d5c09012SAndroid Build Coastguard Worker
988*d5c09012SAndroid Build Coastguard Worker      // Final image not found.
989*d5c09012SAndroid Build Coastguard Worker      PUSH_IMAGE_NOT_FOUND = 2;
990*d5c09012SAndroid Build Coastguard Worker
991*d5c09012SAndroid Build Coastguard Worker      // Unauthorized push of the final image.
992*d5c09012SAndroid Build Coastguard Worker      PUSH_NOT_AUTHORIZED = 3;
993*d5c09012SAndroid Build Coastguard Worker
994*d5c09012SAndroid Build Coastguard Worker      // Backend logging failures. Should retry.
995*d5c09012SAndroid Build Coastguard Worker      LOGGING_FAILURE = 4;
996*d5c09012SAndroid Build Coastguard Worker
997*d5c09012SAndroid Build Coastguard Worker      // A build step has failed.
998*d5c09012SAndroid Build Coastguard Worker      USER_BUILD_STEP = 5;
999*d5c09012SAndroid Build Coastguard Worker
1000*d5c09012SAndroid Build Coastguard Worker      // The source fetching has failed.
1001*d5c09012SAndroid Build Coastguard Worker      FETCH_SOURCE_FAILED = 6;
1002*d5c09012SAndroid Build Coastguard Worker    }
1003*d5c09012SAndroid Build Coastguard Worker
1004*d5c09012SAndroid Build Coastguard Worker    // The name of the failure.
1005*d5c09012SAndroid Build Coastguard Worker    FailureType type = 1;
1006*d5c09012SAndroid Build Coastguard Worker
1007*d5c09012SAndroid Build Coastguard Worker    // Explains the failure issue in more detail using hard-coded text.
1008*d5c09012SAndroid Build Coastguard Worker    string detail = 2;
1009*d5c09012SAndroid Build Coastguard Worker  }
1010*d5c09012SAndroid Build Coastguard Worker
1011*d5c09012SAndroid Build Coastguard Worker  // Output only. The 'Build' name with format:
1012*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location}/builds/{build}`, where {build}
1013*d5c09012SAndroid Build Coastguard Worker  // is a unique identifier generated by the service.
1014*d5c09012SAndroid Build Coastguard Worker  string name = 45 [(google.api.field_behavior) = OUTPUT_ONLY];
1015*d5c09012SAndroid Build Coastguard Worker
1016*d5c09012SAndroid Build Coastguard Worker  // Output only. Unique identifier of the build.
1017*d5c09012SAndroid Build Coastguard Worker  string id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
1018*d5c09012SAndroid Build Coastguard Worker
1019*d5c09012SAndroid Build Coastguard Worker  // Output only. ID of the project.
1020*d5c09012SAndroid Build Coastguard Worker  string project_id = 16 [(google.api.field_behavior) = OUTPUT_ONLY];
1021*d5c09012SAndroid Build Coastguard Worker
1022*d5c09012SAndroid Build Coastguard Worker  // Output only. Status of the build.
1023*d5c09012SAndroid Build Coastguard Worker  Status status = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
1024*d5c09012SAndroid Build Coastguard Worker
1025*d5c09012SAndroid Build Coastguard Worker  // Output only. Customer-readable message about the current status.
1026*d5c09012SAndroid Build Coastguard Worker  string status_detail = 24 [(google.api.field_behavior) = OUTPUT_ONLY];
1027*d5c09012SAndroid Build Coastguard Worker
1028*d5c09012SAndroid Build Coastguard Worker  // The location of the source files to build.
1029*d5c09012SAndroid Build Coastguard Worker  Source source = 3;
1030*d5c09012SAndroid Build Coastguard Worker
1031*d5c09012SAndroid Build Coastguard Worker  // Required. The operations to be performed on the workspace.
1032*d5c09012SAndroid Build Coastguard Worker  repeated BuildStep steps = 11;
1033*d5c09012SAndroid Build Coastguard Worker
1034*d5c09012SAndroid Build Coastguard Worker  // Output only. Results of the build.
1035*d5c09012SAndroid Build Coastguard Worker  Results results = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
1036*d5c09012SAndroid Build Coastguard Worker
1037*d5c09012SAndroid Build Coastguard Worker  // Output only. Time at which the request to create the build was received.
1038*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 6
1039*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1040*d5c09012SAndroid Build Coastguard Worker
1041*d5c09012SAndroid Build Coastguard Worker  // Output only. Time at which execution of the build was started.
1042*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp start_time = 7
1043*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1044*d5c09012SAndroid Build Coastguard Worker
1045*d5c09012SAndroid Build Coastguard Worker  // Output only. Time at which execution of the build was finished.
1046*d5c09012SAndroid Build Coastguard Worker  //
1047*d5c09012SAndroid Build Coastguard Worker  // The difference between finish_time and start_time is the duration of the
1048*d5c09012SAndroid Build Coastguard Worker  // build's execution.
1049*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp finish_time = 8
1050*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1051*d5c09012SAndroid Build Coastguard Worker
1052*d5c09012SAndroid Build Coastguard Worker  // Amount of time that this build should be allowed to run, to second
1053*d5c09012SAndroid Build Coastguard Worker  // granularity. If this amount of time elapses, work on the build will cease
1054*d5c09012SAndroid Build Coastguard Worker  // and the build status will be `TIMEOUT`.
1055*d5c09012SAndroid Build Coastguard Worker  //
1056*d5c09012SAndroid Build Coastguard Worker  // `timeout` starts ticking from `startTime`.
1057*d5c09012SAndroid Build Coastguard Worker  //
1058*d5c09012SAndroid Build Coastguard Worker  // Default time is 60 minutes.
1059*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration timeout = 12;
1060*d5c09012SAndroid Build Coastguard Worker
1061*d5c09012SAndroid Build Coastguard Worker  // A list of images to be pushed upon the successful completion of all build
1062*d5c09012SAndroid Build Coastguard Worker  // steps.
1063*d5c09012SAndroid Build Coastguard Worker  //
1064*d5c09012SAndroid Build Coastguard Worker  // The images are pushed using the builder service account's credentials.
1065*d5c09012SAndroid Build Coastguard Worker  //
1066*d5c09012SAndroid Build Coastguard Worker  // The digests of the pushed images will be stored in the `Build` resource's
1067*d5c09012SAndroid Build Coastguard Worker  // results field.
1068*d5c09012SAndroid Build Coastguard Worker  //
1069*d5c09012SAndroid Build Coastguard Worker  // If any of the images fail to be pushed, the build status is marked
1070*d5c09012SAndroid Build Coastguard Worker  // `FAILURE`.
1071*d5c09012SAndroid Build Coastguard Worker  repeated string images = 13;
1072*d5c09012SAndroid Build Coastguard Worker
1073*d5c09012SAndroid Build Coastguard Worker  // TTL in queue for this build. If provided and the build is enqueued longer
1074*d5c09012SAndroid Build Coastguard Worker  // than this value, the build will expire and the build status will be
1075*d5c09012SAndroid Build Coastguard Worker  // `EXPIRED`.
1076*d5c09012SAndroid Build Coastguard Worker  //
1077*d5c09012SAndroid Build Coastguard Worker  // The TTL starts ticking from create_time.
1078*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration queue_ttl = 40;
1079*d5c09012SAndroid Build Coastguard Worker
1080*d5c09012SAndroid Build Coastguard Worker  // Artifacts produced by the build that should be uploaded upon
1081*d5c09012SAndroid Build Coastguard Worker  // successful completion of all build steps.
1082*d5c09012SAndroid Build Coastguard Worker  Artifacts artifacts = 37;
1083*d5c09012SAndroid Build Coastguard Worker
1084*d5c09012SAndroid Build Coastguard Worker  // Cloud Storage bucket where logs should be written (see
1085*d5c09012SAndroid Build Coastguard Worker  // [Bucket Name
1086*d5c09012SAndroid Build Coastguard Worker  // Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
1087*d5c09012SAndroid Build Coastguard Worker  // Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.
1088*d5c09012SAndroid Build Coastguard Worker  string logs_bucket = 19;
1089*d5c09012SAndroid Build Coastguard Worker
1090*d5c09012SAndroid Build Coastguard Worker  // Output only. A permanent fixed identifier for source.
1091*d5c09012SAndroid Build Coastguard Worker  SourceProvenance source_provenance = 21
1092*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1093*d5c09012SAndroid Build Coastguard Worker
1094*d5c09012SAndroid Build Coastguard Worker  // Output only. The ID of the `BuildTrigger` that triggered this build, if it
1095*d5c09012SAndroid Build Coastguard Worker  // was triggered automatically.
1096*d5c09012SAndroid Build Coastguard Worker  string build_trigger_id = 22 [(google.api.field_behavior) = OUTPUT_ONLY];
1097*d5c09012SAndroid Build Coastguard Worker
1098*d5c09012SAndroid Build Coastguard Worker  // Special options for this build.
1099*d5c09012SAndroid Build Coastguard Worker  BuildOptions options = 23;
1100*d5c09012SAndroid Build Coastguard Worker
1101*d5c09012SAndroid Build Coastguard Worker  // Output only. URL to logs for this build in Google Cloud Console.
1102*d5c09012SAndroid Build Coastguard Worker  string log_url = 25 [(google.api.field_behavior) = OUTPUT_ONLY];
1103*d5c09012SAndroid Build Coastguard Worker
1104*d5c09012SAndroid Build Coastguard Worker  // Substitutions data for `Build` resource.
1105*d5c09012SAndroid Build Coastguard Worker  map<string, string> substitutions = 29;
1106*d5c09012SAndroid Build Coastguard Worker
1107*d5c09012SAndroid Build Coastguard Worker  // Tags for annotation of a `Build`. These are not docker tags.
1108*d5c09012SAndroid Build Coastguard Worker  repeated string tags = 31;
1109*d5c09012SAndroid Build Coastguard Worker
1110*d5c09012SAndroid Build Coastguard Worker  // Secrets to decrypt using Cloud Key Management Service.
1111*d5c09012SAndroid Build Coastguard Worker  // Note: Secret Manager is the recommended technique
1112*d5c09012SAndroid Build Coastguard Worker  // for managing sensitive data with Cloud Build. Use `available_secrets` to
1113*d5c09012SAndroid Build Coastguard Worker  // configure builds to access secrets from Secret Manager. For instructions,
1114*d5c09012SAndroid Build Coastguard Worker  // see: https://cloud.google.com/cloud-build/docs/securing-builds/use-secrets
1115*d5c09012SAndroid Build Coastguard Worker  repeated Secret secrets = 32;
1116*d5c09012SAndroid Build Coastguard Worker
1117*d5c09012SAndroid Build Coastguard Worker  // Output only. Stores timing information for phases of the build. Valid keys
1118*d5c09012SAndroid Build Coastguard Worker  // are:
1119*d5c09012SAndroid Build Coastguard Worker  //
1120*d5c09012SAndroid Build Coastguard Worker  // * BUILD: time to execute all build steps.
1121*d5c09012SAndroid Build Coastguard Worker  // * PUSH: time to push all artifacts including docker images and non docker
1122*d5c09012SAndroid Build Coastguard Worker  // artifacts.
1123*d5c09012SAndroid Build Coastguard Worker  // * FETCHSOURCE: time to fetch source.
1124*d5c09012SAndroid Build Coastguard Worker  // * SETUPBUILD: time to set up build.
1125*d5c09012SAndroid Build Coastguard Worker  //
1126*d5c09012SAndroid Build Coastguard Worker  // If the build does not specify source or images,
1127*d5c09012SAndroid Build Coastguard Worker  // these keys will not be included.
1128*d5c09012SAndroid Build Coastguard Worker  map<string, TimeSpan> timing = 33 [(google.api.field_behavior) = OUTPUT_ONLY];
1129*d5c09012SAndroid Build Coastguard Worker
1130*d5c09012SAndroid Build Coastguard Worker  // Output only. Describes this build's approval configuration, status,
1131*d5c09012SAndroid Build Coastguard Worker  // and result.
1132*d5c09012SAndroid Build Coastguard Worker  BuildApproval approval = 44 [(google.api.field_behavior) = OUTPUT_ONLY];
1133*d5c09012SAndroid Build Coastguard Worker
1134*d5c09012SAndroid Build Coastguard Worker  // IAM service account whose credentials will be used at build runtime.
1135*d5c09012SAndroid Build Coastguard Worker  // Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`.
1136*d5c09012SAndroid Build Coastguard Worker  // ACCOUNT can be email address or uniqueId of the service account.
1137*d5c09012SAndroid Build Coastguard Worker  //
1138*d5c09012SAndroid Build Coastguard Worker  string service_account = 42 [(google.api.resource_reference) = {
1139*d5c09012SAndroid Build Coastguard Worker    type: "iam.googleapis.com/ServiceAccount"
1140*d5c09012SAndroid Build Coastguard Worker  }];
1141*d5c09012SAndroid Build Coastguard Worker
1142*d5c09012SAndroid Build Coastguard Worker  // Secrets and secret environment variables.
1143*d5c09012SAndroid Build Coastguard Worker  Secrets available_secrets = 47;
1144*d5c09012SAndroid Build Coastguard Worker
1145*d5c09012SAndroid Build Coastguard Worker  // Output only. Non-fatal problems encountered during the execution of the
1146*d5c09012SAndroid Build Coastguard Worker  // build.
1147*d5c09012SAndroid Build Coastguard Worker  repeated Warning warnings = 49 [(google.api.field_behavior) = OUTPUT_ONLY];
1148*d5c09012SAndroid Build Coastguard Worker
1149*d5c09012SAndroid Build Coastguard Worker  // Output only. Contains information about the build when status=FAILURE.
1150*d5c09012SAndroid Build Coastguard Worker  FailureInfo failure_info = 51 [(google.api.field_behavior) = OUTPUT_ONLY];
1151*d5c09012SAndroid Build Coastguard Worker}
1152*d5c09012SAndroid Build Coastguard Worker
1153*d5c09012SAndroid Build Coastguard Worker// Artifacts produced by a build that should be uploaded upon
1154*d5c09012SAndroid Build Coastguard Worker// successful completion of all build steps.
1155*d5c09012SAndroid Build Coastguard Workermessage Artifacts {
1156*d5c09012SAndroid Build Coastguard Worker  // Files in the workspace to upload to Cloud Storage upon successful
1157*d5c09012SAndroid Build Coastguard Worker  // completion of all build steps.
1158*d5c09012SAndroid Build Coastguard Worker  message ArtifactObjects {
1159*d5c09012SAndroid Build Coastguard Worker    // Cloud Storage bucket and optional object path, in the form
1160*d5c09012SAndroid Build Coastguard Worker    // "gs://bucket/path/to/somewhere/". (see [Bucket Name
1161*d5c09012SAndroid Build Coastguard Worker    // Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
1162*d5c09012SAndroid Build Coastguard Worker    //
1163*d5c09012SAndroid Build Coastguard Worker    // Files in the workspace matching any path pattern will be uploaded to
1164*d5c09012SAndroid Build Coastguard Worker    // Cloud Storage with this location as a prefix.
1165*d5c09012SAndroid Build Coastguard Worker    string location = 1;
1166*d5c09012SAndroid Build Coastguard Worker
1167*d5c09012SAndroid Build Coastguard Worker    // Path globs used to match files in the build's workspace.
1168*d5c09012SAndroid Build Coastguard Worker    repeated string paths = 2;
1169*d5c09012SAndroid Build Coastguard Worker
1170*d5c09012SAndroid Build Coastguard Worker    // Output only. Stores timing information for pushing all artifact objects.
1171*d5c09012SAndroid Build Coastguard Worker    TimeSpan timing = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
1172*d5c09012SAndroid Build Coastguard Worker  }
1173*d5c09012SAndroid Build Coastguard Worker
1174*d5c09012SAndroid Build Coastguard Worker  // A Maven artifact to upload to Artifact Registry upon successful completion
1175*d5c09012SAndroid Build Coastguard Worker  // of all build steps.
1176*d5c09012SAndroid Build Coastguard Worker  message MavenArtifact {
1177*d5c09012SAndroid Build Coastguard Worker    // Artifact Registry repository, in the form
1178*d5c09012SAndroid Build Coastguard Worker    // "https://$REGION-maven.pkg.dev/$PROJECT/$REPOSITORY"
1179*d5c09012SAndroid Build Coastguard Worker    //
1180*d5c09012SAndroid Build Coastguard Worker    // Artifact in the workspace specified by path will be uploaded to
1181*d5c09012SAndroid Build Coastguard Worker    // Artifact Registry with this location as a prefix.
1182*d5c09012SAndroid Build Coastguard Worker    string repository = 1;
1183*d5c09012SAndroid Build Coastguard Worker
1184*d5c09012SAndroid Build Coastguard Worker    // Path to an artifact in the build's workspace to be uploaded to
1185*d5c09012SAndroid Build Coastguard Worker    // Artifact Registry.
1186*d5c09012SAndroid Build Coastguard Worker    // This can be either an absolute path,
1187*d5c09012SAndroid Build Coastguard Worker    // e.g. /workspace/my-app/target/my-app-1.0.SNAPSHOT.jar
1188*d5c09012SAndroid Build Coastguard Worker    // or a relative path from /workspace,
1189*d5c09012SAndroid Build Coastguard Worker    // e.g. my-app/target/my-app-1.0.SNAPSHOT.jar.
1190*d5c09012SAndroid Build Coastguard Worker    string path = 2;
1191*d5c09012SAndroid Build Coastguard Worker
1192*d5c09012SAndroid Build Coastguard Worker    // Maven `artifactId` value used when uploading the artifact to Artifact
1193*d5c09012SAndroid Build Coastguard Worker    // Registry.
1194*d5c09012SAndroid Build Coastguard Worker    string artifact_id = 3;
1195*d5c09012SAndroid Build Coastguard Worker
1196*d5c09012SAndroid Build Coastguard Worker    // Maven `groupId` value used when uploading the artifact to Artifact
1197*d5c09012SAndroid Build Coastguard Worker    // Registry.
1198*d5c09012SAndroid Build Coastguard Worker    string group_id = 4;
1199*d5c09012SAndroid Build Coastguard Worker
1200*d5c09012SAndroid Build Coastguard Worker    // Maven `version` value used when uploading the artifact to Artifact
1201*d5c09012SAndroid Build Coastguard Worker    // Registry.
1202*d5c09012SAndroid Build Coastguard Worker    string version = 5;
1203*d5c09012SAndroid Build Coastguard Worker  }
1204*d5c09012SAndroid Build Coastguard Worker
1205*d5c09012SAndroid Build Coastguard Worker  // Python package to upload to Artifact Registry upon successful completion
1206*d5c09012SAndroid Build Coastguard Worker  // of all build steps. A package can encapsulate multiple objects to be
1207*d5c09012SAndroid Build Coastguard Worker  // uploaded to a single repository.
1208*d5c09012SAndroid Build Coastguard Worker  message PythonPackage {
1209*d5c09012SAndroid Build Coastguard Worker    // Artifact Registry repository, in the form
1210*d5c09012SAndroid Build Coastguard Worker    // "https://$REGION-python.pkg.dev/$PROJECT/$REPOSITORY"
1211*d5c09012SAndroid Build Coastguard Worker    //
1212*d5c09012SAndroid Build Coastguard Worker    // Files in the workspace matching any path pattern will be uploaded to
1213*d5c09012SAndroid Build Coastguard Worker    // Artifact Registry with this location as a prefix.
1214*d5c09012SAndroid Build Coastguard Worker    string repository = 1;
1215*d5c09012SAndroid Build Coastguard Worker
1216*d5c09012SAndroid Build Coastguard Worker    // Path globs used to match files in the build's workspace. For Python/
1217*d5c09012SAndroid Build Coastguard Worker    // Twine, this is usually `dist/*`, and sometimes additionally an `.asc`
1218*d5c09012SAndroid Build Coastguard Worker    // file.
1219*d5c09012SAndroid Build Coastguard Worker    repeated string paths = 2;
1220*d5c09012SAndroid Build Coastguard Worker  }
1221*d5c09012SAndroid Build Coastguard Worker
1222*d5c09012SAndroid Build Coastguard Worker  // Npm package to upload to Artifact Registry upon successful completion
1223*d5c09012SAndroid Build Coastguard Worker  // of all build steps.
1224*d5c09012SAndroid Build Coastguard Worker  message NpmPackage {
1225*d5c09012SAndroid Build Coastguard Worker    // Artifact Registry repository, in the form
1226*d5c09012SAndroid Build Coastguard Worker    // "https://$REGION-npm.pkg.dev/$PROJECT/$REPOSITORY"
1227*d5c09012SAndroid Build Coastguard Worker    //
1228*d5c09012SAndroid Build Coastguard Worker    // Npm package in the workspace specified by path will be zipped and
1229*d5c09012SAndroid Build Coastguard Worker    // uploaded to Artifact Registry with this location as a prefix.
1230*d5c09012SAndroid Build Coastguard Worker    string repository = 1;
1231*d5c09012SAndroid Build Coastguard Worker
1232*d5c09012SAndroid Build Coastguard Worker    // Path to the package.json.
1233*d5c09012SAndroid Build Coastguard Worker    // e.g. workspace/path/to/package
1234*d5c09012SAndroid Build Coastguard Worker    string package_path = 2;
1235*d5c09012SAndroid Build Coastguard Worker  }
1236*d5c09012SAndroid Build Coastguard Worker
1237*d5c09012SAndroid Build Coastguard Worker  // A list of images to be pushed upon the successful completion of all build
1238*d5c09012SAndroid Build Coastguard Worker  // steps.
1239*d5c09012SAndroid Build Coastguard Worker  //
1240*d5c09012SAndroid Build Coastguard Worker  // The images will be pushed using the builder service account's credentials.
1241*d5c09012SAndroid Build Coastguard Worker  //
1242*d5c09012SAndroid Build Coastguard Worker  // The digests of the pushed images will be stored in the Build resource's
1243*d5c09012SAndroid Build Coastguard Worker  // results field.
1244*d5c09012SAndroid Build Coastguard Worker  //
1245*d5c09012SAndroid Build Coastguard Worker  // If any of the images fail to be pushed, the build is marked FAILURE.
1246*d5c09012SAndroid Build Coastguard Worker  repeated string images = 1;
1247*d5c09012SAndroid Build Coastguard Worker
1248*d5c09012SAndroid Build Coastguard Worker  // A list of objects to be uploaded to Cloud Storage upon successful
1249*d5c09012SAndroid Build Coastguard Worker  // completion of all build steps.
1250*d5c09012SAndroid Build Coastguard Worker  //
1251*d5c09012SAndroid Build Coastguard Worker  // Files in the workspace matching specified paths globs will be uploaded to
1252*d5c09012SAndroid Build Coastguard Worker  // the specified Cloud Storage location using the builder service account's
1253*d5c09012SAndroid Build Coastguard Worker  // credentials.
1254*d5c09012SAndroid Build Coastguard Worker  //
1255*d5c09012SAndroid Build Coastguard Worker  // The location and generation of the uploaded objects will be stored in the
1256*d5c09012SAndroid Build Coastguard Worker  // Build resource's results field.
1257*d5c09012SAndroid Build Coastguard Worker  //
1258*d5c09012SAndroid Build Coastguard Worker  // If any objects fail to be pushed, the build is marked FAILURE.
1259*d5c09012SAndroid Build Coastguard Worker  ArtifactObjects objects = 2;
1260*d5c09012SAndroid Build Coastguard Worker
1261*d5c09012SAndroid Build Coastguard Worker  // A list of Maven artifacts to be uploaded to Artifact Registry upon
1262*d5c09012SAndroid Build Coastguard Worker  // successful completion of all build steps.
1263*d5c09012SAndroid Build Coastguard Worker  //
1264*d5c09012SAndroid Build Coastguard Worker  // Artifacts in the workspace matching specified paths globs will be uploaded
1265*d5c09012SAndroid Build Coastguard Worker  // to the specified Artifact Registry repository using the builder service
1266*d5c09012SAndroid Build Coastguard Worker  // account's credentials.
1267*d5c09012SAndroid Build Coastguard Worker  //
1268*d5c09012SAndroid Build Coastguard Worker  // If any artifacts fail to be pushed, the build is marked FAILURE.
1269*d5c09012SAndroid Build Coastguard Worker  repeated MavenArtifact maven_artifacts = 3;
1270*d5c09012SAndroid Build Coastguard Worker
1271*d5c09012SAndroid Build Coastguard Worker  // A list of Python packages to be uploaded to Artifact Registry upon
1272*d5c09012SAndroid Build Coastguard Worker  // successful completion of all build steps.
1273*d5c09012SAndroid Build Coastguard Worker  //
1274*d5c09012SAndroid Build Coastguard Worker  // The build service account credentials will be used to perform the upload.
1275*d5c09012SAndroid Build Coastguard Worker  //
1276*d5c09012SAndroid Build Coastguard Worker  // If any objects fail to be pushed, the build is marked FAILURE.
1277*d5c09012SAndroid Build Coastguard Worker  repeated PythonPackage python_packages = 5;
1278*d5c09012SAndroid Build Coastguard Worker
1279*d5c09012SAndroid Build Coastguard Worker  // A list of npm packages to be uploaded to Artifact Registry upon
1280*d5c09012SAndroid Build Coastguard Worker  // successful completion of all build steps.
1281*d5c09012SAndroid Build Coastguard Worker  //
1282*d5c09012SAndroid Build Coastguard Worker  // Npm packages in the specified paths will be uploaded
1283*d5c09012SAndroid Build Coastguard Worker  // to the specified Artifact Registry repository using the builder service
1284*d5c09012SAndroid Build Coastguard Worker  // account's credentials.
1285*d5c09012SAndroid Build Coastguard Worker  //
1286*d5c09012SAndroid Build Coastguard Worker  // If any packages fail to be pushed, the build is marked FAILURE.
1287*d5c09012SAndroid Build Coastguard Worker  repeated NpmPackage npm_packages = 6;
1288*d5c09012SAndroid Build Coastguard Worker}
1289*d5c09012SAndroid Build Coastguard Worker
1290*d5c09012SAndroid Build Coastguard Worker// Start and end times for a build execution phase.
1291*d5c09012SAndroid Build Coastguard Workermessage TimeSpan {
1292*d5c09012SAndroid Build Coastguard Worker  // Start of time span.
1293*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp start_time = 1;
1294*d5c09012SAndroid Build Coastguard Worker
1295*d5c09012SAndroid Build Coastguard Worker  // End of time span.
1296*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp end_time = 2;
1297*d5c09012SAndroid Build Coastguard Worker}
1298*d5c09012SAndroid Build Coastguard Worker
1299*d5c09012SAndroid Build Coastguard Worker// Metadata for build operations.
1300*d5c09012SAndroid Build Coastguard Workermessage BuildOperationMetadata {
1301*d5c09012SAndroid Build Coastguard Worker  // The build that the operation is tracking.
1302*d5c09012SAndroid Build Coastguard Worker  Build build = 1;
1303*d5c09012SAndroid Build Coastguard Worker}
1304*d5c09012SAndroid Build Coastguard Worker
1305*d5c09012SAndroid Build Coastguard Worker// Provenance of the source. Ways to find the original source, or verify that
1306*d5c09012SAndroid Build Coastguard Worker// some source was used for this build.
1307*d5c09012SAndroid Build Coastguard Workermessage SourceProvenance {
1308*d5c09012SAndroid Build Coastguard Worker  // A copy of the build's `source.storage_source`, if exists, with any
1309*d5c09012SAndroid Build Coastguard Worker  // generations resolved.
1310*d5c09012SAndroid Build Coastguard Worker  StorageSource resolved_storage_source = 3;
1311*d5c09012SAndroid Build Coastguard Worker
1312*d5c09012SAndroid Build Coastguard Worker  // A copy of the build's `source.repo_source`, if exists, with any
1313*d5c09012SAndroid Build Coastguard Worker  // revisions resolved.
1314*d5c09012SAndroid Build Coastguard Worker  RepoSource resolved_repo_source = 6;
1315*d5c09012SAndroid Build Coastguard Worker
1316*d5c09012SAndroid Build Coastguard Worker  // A copy of the build's `source.storage_source_manifest`, if exists, with any
1317*d5c09012SAndroid Build Coastguard Worker  // revisions resolved.
1318*d5c09012SAndroid Build Coastguard Worker  // This feature is in Preview.
1319*d5c09012SAndroid Build Coastguard Worker  StorageSourceManifest resolved_storage_source_manifest = 9;
1320*d5c09012SAndroid Build Coastguard Worker
1321*d5c09012SAndroid Build Coastguard Worker  // Output only. Hash(es) of the build source, which can be used to verify that
1322*d5c09012SAndroid Build Coastguard Worker  // the original source integrity was maintained in the build. Note that
1323*d5c09012SAndroid Build Coastguard Worker  // `FileHashes` will only be populated if `BuildOptions` has requested a
1324*d5c09012SAndroid Build Coastguard Worker  // `SourceProvenanceHash`.
1325*d5c09012SAndroid Build Coastguard Worker  //
1326*d5c09012SAndroid Build Coastguard Worker  // The keys to this map are file paths used as build source and the values
1327*d5c09012SAndroid Build Coastguard Worker  // contain the hash values for those files.
1328*d5c09012SAndroid Build Coastguard Worker  //
1329*d5c09012SAndroid Build Coastguard Worker  // If the build source came in a single package such as a gzipped tarfile
1330*d5c09012SAndroid Build Coastguard Worker  // (`.tar.gz`), the `FileHash` will be for the single path to that file.
1331*d5c09012SAndroid Build Coastguard Worker  map<string, FileHashes> file_hashes = 4
1332*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1333*d5c09012SAndroid Build Coastguard Worker}
1334*d5c09012SAndroid Build Coastguard Worker
1335*d5c09012SAndroid Build Coastguard Worker// Container message for hashes of byte content of files, used in
1336*d5c09012SAndroid Build Coastguard Worker// SourceProvenance messages to verify integrity of source input to the build.
1337*d5c09012SAndroid Build Coastguard Workermessage FileHashes {
1338*d5c09012SAndroid Build Coastguard Worker  // Collection of file hashes.
1339*d5c09012SAndroid Build Coastguard Worker  repeated Hash file_hash = 1;
1340*d5c09012SAndroid Build Coastguard Worker}
1341*d5c09012SAndroid Build Coastguard Worker
1342*d5c09012SAndroid Build Coastguard Worker// Container message for hash values.
1343*d5c09012SAndroid Build Coastguard Workermessage Hash {
1344*d5c09012SAndroid Build Coastguard Worker  // Specifies the hash algorithm, if any.
1345*d5c09012SAndroid Build Coastguard Worker  enum HashType {
1346*d5c09012SAndroid Build Coastguard Worker    // No hash requested.
1347*d5c09012SAndroid Build Coastguard Worker    NONE = 0;
1348*d5c09012SAndroid Build Coastguard Worker
1349*d5c09012SAndroid Build Coastguard Worker    // Use a sha256 hash.
1350*d5c09012SAndroid Build Coastguard Worker    SHA256 = 1;
1351*d5c09012SAndroid Build Coastguard Worker
1352*d5c09012SAndroid Build Coastguard Worker    // Use a md5 hash.
1353*d5c09012SAndroid Build Coastguard Worker    MD5 = 2;
1354*d5c09012SAndroid Build Coastguard Worker
1355*d5c09012SAndroid Build Coastguard Worker    // Use a sha512 hash.
1356*d5c09012SAndroid Build Coastguard Worker    SHA512 = 4;
1357*d5c09012SAndroid Build Coastguard Worker  }
1358*d5c09012SAndroid Build Coastguard Worker
1359*d5c09012SAndroid Build Coastguard Worker  // The type of hash that was performed.
1360*d5c09012SAndroid Build Coastguard Worker  HashType type = 1;
1361*d5c09012SAndroid Build Coastguard Worker
1362*d5c09012SAndroid Build Coastguard Worker  // The hash value.
1363*d5c09012SAndroid Build Coastguard Worker  bytes value = 2;
1364*d5c09012SAndroid Build Coastguard Worker}
1365*d5c09012SAndroid Build Coastguard Worker
1366*d5c09012SAndroid Build Coastguard Worker// Secrets and secret environment variables.
1367*d5c09012SAndroid Build Coastguard Workermessage Secrets {
1368*d5c09012SAndroid Build Coastguard Worker  // Secrets in Secret Manager and associated secret environment variable.
1369*d5c09012SAndroid Build Coastguard Worker  repeated SecretManagerSecret secret_manager = 1;
1370*d5c09012SAndroid Build Coastguard Worker
1371*d5c09012SAndroid Build Coastguard Worker  // Secrets encrypted with KMS key and the associated secret environment
1372*d5c09012SAndroid Build Coastguard Worker  // variable.
1373*d5c09012SAndroid Build Coastguard Worker  repeated InlineSecret inline = 2;
1374*d5c09012SAndroid Build Coastguard Worker}
1375*d5c09012SAndroid Build Coastguard Worker
1376*d5c09012SAndroid Build Coastguard Worker// Pairs a set of secret environment variables mapped to encrypted
1377*d5c09012SAndroid Build Coastguard Worker// values with the Cloud KMS key to use to decrypt the value.
1378*d5c09012SAndroid Build Coastguard Workermessage InlineSecret {
1379*d5c09012SAndroid Build Coastguard Worker  // Resource name of Cloud KMS crypto key to decrypt the encrypted value.
1380*d5c09012SAndroid Build Coastguard Worker  // In format: projects/*/locations/*/keyRings/*/cryptoKeys/*
1381*d5c09012SAndroid Build Coastguard Worker  string kms_key_name = 1 [(google.api.resource_reference) = {
1382*d5c09012SAndroid Build Coastguard Worker    type: "cloudkms.googleapis.com/CryptoKey"
1383*d5c09012SAndroid Build Coastguard Worker  }];
1384*d5c09012SAndroid Build Coastguard Worker
1385*d5c09012SAndroid Build Coastguard Worker  // Map of environment variable name to its encrypted value.
1386*d5c09012SAndroid Build Coastguard Worker  //
1387*d5c09012SAndroid Build Coastguard Worker  // Secret environment variables must be unique across all of a build's
1388*d5c09012SAndroid Build Coastguard Worker  // secrets, and must be used by at least one build step. Values can be at most
1389*d5c09012SAndroid Build Coastguard Worker  // 64 KB in size. There can be at most 100 secret values across all of a
1390*d5c09012SAndroid Build Coastguard Worker  // build's secrets.
1391*d5c09012SAndroid Build Coastguard Worker  map<string, bytes> env_map = 2;
1392*d5c09012SAndroid Build Coastguard Worker}
1393*d5c09012SAndroid Build Coastguard Worker
1394*d5c09012SAndroid Build Coastguard Worker// Pairs a secret environment variable with a SecretVersion in Secret Manager.
1395*d5c09012SAndroid Build Coastguard Workermessage SecretManagerSecret {
1396*d5c09012SAndroid Build Coastguard Worker  // Resource name of the SecretVersion. In format:
1397*d5c09012SAndroid Build Coastguard Worker  // projects/*/secrets/*/versions/*
1398*d5c09012SAndroid Build Coastguard Worker  string version_name = 1 [(google.api.resource_reference) = {
1399*d5c09012SAndroid Build Coastguard Worker    type: "secretmanager.googleapis.com/SecretVersion"
1400*d5c09012SAndroid Build Coastguard Worker  }];
1401*d5c09012SAndroid Build Coastguard Worker
1402*d5c09012SAndroid Build Coastguard Worker  // Environment variable name to associate with the secret.
1403*d5c09012SAndroid Build Coastguard Worker  // Secret environment variables must be unique across all of a build's
1404*d5c09012SAndroid Build Coastguard Worker  // secrets, and must be used by at least one build step.
1405*d5c09012SAndroid Build Coastguard Worker  string env = 2;
1406*d5c09012SAndroid Build Coastguard Worker}
1407*d5c09012SAndroid Build Coastguard Worker
1408*d5c09012SAndroid Build Coastguard Worker// Pairs a set of secret environment variables containing encrypted
1409*d5c09012SAndroid Build Coastguard Worker// values with the Cloud KMS key to use to decrypt the value.
1410*d5c09012SAndroid Build Coastguard Worker// Note: Use `kmsKeyName` with  `available_secrets` instead of using
1411*d5c09012SAndroid Build Coastguard Worker// `kmsKeyName` with `secret`. For instructions see:
1412*d5c09012SAndroid Build Coastguard Worker// https://cloud.google.com/cloud-build/docs/securing-builds/use-encrypted-credentials.
1413*d5c09012SAndroid Build Coastguard Workermessage Secret {
1414*d5c09012SAndroid Build Coastguard Worker  // Cloud KMS key name to use to decrypt these envs.
1415*d5c09012SAndroid Build Coastguard Worker  string kms_key_name = 1;
1416*d5c09012SAndroid Build Coastguard Worker
1417*d5c09012SAndroid Build Coastguard Worker  // Map of environment variable name to its encrypted value.
1418*d5c09012SAndroid Build Coastguard Worker  //
1419*d5c09012SAndroid Build Coastguard Worker  // Secret environment variables must be unique across all of a build's
1420*d5c09012SAndroid Build Coastguard Worker  // secrets, and must be used by at least one build step. Values can be at most
1421*d5c09012SAndroid Build Coastguard Worker  // 64 KB in size. There can be at most 100 secret values across all of a
1422*d5c09012SAndroid Build Coastguard Worker  // build's secrets.
1423*d5c09012SAndroid Build Coastguard Worker  map<string, bytes> secret_env = 3;
1424*d5c09012SAndroid Build Coastguard Worker}
1425*d5c09012SAndroid Build Coastguard Worker
1426*d5c09012SAndroid Build Coastguard Worker// Request to create a new build.
1427*d5c09012SAndroid Build Coastguard Workermessage CreateBuildRequest {
1428*d5c09012SAndroid Build Coastguard Worker  // The parent resource where this build will be created.
1429*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project}/locations/{location}`
1430*d5c09012SAndroid Build Coastguard Worker  string parent = 4 [(google.api.resource_reference) = {
1431*d5c09012SAndroid Build Coastguard Worker    child_type: "cloudbuild.googleapis.com/Build"
1432*d5c09012SAndroid Build Coastguard Worker  }];
1433*d5c09012SAndroid Build Coastguard Worker
1434*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the project.
1435*d5c09012SAndroid Build Coastguard Worker  string project_id = 1 [(google.api.field_behavior) = REQUIRED];
1436*d5c09012SAndroid Build Coastguard Worker
1437*d5c09012SAndroid Build Coastguard Worker  // Required. Build resource to create.
1438*d5c09012SAndroid Build Coastguard Worker  Build build = 2 [(google.api.field_behavior) = REQUIRED];
1439*d5c09012SAndroid Build Coastguard Worker}
1440*d5c09012SAndroid Build Coastguard Worker
1441*d5c09012SAndroid Build Coastguard Worker// Request to get a build.
1442*d5c09012SAndroid Build Coastguard Workermessage GetBuildRequest {
1443*d5c09012SAndroid Build Coastguard Worker  // The name of the `Build` to retrieve.
1444*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project}/locations/{location}/builds/{build}`
1445*d5c09012SAndroid Build Coastguard Worker  string name = 4 [(google.api.resource_reference) = {
1446*d5c09012SAndroid Build Coastguard Worker    type: "cloudbuild.googleapis.com/Build"
1447*d5c09012SAndroid Build Coastguard Worker  }];
1448*d5c09012SAndroid Build Coastguard Worker
1449*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the project.
1450*d5c09012SAndroid Build Coastguard Worker  string project_id = 1 [(google.api.field_behavior) = REQUIRED];
1451*d5c09012SAndroid Build Coastguard Worker
1452*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the build.
1453*d5c09012SAndroid Build Coastguard Worker  string id = 2 [(google.api.field_behavior) = REQUIRED];
1454*d5c09012SAndroid Build Coastguard Worker}
1455*d5c09012SAndroid Build Coastguard Worker
1456*d5c09012SAndroid Build Coastguard Worker// Request to list builds.
1457*d5c09012SAndroid Build Coastguard Workermessage ListBuildsRequest {
1458*d5c09012SAndroid Build Coastguard Worker  // The parent of the collection of `Builds`.
1459*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project}/locations/{location}`
1460*d5c09012SAndroid Build Coastguard Worker  string parent = 9 [(google.api.resource_reference) = {
1461*d5c09012SAndroid Build Coastguard Worker    child_type: "cloudbuild.googleapis.com/Build"
1462*d5c09012SAndroid Build Coastguard Worker  }];
1463*d5c09012SAndroid Build Coastguard Worker
1464*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the project.
1465*d5c09012SAndroid Build Coastguard Worker  string project_id = 1 [(google.api.field_behavior) = REQUIRED];
1466*d5c09012SAndroid Build Coastguard Worker
1467*d5c09012SAndroid Build Coastguard Worker  // Number of results to return in the list.
1468*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
1469*d5c09012SAndroid Build Coastguard Worker
1470*d5c09012SAndroid Build Coastguard Worker  // The page token for the next page of Builds.
1471*d5c09012SAndroid Build Coastguard Worker  //
1472*d5c09012SAndroid Build Coastguard Worker  // If unspecified, the first page of results is returned.
1473*d5c09012SAndroid Build Coastguard Worker  //
1474*d5c09012SAndroid Build Coastguard Worker  // If the token is rejected for any reason, INVALID_ARGUMENT will be thrown.
1475*d5c09012SAndroid Build Coastguard Worker  // In this case, the token should be discarded, and pagination should be
1476*d5c09012SAndroid Build Coastguard Worker  // restarted from the first page of results.
1477*d5c09012SAndroid Build Coastguard Worker  //
1478*d5c09012SAndroid Build Coastguard Worker  // See https://google.aip.dev/158 for more.
1479*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
1480*d5c09012SAndroid Build Coastguard Worker
1481*d5c09012SAndroid Build Coastguard Worker  // The raw filter text to constrain the results.
1482*d5c09012SAndroid Build Coastguard Worker  string filter = 8;
1483*d5c09012SAndroid Build Coastguard Worker}
1484*d5c09012SAndroid Build Coastguard Worker
1485*d5c09012SAndroid Build Coastguard Worker// Response including listed builds.
1486*d5c09012SAndroid Build Coastguard Workermessage ListBuildsResponse {
1487*d5c09012SAndroid Build Coastguard Worker  // Builds will be sorted by `create_time`, descending.
1488*d5c09012SAndroid Build Coastguard Worker  repeated Build builds = 1;
1489*d5c09012SAndroid Build Coastguard Worker
1490*d5c09012SAndroid Build Coastguard Worker  // Token to receive the next page of results.
1491*d5c09012SAndroid Build Coastguard Worker  // This will be absent if the end of the response list has been reached.
1492*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
1493*d5c09012SAndroid Build Coastguard Worker}
1494*d5c09012SAndroid Build Coastguard Worker
1495*d5c09012SAndroid Build Coastguard Worker// Request to cancel an ongoing build.
1496*d5c09012SAndroid Build Coastguard Workermessage CancelBuildRequest {
1497*d5c09012SAndroid Build Coastguard Worker  // The name of the `Build` to cancel.
1498*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project}/locations/{location}/builds/{build}`
1499*d5c09012SAndroid Build Coastguard Worker  string name = 4 [(google.api.resource_reference) = {
1500*d5c09012SAndroid Build Coastguard Worker    type: "cloudbuild.googleapis.com/Build"
1501*d5c09012SAndroid Build Coastguard Worker  }];
1502*d5c09012SAndroid Build Coastguard Worker
1503*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the project.
1504*d5c09012SAndroid Build Coastguard Worker  string project_id = 1 [(google.api.field_behavior) = REQUIRED];
1505*d5c09012SAndroid Build Coastguard Worker
1506*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the build.
1507*d5c09012SAndroid Build Coastguard Worker  string id = 2 [(google.api.field_behavior) = REQUIRED];
1508*d5c09012SAndroid Build Coastguard Worker}
1509*d5c09012SAndroid Build Coastguard Worker
1510*d5c09012SAndroid Build Coastguard Worker// Request to approve or reject a pending build.
1511*d5c09012SAndroid Build Coastguard Workermessage ApproveBuildRequest {
1512*d5c09012SAndroid Build Coastguard Worker  // Required. Name of the target build.
1513*d5c09012SAndroid Build Coastguard Worker  // For example: "projects/{$project_id}/builds/{$build_id}"
1514*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = REQUIRED];
1515*d5c09012SAndroid Build Coastguard Worker
1516*d5c09012SAndroid Build Coastguard Worker  // Approval decision and metadata.
1517*d5c09012SAndroid Build Coastguard Worker  ApprovalResult approval_result = 2;
1518*d5c09012SAndroid Build Coastguard Worker}
1519*d5c09012SAndroid Build Coastguard Worker
1520*d5c09012SAndroid Build Coastguard Worker// BuildApproval describes a build's approval configuration, state, and
1521*d5c09012SAndroid Build Coastguard Worker// result.
1522*d5c09012SAndroid Build Coastguard Workermessage BuildApproval {
1523*d5c09012SAndroid Build Coastguard Worker  // Specifies the current state of a build's approval.
1524*d5c09012SAndroid Build Coastguard Worker  enum State {
1525*d5c09012SAndroid Build Coastguard Worker    // Default enum type. This should not be used.
1526*d5c09012SAndroid Build Coastguard Worker    STATE_UNSPECIFIED = 0;
1527*d5c09012SAndroid Build Coastguard Worker
1528*d5c09012SAndroid Build Coastguard Worker    // Build approval is pending.
1529*d5c09012SAndroid Build Coastguard Worker    PENDING = 1;
1530*d5c09012SAndroid Build Coastguard Worker
1531*d5c09012SAndroid Build Coastguard Worker    // Build approval has been approved.
1532*d5c09012SAndroid Build Coastguard Worker    APPROVED = 2;
1533*d5c09012SAndroid Build Coastguard Worker
1534*d5c09012SAndroid Build Coastguard Worker    // Build approval has been rejected.
1535*d5c09012SAndroid Build Coastguard Worker    REJECTED = 3;
1536*d5c09012SAndroid Build Coastguard Worker
1537*d5c09012SAndroid Build Coastguard Worker    // Build was cancelled while it was still pending approval.
1538*d5c09012SAndroid Build Coastguard Worker    CANCELLED = 5;
1539*d5c09012SAndroid Build Coastguard Worker  }
1540*d5c09012SAndroid Build Coastguard Worker
1541*d5c09012SAndroid Build Coastguard Worker  // Output only. The state of this build's approval.
1542*d5c09012SAndroid Build Coastguard Worker  State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
1543*d5c09012SAndroid Build Coastguard Worker
1544*d5c09012SAndroid Build Coastguard Worker  // Output only. Configuration for manual approval of this build.
1545*d5c09012SAndroid Build Coastguard Worker  ApprovalConfig config = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
1546*d5c09012SAndroid Build Coastguard Worker
1547*d5c09012SAndroid Build Coastguard Worker  // Output only. Result of manual approval for this Build.
1548*d5c09012SAndroid Build Coastguard Worker  ApprovalResult result = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
1549*d5c09012SAndroid Build Coastguard Worker}
1550*d5c09012SAndroid Build Coastguard Worker
1551*d5c09012SAndroid Build Coastguard Worker// ApprovalConfig describes configuration for manual approval of a build.
1552*d5c09012SAndroid Build Coastguard Workermessage ApprovalConfig {
1553*d5c09012SAndroid Build Coastguard Worker  // Whether or not approval is needed. If this is set on a build, it will
1554*d5c09012SAndroid Build Coastguard Worker  // become pending when created, and will need to be explicitly approved
1555*d5c09012SAndroid Build Coastguard Worker  // to start.
1556*d5c09012SAndroid Build Coastguard Worker  bool approval_required = 1;
1557*d5c09012SAndroid Build Coastguard Worker}
1558*d5c09012SAndroid Build Coastguard Worker
1559*d5c09012SAndroid Build Coastguard Worker// ApprovalResult describes the decision and associated metadata of a manual
1560*d5c09012SAndroid Build Coastguard Worker// approval of a build.
1561*d5c09012SAndroid Build Coastguard Workermessage ApprovalResult {
1562*d5c09012SAndroid Build Coastguard Worker  // Specifies whether or not this manual approval result is to approve
1563*d5c09012SAndroid Build Coastguard Worker  // or reject a build.
1564*d5c09012SAndroid Build Coastguard Worker  enum Decision {
1565*d5c09012SAndroid Build Coastguard Worker    // Default enum type. This should not be used.
1566*d5c09012SAndroid Build Coastguard Worker    DECISION_UNSPECIFIED = 0;
1567*d5c09012SAndroid Build Coastguard Worker
1568*d5c09012SAndroid Build Coastguard Worker    // Build is approved.
1569*d5c09012SAndroid Build Coastguard Worker    APPROVED = 1;
1570*d5c09012SAndroid Build Coastguard Worker
1571*d5c09012SAndroid Build Coastguard Worker    // Build is rejected.
1572*d5c09012SAndroid Build Coastguard Worker    REJECTED = 2;
1573*d5c09012SAndroid Build Coastguard Worker  }
1574*d5c09012SAndroid Build Coastguard Worker
1575*d5c09012SAndroid Build Coastguard Worker  // Output only. Email of the user that called the ApproveBuild API to
1576*d5c09012SAndroid Build Coastguard Worker  // approve or reject a build at the time that the API was called.
1577*d5c09012SAndroid Build Coastguard Worker  string approver_account = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
1578*d5c09012SAndroid Build Coastguard Worker
1579*d5c09012SAndroid Build Coastguard Worker  // Output only. The time when the approval decision was made.
1580*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp approval_time = 3
1581*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1582*d5c09012SAndroid Build Coastguard Worker
1583*d5c09012SAndroid Build Coastguard Worker  // Required. The decision of this manual approval.
1584*d5c09012SAndroid Build Coastguard Worker  Decision decision = 4 [(google.api.field_behavior) = REQUIRED];
1585*d5c09012SAndroid Build Coastguard Worker
1586*d5c09012SAndroid Build Coastguard Worker  // Optional. An optional comment for this manual approval result.
1587*d5c09012SAndroid Build Coastguard Worker  string comment = 5 [(google.api.field_behavior) = OPTIONAL];
1588*d5c09012SAndroid Build Coastguard Worker
1589*d5c09012SAndroid Build Coastguard Worker  // Optional. An optional URL tied to this manual approval result. This field
1590*d5c09012SAndroid Build Coastguard Worker  // is essentially the same as comment, except that it will be rendered by the
1591*d5c09012SAndroid Build Coastguard Worker  // UI differently. An example use case is a link to an external job that
1592*d5c09012SAndroid Build Coastguard Worker  // approved this Build.
1593*d5c09012SAndroid Build Coastguard Worker  string url = 6 [(google.api.field_behavior) = OPTIONAL];
1594*d5c09012SAndroid Build Coastguard Worker}
1595*d5c09012SAndroid Build Coastguard Worker
1596*d5c09012SAndroid Build Coastguard Worker// GitRepoSource describes a repo and ref of a code repository.
1597*d5c09012SAndroid Build Coastguard Workermessage GitRepoSource {
1598*d5c09012SAndroid Build Coastguard Worker  // The URI of the repo (e.g. https://github.com/user/repo.git).
1599*d5c09012SAndroid Build Coastguard Worker  // Either `uri` or `repository` can be specified and is required.
1600*d5c09012SAndroid Build Coastguard Worker  string uri = 1;
1601*d5c09012SAndroid Build Coastguard Worker
1602*d5c09012SAndroid Build Coastguard Worker  // The source of the SCM repo.
1603*d5c09012SAndroid Build Coastguard Worker  oneof source {
1604*d5c09012SAndroid Build Coastguard Worker    // The connected repository resource name, in the format
1605*d5c09012SAndroid Build Coastguard Worker    // `projects/*/locations/*/connections/*/repositories/*`. Either `uri` or
1606*d5c09012SAndroid Build Coastguard Worker    // `repository` can be specified and is required.
1607*d5c09012SAndroid Build Coastguard Worker    string repository = 6 [(google.api.resource_reference) = {
1608*d5c09012SAndroid Build Coastguard Worker      type: "cloudbuild.googleapis.com/Repository"
1609*d5c09012SAndroid Build Coastguard Worker    }];
1610*d5c09012SAndroid Build Coastguard Worker  }
1611*d5c09012SAndroid Build Coastguard Worker
1612*d5c09012SAndroid Build Coastguard Worker  // The branch or tag to use. Must start with "refs/" (required).
1613*d5c09012SAndroid Build Coastguard Worker  string ref = 2;
1614*d5c09012SAndroid Build Coastguard Worker
1615*d5c09012SAndroid Build Coastguard Worker  // See RepoType below.
1616*d5c09012SAndroid Build Coastguard Worker  GitFileSource.RepoType repo_type = 3;
1617*d5c09012SAndroid Build Coastguard Worker
1618*d5c09012SAndroid Build Coastguard Worker  // The resource name of the enterprise config that should be applied
1619*d5c09012SAndroid Build Coastguard Worker  // to this source.
1620*d5c09012SAndroid Build Coastguard Worker  oneof enterprise_config {
1621*d5c09012SAndroid Build Coastguard Worker    // The full resource name of the github enterprise config.
1622*d5c09012SAndroid Build Coastguard Worker    // Format:
1623*d5c09012SAndroid Build Coastguard Worker    // `projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}`.
1624*d5c09012SAndroid Build Coastguard Worker    // `projects/{project}/githubEnterpriseConfigs/{id}`.
1625*d5c09012SAndroid Build Coastguard Worker    string github_enterprise_config = 4 [(google.api.resource_reference) = {
1626*d5c09012SAndroid Build Coastguard Worker      type: "cloudbuild.googleapis.com/GithubEnterpriseConfig"
1627*d5c09012SAndroid Build Coastguard Worker    }];
1628*d5c09012SAndroid Build Coastguard Worker  }
1629*d5c09012SAndroid Build Coastguard Worker}
1630*d5c09012SAndroid Build Coastguard Worker
1631*d5c09012SAndroid Build Coastguard Worker// GitFileSource describes a file within a (possibly remote) code repository.
1632*d5c09012SAndroid Build Coastguard Workermessage GitFileSource {
1633*d5c09012SAndroid Build Coastguard Worker  // The type of the repo, since it may not be explicit from the `repo` field
1634*d5c09012SAndroid Build Coastguard Worker  // (e.g from a URL).
1635*d5c09012SAndroid Build Coastguard Worker  enum RepoType {
1636*d5c09012SAndroid Build Coastguard Worker    // The default, unknown repo type. Don't use it, instead use one of
1637*d5c09012SAndroid Build Coastguard Worker    // the other repo types.
1638*d5c09012SAndroid Build Coastguard Worker    UNKNOWN = 0;
1639*d5c09012SAndroid Build Coastguard Worker
1640*d5c09012SAndroid Build Coastguard Worker    // A Google Cloud Source Repositories-hosted repo.
1641*d5c09012SAndroid Build Coastguard Worker    CLOUD_SOURCE_REPOSITORIES = 1;
1642*d5c09012SAndroid Build Coastguard Worker
1643*d5c09012SAndroid Build Coastguard Worker    // A GitHub-hosted repo not necessarily on "github.com" (i.e. GitHub
1644*d5c09012SAndroid Build Coastguard Worker    // Enterprise).
1645*d5c09012SAndroid Build Coastguard Worker    GITHUB = 2;
1646*d5c09012SAndroid Build Coastguard Worker
1647*d5c09012SAndroid Build Coastguard Worker    // A Bitbucket Server-hosted repo.
1648*d5c09012SAndroid Build Coastguard Worker    BITBUCKET_SERVER = 3;
1649*d5c09012SAndroid Build Coastguard Worker
1650*d5c09012SAndroid Build Coastguard Worker    // A GitLab-hosted repo.
1651*d5c09012SAndroid Build Coastguard Worker    GITLAB = 4;
1652*d5c09012SAndroid Build Coastguard Worker  }
1653*d5c09012SAndroid Build Coastguard Worker
1654*d5c09012SAndroid Build Coastguard Worker  // The path of the file, with the repo root as the root of the path.
1655*d5c09012SAndroid Build Coastguard Worker  string path = 1;
1656*d5c09012SAndroid Build Coastguard Worker
1657*d5c09012SAndroid Build Coastguard Worker  // The URI of the repo.
1658*d5c09012SAndroid Build Coastguard Worker  // Either uri or repository can be specified.
1659*d5c09012SAndroid Build Coastguard Worker  // If unspecified, the repo from which the trigger invocation originated is
1660*d5c09012SAndroid Build Coastguard Worker  // assumed to be the repo from which to read the specified path.
1661*d5c09012SAndroid Build Coastguard Worker  string uri = 2;
1662*d5c09012SAndroid Build Coastguard Worker
1663*d5c09012SAndroid Build Coastguard Worker  // The source of the SCM repo.
1664*d5c09012SAndroid Build Coastguard Worker  oneof source {
1665*d5c09012SAndroid Build Coastguard Worker    // The fully qualified resource name of the Repos API repository.
1666*d5c09012SAndroid Build Coastguard Worker    // Either URI or repository can be specified.
1667*d5c09012SAndroid Build Coastguard Worker    // If unspecified, the repo from which the trigger invocation originated is
1668*d5c09012SAndroid Build Coastguard Worker    // assumed to be the repo from which to read the specified path.
1669*d5c09012SAndroid Build Coastguard Worker    string repository = 7 [(google.api.resource_reference) = {
1670*d5c09012SAndroid Build Coastguard Worker      type: "cloudbuild.googleapis.com/Repository"
1671*d5c09012SAndroid Build Coastguard Worker    }];
1672*d5c09012SAndroid Build Coastguard Worker  }
1673*d5c09012SAndroid Build Coastguard Worker
1674*d5c09012SAndroid Build Coastguard Worker  // See RepoType above.
1675*d5c09012SAndroid Build Coastguard Worker  RepoType repo_type = 3;
1676*d5c09012SAndroid Build Coastguard Worker
1677*d5c09012SAndroid Build Coastguard Worker  // The branch, tag, arbitrary ref, or SHA version of the repo to use when
1678*d5c09012SAndroid Build Coastguard Worker  // resolving the filename (optional).
1679*d5c09012SAndroid Build Coastguard Worker  // This field respects the same syntax/resolution as described here:
1680*d5c09012SAndroid Build Coastguard Worker  // https://git-scm.com/docs/gitrevisions
1681*d5c09012SAndroid Build Coastguard Worker  // If unspecified, the revision from which the trigger invocation originated
1682*d5c09012SAndroid Build Coastguard Worker  // is assumed to be the revision from which to read the specified path.
1683*d5c09012SAndroid Build Coastguard Worker  string revision = 4;
1684*d5c09012SAndroid Build Coastguard Worker
1685*d5c09012SAndroid Build Coastguard Worker  // The resource name of the enterprise config that should be applied
1686*d5c09012SAndroid Build Coastguard Worker  // to this source.
1687*d5c09012SAndroid Build Coastguard Worker  oneof enterprise_config {
1688*d5c09012SAndroid Build Coastguard Worker    // The full resource name of the github enterprise config.
1689*d5c09012SAndroid Build Coastguard Worker    // Format:
1690*d5c09012SAndroid Build Coastguard Worker    // `projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}`.
1691*d5c09012SAndroid Build Coastguard Worker    // `projects/{project}/githubEnterpriseConfigs/{id}`.
1692*d5c09012SAndroid Build Coastguard Worker    string github_enterprise_config = 5 [(google.api.resource_reference) = {
1693*d5c09012SAndroid Build Coastguard Worker      type: "cloudbuild.googleapis.com/GithubEnterpriseConfig"
1694*d5c09012SAndroid Build Coastguard Worker    }];
1695*d5c09012SAndroid Build Coastguard Worker  }
1696*d5c09012SAndroid Build Coastguard Worker}
1697*d5c09012SAndroid Build Coastguard Worker
1698*d5c09012SAndroid Build Coastguard Worker// Configuration for an automated build in response to source repository
1699*d5c09012SAndroid Build Coastguard Worker// changes.
1700*d5c09012SAndroid Build Coastguard Workermessage BuildTrigger {
1701*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
1702*d5c09012SAndroid Build Coastguard Worker    type: "cloudbuild.googleapis.com/BuildTrigger"
1703*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/triggers/{trigger}"
1704*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/triggers/{trigger}"
1705*d5c09012SAndroid Build Coastguard Worker    plural: "triggers"
1706*d5c09012SAndroid Build Coastguard Worker    singular: "trigger"
1707*d5c09012SAndroid Build Coastguard Worker  };
1708*d5c09012SAndroid Build Coastguard Worker
1709*d5c09012SAndroid Build Coastguard Worker  // The `Trigger` name with format:
1710*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location}/triggers/{trigger}`, where
1711*d5c09012SAndroid Build Coastguard Worker  // {trigger} is a unique identifier generated by the service.
1712*d5c09012SAndroid Build Coastguard Worker  string resource_name = 34;
1713*d5c09012SAndroid Build Coastguard Worker
1714*d5c09012SAndroid Build Coastguard Worker  // Output only. Unique identifier of the trigger.
1715*d5c09012SAndroid Build Coastguard Worker  string id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
1716*d5c09012SAndroid Build Coastguard Worker
1717*d5c09012SAndroid Build Coastguard Worker  // Human-readable description of this trigger.
1718*d5c09012SAndroid Build Coastguard Worker  string description = 10;
1719*d5c09012SAndroid Build Coastguard Worker
1720*d5c09012SAndroid Build Coastguard Worker  // User-assigned name of the trigger. Must be unique within the project.
1721*d5c09012SAndroid Build Coastguard Worker  // Trigger names must meet the following requirements:
1722*d5c09012SAndroid Build Coastguard Worker  //
1723*d5c09012SAndroid Build Coastguard Worker  // + They must contain only alphanumeric characters and dashes.
1724*d5c09012SAndroid Build Coastguard Worker  // + They can be 1-64 characters long.
1725*d5c09012SAndroid Build Coastguard Worker  // + They must begin and end with an alphanumeric character.
1726*d5c09012SAndroid Build Coastguard Worker  string name = 21;
1727*d5c09012SAndroid Build Coastguard Worker
1728*d5c09012SAndroid Build Coastguard Worker  // Tags for annotation of a `BuildTrigger`
1729*d5c09012SAndroid Build Coastguard Worker  repeated string tags = 19;
1730*d5c09012SAndroid Build Coastguard Worker
1731*d5c09012SAndroid Build Coastguard Worker  // Template describing the types of source changes to trigger a build.
1732*d5c09012SAndroid Build Coastguard Worker  //
1733*d5c09012SAndroid Build Coastguard Worker  // Branch and tag names in trigger templates are interpreted as regular
1734*d5c09012SAndroid Build Coastguard Worker  // expressions. Any branch or tag change that matches that regular expression
1735*d5c09012SAndroid Build Coastguard Worker  // will trigger a build.
1736*d5c09012SAndroid Build Coastguard Worker  //
1737*d5c09012SAndroid Build Coastguard Worker  // Mutually exclusive with `github`.
1738*d5c09012SAndroid Build Coastguard Worker  RepoSource trigger_template = 7;
1739*d5c09012SAndroid Build Coastguard Worker
1740*d5c09012SAndroid Build Coastguard Worker  // GitHubEventsConfig describes the configuration of a trigger that creates
1741*d5c09012SAndroid Build Coastguard Worker  // a build whenever a GitHub event is received.
1742*d5c09012SAndroid Build Coastguard Worker  //
1743*d5c09012SAndroid Build Coastguard Worker  // Mutually exclusive with `trigger_template`.
1744*d5c09012SAndroid Build Coastguard Worker  GitHubEventsConfig github = 13;
1745*d5c09012SAndroid Build Coastguard Worker
1746*d5c09012SAndroid Build Coastguard Worker  // PubsubConfig describes the configuration of a trigger that
1747*d5c09012SAndroid Build Coastguard Worker  // creates a build whenever a Pub/Sub message is published.
1748*d5c09012SAndroid Build Coastguard Worker  PubsubConfig pubsub_config = 29;
1749*d5c09012SAndroid Build Coastguard Worker
1750*d5c09012SAndroid Build Coastguard Worker  // WebhookConfig describes the configuration of a trigger that
1751*d5c09012SAndroid Build Coastguard Worker  // creates a build whenever a webhook is sent to a trigger's webhook URL.
1752*d5c09012SAndroid Build Coastguard Worker  WebhookConfig webhook_config = 31;
1753*d5c09012SAndroid Build Coastguard Worker
1754*d5c09012SAndroid Build Coastguard Worker  // Template describing the Build request to make when the trigger is matched.
1755*d5c09012SAndroid Build Coastguard Worker  // At least one of the template fields must be provided.
1756*d5c09012SAndroid Build Coastguard Worker  oneof build_template {
1757*d5c09012SAndroid Build Coastguard Worker    // Autodetect build configuration.  The following precedence is used (case
1758*d5c09012SAndroid Build Coastguard Worker    // insensitive):
1759*d5c09012SAndroid Build Coastguard Worker    //
1760*d5c09012SAndroid Build Coastguard Worker    // 1. cloudbuild.yaml
1761*d5c09012SAndroid Build Coastguard Worker    // 2. cloudbuild.yml
1762*d5c09012SAndroid Build Coastguard Worker    // 3. cloudbuild.json
1763*d5c09012SAndroid Build Coastguard Worker    // 4. Dockerfile
1764*d5c09012SAndroid Build Coastguard Worker    //
1765*d5c09012SAndroid Build Coastguard Worker    // Currently only available for GitHub App Triggers.
1766*d5c09012SAndroid Build Coastguard Worker    bool autodetect = 18;
1767*d5c09012SAndroid Build Coastguard Worker
1768*d5c09012SAndroid Build Coastguard Worker    // Contents of the build template.
1769*d5c09012SAndroid Build Coastguard Worker    Build build = 4;
1770*d5c09012SAndroid Build Coastguard Worker
1771*d5c09012SAndroid Build Coastguard Worker    // Path, from the source root, to the build configuration file
1772*d5c09012SAndroid Build Coastguard Worker    // (i.e. cloudbuild.yaml).
1773*d5c09012SAndroid Build Coastguard Worker    string filename = 8;
1774*d5c09012SAndroid Build Coastguard Worker
1775*d5c09012SAndroid Build Coastguard Worker    // The file source describing the local or remote Build template.
1776*d5c09012SAndroid Build Coastguard Worker    GitFileSource git_file_source = 24;
1777*d5c09012SAndroid Build Coastguard Worker  }
1778*d5c09012SAndroid Build Coastguard Worker
1779*d5c09012SAndroid Build Coastguard Worker  // Output only. Time when the trigger was created.
1780*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 5
1781*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1782*d5c09012SAndroid Build Coastguard Worker
1783*d5c09012SAndroid Build Coastguard Worker  // If true, the trigger will never automatically execute a build.
1784*d5c09012SAndroid Build Coastguard Worker  bool disabled = 9;
1785*d5c09012SAndroid Build Coastguard Worker
1786*d5c09012SAndroid Build Coastguard Worker  // Substitutions for Build resource. The keys must match the following
1787*d5c09012SAndroid Build Coastguard Worker  // regular expression: `^_[A-Z0-9_]+$`.
1788*d5c09012SAndroid Build Coastguard Worker  map<string, string> substitutions = 11;
1789*d5c09012SAndroid Build Coastguard Worker
1790*d5c09012SAndroid Build Coastguard Worker  // ignored_files and included_files are file glob matches using
1791*d5c09012SAndroid Build Coastguard Worker  // https://golang.org/pkg/path/filepath/#Match extended with support for "**".
1792*d5c09012SAndroid Build Coastguard Worker  //
1793*d5c09012SAndroid Build Coastguard Worker  // If ignored_files and changed files are both empty, then they are
1794*d5c09012SAndroid Build Coastguard Worker  // not used to determine whether or not to trigger a build.
1795*d5c09012SAndroid Build Coastguard Worker  //
1796*d5c09012SAndroid Build Coastguard Worker  // If ignored_files is not empty, then we ignore any files that match
1797*d5c09012SAndroid Build Coastguard Worker  // any of the ignored_file globs. If the change has no files that are
1798*d5c09012SAndroid Build Coastguard Worker  // outside of the ignored_files globs, then we do not trigger a build.
1799*d5c09012SAndroid Build Coastguard Worker  repeated string ignored_files = 15;
1800*d5c09012SAndroid Build Coastguard Worker
1801*d5c09012SAndroid Build Coastguard Worker  // If any of the files altered in the commit pass the ignored_files
1802*d5c09012SAndroid Build Coastguard Worker  // filter and included_files is empty, then as far as this filter is
1803*d5c09012SAndroid Build Coastguard Worker  // concerned, we should trigger the build.
1804*d5c09012SAndroid Build Coastguard Worker  //
1805*d5c09012SAndroid Build Coastguard Worker  // If any of the files altered in the commit pass the ignored_files
1806*d5c09012SAndroid Build Coastguard Worker  // filter and included_files is not empty, then we make sure that at
1807*d5c09012SAndroid Build Coastguard Worker  // least one of those files matches a included_files glob. If not,
1808*d5c09012SAndroid Build Coastguard Worker  // then we do not trigger a build.
1809*d5c09012SAndroid Build Coastguard Worker  repeated string included_files = 16;
1810*d5c09012SAndroid Build Coastguard Worker
1811*d5c09012SAndroid Build Coastguard Worker  // Optional. A Common Expression Language string.
1812*d5c09012SAndroid Build Coastguard Worker  string filter = 30 [(google.api.field_behavior) = OPTIONAL];
1813*d5c09012SAndroid Build Coastguard Worker
1814*d5c09012SAndroid Build Coastguard Worker  // The repo and ref of the repository from which to build. This field
1815*d5c09012SAndroid Build Coastguard Worker  // is used only for those triggers that do not respond to SCM events.
1816*d5c09012SAndroid Build Coastguard Worker  // Triggers that respond to such events build source at whatever commit
1817*d5c09012SAndroid Build Coastguard Worker  // caused the event.
1818*d5c09012SAndroid Build Coastguard Worker  // This field is currently only used by Webhook, Pub/Sub, Manual, and Cron
1819*d5c09012SAndroid Build Coastguard Worker  // triggers.
1820*d5c09012SAndroid Build Coastguard Worker  GitRepoSource source_to_build = 26;
1821*d5c09012SAndroid Build Coastguard Worker
1822*d5c09012SAndroid Build Coastguard Worker  // The service account used for all user-controlled operations including
1823*d5c09012SAndroid Build Coastguard Worker  // UpdateBuildTrigger, RunBuildTrigger, CreateBuild, and CancelBuild.
1824*d5c09012SAndroid Build Coastguard Worker  // If no service account is set, then the standard Cloud Build service account
1825*d5c09012SAndroid Build Coastguard Worker  // ([PROJECT_NUM]@system.gserviceaccount.com) will be used instead.
1826*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT_ID_OR_EMAIL}`
1827*d5c09012SAndroid Build Coastguard Worker  string service_account = 33 [(google.api.resource_reference) = {
1828*d5c09012SAndroid Build Coastguard Worker    type: "iam.googleapis.com/ServiceAccount"
1829*d5c09012SAndroid Build Coastguard Worker  }];
1830*d5c09012SAndroid Build Coastguard Worker
1831*d5c09012SAndroid Build Coastguard Worker  // The configuration of a trigger that creates a build whenever an event from
1832*d5c09012SAndroid Build Coastguard Worker  // Repo API is received.
1833*d5c09012SAndroid Build Coastguard Worker  RepositoryEventConfig repository_event_config = 39;
1834*d5c09012SAndroid Build Coastguard Worker}
1835*d5c09012SAndroid Build Coastguard Worker
1836*d5c09012SAndroid Build Coastguard Worker// The configuration of a trigger that creates a build whenever an event from
1837*d5c09012SAndroid Build Coastguard Worker// Repo API is received.
1838*d5c09012SAndroid Build Coastguard Workermessage RepositoryEventConfig {
1839*d5c09012SAndroid Build Coastguard Worker  // All possible SCM repo types from Repo API.
1840*d5c09012SAndroid Build Coastguard Worker  enum RepositoryType {
1841*d5c09012SAndroid Build Coastguard Worker    // If unspecified, RepositoryType defaults to GITHUB.
1842*d5c09012SAndroid Build Coastguard Worker    REPOSITORY_TYPE_UNSPECIFIED = 0;
1843*d5c09012SAndroid Build Coastguard Worker
1844*d5c09012SAndroid Build Coastguard Worker    // The SCM repo is GITHUB.
1845*d5c09012SAndroid Build Coastguard Worker    GITHUB = 1;
1846*d5c09012SAndroid Build Coastguard Worker
1847*d5c09012SAndroid Build Coastguard Worker    // The SCM repo is GITHUB Enterprise.
1848*d5c09012SAndroid Build Coastguard Worker    GITHUB_ENTERPRISE = 2;
1849*d5c09012SAndroid Build Coastguard Worker
1850*d5c09012SAndroid Build Coastguard Worker    // The SCM repo is GITLAB Enterprise.
1851*d5c09012SAndroid Build Coastguard Worker    GITLAB_ENTERPRISE = 3;
1852*d5c09012SAndroid Build Coastguard Worker  }
1853*d5c09012SAndroid Build Coastguard Worker
1854*d5c09012SAndroid Build Coastguard Worker  // The resource name of the Repo API resource.
1855*d5c09012SAndroid Build Coastguard Worker  string repository = 1 [(google.api.resource_reference) = {
1856*d5c09012SAndroid Build Coastguard Worker    type: "cloudbuild.googleapis.com/Repository"
1857*d5c09012SAndroid Build Coastguard Worker  }];
1858*d5c09012SAndroid Build Coastguard Worker
1859*d5c09012SAndroid Build Coastguard Worker  // Output only. The type of the SCM vendor the repository points to.
1860*d5c09012SAndroid Build Coastguard Worker  RepositoryType repository_type = 2
1861*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
1862*d5c09012SAndroid Build Coastguard Worker
1863*d5c09012SAndroid Build Coastguard Worker  // The types of filter to trigger a build.
1864*d5c09012SAndroid Build Coastguard Worker  oneof filter {
1865*d5c09012SAndroid Build Coastguard Worker    // Filter to match changes in pull requests.
1866*d5c09012SAndroid Build Coastguard Worker    PullRequestFilter pull_request = 3;
1867*d5c09012SAndroid Build Coastguard Worker
1868*d5c09012SAndroid Build Coastguard Worker    // Filter to match changes in refs like branches, tags.
1869*d5c09012SAndroid Build Coastguard Worker    PushFilter push = 4;
1870*d5c09012SAndroid Build Coastguard Worker  }
1871*d5c09012SAndroid Build Coastguard Worker}
1872*d5c09012SAndroid Build Coastguard Worker
1873*d5c09012SAndroid Build Coastguard Worker// GitHubEventsConfig describes the configuration of a trigger that creates a
1874*d5c09012SAndroid Build Coastguard Worker// build whenever a GitHub event is received.
1875*d5c09012SAndroid Build Coastguard Workermessage GitHubEventsConfig {
1876*d5c09012SAndroid Build Coastguard Worker  // The installationID that emits the GitHub event.
1877*d5c09012SAndroid Build Coastguard Worker  int64 installation_id = 1 [deprecated = true];
1878*d5c09012SAndroid Build Coastguard Worker
1879*d5c09012SAndroid Build Coastguard Worker  // Owner of the repository. For example: The owner for
1880*d5c09012SAndroid Build Coastguard Worker  // https://github.com/googlecloudplatform/cloud-builders is
1881*d5c09012SAndroid Build Coastguard Worker  // "googlecloudplatform".
1882*d5c09012SAndroid Build Coastguard Worker  string owner = 6;
1883*d5c09012SAndroid Build Coastguard Worker
1884*d5c09012SAndroid Build Coastguard Worker  // Name of the repository. For example: The name for
1885*d5c09012SAndroid Build Coastguard Worker  // https://github.com/googlecloudplatform/cloud-builders is "cloud-builders".
1886*d5c09012SAndroid Build Coastguard Worker  string name = 7;
1887*d5c09012SAndroid Build Coastguard Worker
1888*d5c09012SAndroid Build Coastguard Worker  // Filter describing the types of events to trigger a build.
1889*d5c09012SAndroid Build Coastguard Worker  // Currently supported event types: push, pull_request.
1890*d5c09012SAndroid Build Coastguard Worker  oneof event {
1891*d5c09012SAndroid Build Coastguard Worker    // filter to match changes in pull requests.
1892*d5c09012SAndroid Build Coastguard Worker    PullRequestFilter pull_request = 4;
1893*d5c09012SAndroid Build Coastguard Worker
1894*d5c09012SAndroid Build Coastguard Worker    // filter to match changes in refs like branches, tags.
1895*d5c09012SAndroid Build Coastguard Worker    PushFilter push = 5;
1896*d5c09012SAndroid Build Coastguard Worker  }
1897*d5c09012SAndroid Build Coastguard Worker}
1898*d5c09012SAndroid Build Coastguard Worker
1899*d5c09012SAndroid Build Coastguard Worker// PubsubConfig describes the configuration of a trigger that
1900*d5c09012SAndroid Build Coastguard Worker// creates a build whenever a Pub/Sub message is published.
1901*d5c09012SAndroid Build Coastguard Workermessage PubsubConfig {
1902*d5c09012SAndroid Build Coastguard Worker  // Enumerates potential issues with the underlying Pub/Sub subscription
1903*d5c09012SAndroid Build Coastguard Worker  // configuration.
1904*d5c09012SAndroid Build Coastguard Worker  enum State {
1905*d5c09012SAndroid Build Coastguard Worker    // The subscription configuration has not been checked.
1906*d5c09012SAndroid Build Coastguard Worker    STATE_UNSPECIFIED = 0;
1907*d5c09012SAndroid Build Coastguard Worker
1908*d5c09012SAndroid Build Coastguard Worker    // The Pub/Sub subscription is properly configured.
1909*d5c09012SAndroid Build Coastguard Worker    OK = 1;
1910*d5c09012SAndroid Build Coastguard Worker
1911*d5c09012SAndroid Build Coastguard Worker    // The subscription has been deleted.
1912*d5c09012SAndroid Build Coastguard Worker    SUBSCRIPTION_DELETED = 2;
1913*d5c09012SAndroid Build Coastguard Worker
1914*d5c09012SAndroid Build Coastguard Worker    // The topic has been deleted.
1915*d5c09012SAndroid Build Coastguard Worker    TOPIC_DELETED = 3;
1916*d5c09012SAndroid Build Coastguard Worker
1917*d5c09012SAndroid Build Coastguard Worker    // Some of the subscription's field are misconfigured.
1918*d5c09012SAndroid Build Coastguard Worker    SUBSCRIPTION_MISCONFIGURED = 4;
1919*d5c09012SAndroid Build Coastguard Worker  }
1920*d5c09012SAndroid Build Coastguard Worker
1921*d5c09012SAndroid Build Coastguard Worker  // Output only. Name of the subscription. Format is
1922*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/subscriptions/{subscription}`.
1923*d5c09012SAndroid Build Coastguard Worker  string subscription = 1 [
1924*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OUTPUT_ONLY,
1925*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
1926*d5c09012SAndroid Build Coastguard Worker      type: "pubsub.googleapis.com/Subscription"
1927*d5c09012SAndroid Build Coastguard Worker    }
1928*d5c09012SAndroid Build Coastguard Worker  ];
1929*d5c09012SAndroid Build Coastguard Worker
1930*d5c09012SAndroid Build Coastguard Worker  // The name of the topic from which this subscription is receiving messages.
1931*d5c09012SAndroid Build Coastguard Worker  // Format is `projects/{project}/topics/{topic}`.
1932*d5c09012SAndroid Build Coastguard Worker  string topic = 2 [
1933*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "pubsub.googleapis.com/Topic" }
1934*d5c09012SAndroid Build Coastguard Worker  ];
1935*d5c09012SAndroid Build Coastguard Worker
1936*d5c09012SAndroid Build Coastguard Worker  // Service account that will make the push request.
1937*d5c09012SAndroid Build Coastguard Worker  string service_account_email = 3 [(google.api.resource_reference) = {
1938*d5c09012SAndroid Build Coastguard Worker    type: "iam.googleapis.com/ServiceAccount"
1939*d5c09012SAndroid Build Coastguard Worker  }];
1940*d5c09012SAndroid Build Coastguard Worker
1941*d5c09012SAndroid Build Coastguard Worker  // Potential issues with the underlying Pub/Sub subscription configuration.
1942*d5c09012SAndroid Build Coastguard Worker  // Only populated on get requests.
1943*d5c09012SAndroid Build Coastguard Worker  State state = 4;
1944*d5c09012SAndroid Build Coastguard Worker}
1945*d5c09012SAndroid Build Coastguard Worker
1946*d5c09012SAndroid Build Coastguard Worker// WebhookConfig describes the configuration of a trigger that
1947*d5c09012SAndroid Build Coastguard Worker// creates a build whenever a webhook is sent to a trigger's webhook URL.
1948*d5c09012SAndroid Build Coastguard Workermessage WebhookConfig {
1949*d5c09012SAndroid Build Coastguard Worker  // Enumerates potential issues with the Secret Manager secret provided by the
1950*d5c09012SAndroid Build Coastguard Worker  // user.
1951*d5c09012SAndroid Build Coastguard Worker  enum State {
1952*d5c09012SAndroid Build Coastguard Worker    // The webhook auth configuration not been checked.
1953*d5c09012SAndroid Build Coastguard Worker    STATE_UNSPECIFIED = 0;
1954*d5c09012SAndroid Build Coastguard Worker
1955*d5c09012SAndroid Build Coastguard Worker    // The auth configuration is properly setup.
1956*d5c09012SAndroid Build Coastguard Worker    OK = 1;
1957*d5c09012SAndroid Build Coastguard Worker
1958*d5c09012SAndroid Build Coastguard Worker    // The secret provided in auth_method has been deleted.
1959*d5c09012SAndroid Build Coastguard Worker    SECRET_DELETED = 2;
1960*d5c09012SAndroid Build Coastguard Worker  }
1961*d5c09012SAndroid Build Coastguard Worker
1962*d5c09012SAndroid Build Coastguard Worker  // Auth method specifies how the webhook authenticates with GCP.
1963*d5c09012SAndroid Build Coastguard Worker  oneof auth_method {
1964*d5c09012SAndroid Build Coastguard Worker    // Required. Resource name for the secret required as a URL parameter.
1965*d5c09012SAndroid Build Coastguard Worker    string secret = 3 [
1966*d5c09012SAndroid Build Coastguard Worker      (google.api.field_behavior) = REQUIRED,
1967*d5c09012SAndroid Build Coastguard Worker      (google.api.resource_reference) = {
1968*d5c09012SAndroid Build Coastguard Worker        type: "secretmanager.googleapis.com/SecretVersion"
1969*d5c09012SAndroid Build Coastguard Worker      }
1970*d5c09012SAndroid Build Coastguard Worker    ];
1971*d5c09012SAndroid Build Coastguard Worker  }
1972*d5c09012SAndroid Build Coastguard Worker
1973*d5c09012SAndroid Build Coastguard Worker  // Potential issues with the underlying Pub/Sub subscription configuration.
1974*d5c09012SAndroid Build Coastguard Worker  // Only populated on get requests.
1975*d5c09012SAndroid Build Coastguard Worker  State state = 4;
1976*d5c09012SAndroid Build Coastguard Worker}
1977*d5c09012SAndroid Build Coastguard Worker
1978*d5c09012SAndroid Build Coastguard Worker// PullRequestFilter contains filter properties for matching GitHub Pull
1979*d5c09012SAndroid Build Coastguard Worker// Requests.
1980*d5c09012SAndroid Build Coastguard Workermessage PullRequestFilter {
1981*d5c09012SAndroid Build Coastguard Worker  // Controls behavior of Pull Request comments.
1982*d5c09012SAndroid Build Coastguard Worker  enum CommentControl {
1983*d5c09012SAndroid Build Coastguard Worker    // Do not require comments on Pull Requests before builds are triggered.
1984*d5c09012SAndroid Build Coastguard Worker    COMMENTS_DISABLED = 0;
1985*d5c09012SAndroid Build Coastguard Worker
1986*d5c09012SAndroid Build Coastguard Worker    // Enforce that repository owners or collaborators must comment on Pull
1987*d5c09012SAndroid Build Coastguard Worker    // Requests before builds are triggered.
1988*d5c09012SAndroid Build Coastguard Worker    COMMENTS_ENABLED = 1;
1989*d5c09012SAndroid Build Coastguard Worker
1990*d5c09012SAndroid Build Coastguard Worker    // Enforce that repository owners or collaborators must comment on external
1991*d5c09012SAndroid Build Coastguard Worker    // contributors' Pull Requests before builds are triggered.
1992*d5c09012SAndroid Build Coastguard Worker    COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY = 2;
1993*d5c09012SAndroid Build Coastguard Worker  }
1994*d5c09012SAndroid Build Coastguard Worker
1995*d5c09012SAndroid Build Coastguard Worker  // Target refs to match.
1996*d5c09012SAndroid Build Coastguard Worker  // A target ref is the git reference where the pull request will be applied.
1997*d5c09012SAndroid Build Coastguard Worker  oneof git_ref {
1998*d5c09012SAndroid Build Coastguard Worker    // Regex of branches to match.
1999*d5c09012SAndroid Build Coastguard Worker    //
2000*d5c09012SAndroid Build Coastguard Worker    // The syntax of the regular expressions accepted is the syntax accepted by
2001*d5c09012SAndroid Build Coastguard Worker    // RE2 and described at https://github.com/google/re2/wiki/Syntax
2002*d5c09012SAndroid Build Coastguard Worker    string branch = 2;
2003*d5c09012SAndroid Build Coastguard Worker  }
2004*d5c09012SAndroid Build Coastguard Worker
2005*d5c09012SAndroid Build Coastguard Worker  // Configure builds to run whether a repository owner or collaborator need to
2006*d5c09012SAndroid Build Coastguard Worker  // comment `/gcbrun`.
2007*d5c09012SAndroid Build Coastguard Worker  CommentControl comment_control = 5;
2008*d5c09012SAndroid Build Coastguard Worker
2009*d5c09012SAndroid Build Coastguard Worker  // If true, branches that do NOT match the git_ref will trigger a build.
2010*d5c09012SAndroid Build Coastguard Worker  bool invert_regex = 6;
2011*d5c09012SAndroid Build Coastguard Worker}
2012*d5c09012SAndroid Build Coastguard Worker
2013*d5c09012SAndroid Build Coastguard Worker// Push contains filter properties for matching GitHub git pushes.
2014*d5c09012SAndroid Build Coastguard Workermessage PushFilter {
2015*d5c09012SAndroid Build Coastguard Worker  // Modified refs to match.
2016*d5c09012SAndroid Build Coastguard Worker  // A modified refs are the refs modified by a git push operation.
2017*d5c09012SAndroid Build Coastguard Worker  oneof git_ref {
2018*d5c09012SAndroid Build Coastguard Worker    // Regexes matching branches to build.
2019*d5c09012SAndroid Build Coastguard Worker    //
2020*d5c09012SAndroid Build Coastguard Worker    // The syntax of the regular expressions accepted is the syntax accepted by
2021*d5c09012SAndroid Build Coastguard Worker    // RE2 and described at https://github.com/google/re2/wiki/Syntax
2022*d5c09012SAndroid Build Coastguard Worker    string branch = 2;
2023*d5c09012SAndroid Build Coastguard Worker
2024*d5c09012SAndroid Build Coastguard Worker    // Regexes matching tags to build.
2025*d5c09012SAndroid Build Coastguard Worker    //
2026*d5c09012SAndroid Build Coastguard Worker    // The syntax of the regular expressions accepted is the syntax accepted by
2027*d5c09012SAndroid Build Coastguard Worker    // RE2 and described at https://github.com/google/re2/wiki/Syntax
2028*d5c09012SAndroid Build Coastguard Worker    string tag = 3;
2029*d5c09012SAndroid Build Coastguard Worker  }
2030*d5c09012SAndroid Build Coastguard Worker
2031*d5c09012SAndroid Build Coastguard Worker  // When true, only trigger a build if the revision regex does NOT match the
2032*d5c09012SAndroid Build Coastguard Worker  // git_ref regex.
2033*d5c09012SAndroid Build Coastguard Worker  bool invert_regex = 4;
2034*d5c09012SAndroid Build Coastguard Worker}
2035*d5c09012SAndroid Build Coastguard Worker
2036*d5c09012SAndroid Build Coastguard Worker// Request to create a new `BuildTrigger`.
2037*d5c09012SAndroid Build Coastguard Workermessage CreateBuildTriggerRequest {
2038*d5c09012SAndroid Build Coastguard Worker  // The parent resource where this trigger will be created.
2039*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project}/locations/{location}`
2040*d5c09012SAndroid Build Coastguard Worker  string parent = 3 [(google.api.resource_reference) = {
2041*d5c09012SAndroid Build Coastguard Worker    child_type: "cloudbuild.googleapis.com/BuildTrigger"
2042*d5c09012SAndroid Build Coastguard Worker  }];
2043*d5c09012SAndroid Build Coastguard Worker
2044*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the project for which to configure automatic builds.
2045*d5c09012SAndroid Build Coastguard Worker  string project_id = 1 [(google.api.field_behavior) = REQUIRED];
2046*d5c09012SAndroid Build Coastguard Worker
2047*d5c09012SAndroid Build Coastguard Worker  // Required. `BuildTrigger` to create.
2048*d5c09012SAndroid Build Coastguard Worker  BuildTrigger trigger = 2 [(google.api.field_behavior) = REQUIRED];
2049*d5c09012SAndroid Build Coastguard Worker}
2050*d5c09012SAndroid Build Coastguard Worker
2051*d5c09012SAndroid Build Coastguard Worker// Returns the `BuildTrigger` with the specified ID.
2052*d5c09012SAndroid Build Coastguard Workermessage GetBuildTriggerRequest {
2053*d5c09012SAndroid Build Coastguard Worker  // The name of the `Trigger` to retrieve.
2054*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project}/locations/{location}/triggers/{trigger}`
2055*d5c09012SAndroid Build Coastguard Worker  string name = 3 [(google.api.resource_reference) = {
2056*d5c09012SAndroid Build Coastguard Worker    type: "cloudbuild.googleapis.com/BuildTrigger"
2057*d5c09012SAndroid Build Coastguard Worker  }];
2058*d5c09012SAndroid Build Coastguard Worker
2059*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the project that owns the trigger.
2060*d5c09012SAndroid Build Coastguard Worker  string project_id = 1 [(google.api.field_behavior) = REQUIRED];
2061*d5c09012SAndroid Build Coastguard Worker
2062*d5c09012SAndroid Build Coastguard Worker  // Required. Identifier (`id` or `name`) of the `BuildTrigger` to get.
2063*d5c09012SAndroid Build Coastguard Worker  string trigger_id = 2 [(google.api.field_behavior) = REQUIRED];
2064*d5c09012SAndroid Build Coastguard Worker}
2065*d5c09012SAndroid Build Coastguard Worker
2066*d5c09012SAndroid Build Coastguard Worker// Request to list existing `BuildTriggers`.
2067*d5c09012SAndroid Build Coastguard Workermessage ListBuildTriggersRequest {
2068*d5c09012SAndroid Build Coastguard Worker  // The parent of the collection of `Triggers`.
2069*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project}/locations/{location}`
2070*d5c09012SAndroid Build Coastguard Worker  string parent = 4 [(google.api.resource_reference) = {
2071*d5c09012SAndroid Build Coastguard Worker    child_type: "cloudbuild.googleapis.com/BuildTrigger"
2072*d5c09012SAndroid Build Coastguard Worker  }];
2073*d5c09012SAndroid Build Coastguard Worker
2074*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the project for which to list BuildTriggers.
2075*d5c09012SAndroid Build Coastguard Worker  string project_id = 1 [(google.api.field_behavior) = REQUIRED];
2076*d5c09012SAndroid Build Coastguard Worker
2077*d5c09012SAndroid Build Coastguard Worker  // Number of results to return in the list.
2078*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
2079*d5c09012SAndroid Build Coastguard Worker
2080*d5c09012SAndroid Build Coastguard Worker  // Token to provide to skip to a particular spot in the list.
2081*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
2082*d5c09012SAndroid Build Coastguard Worker}
2083*d5c09012SAndroid Build Coastguard Worker
2084*d5c09012SAndroid Build Coastguard Worker// Response containing existing `BuildTriggers`.
2085*d5c09012SAndroid Build Coastguard Workermessage ListBuildTriggersResponse {
2086*d5c09012SAndroid Build Coastguard Worker  // `BuildTriggers` for the project, sorted by `create_time` descending.
2087*d5c09012SAndroid Build Coastguard Worker  repeated BuildTrigger triggers = 1;
2088*d5c09012SAndroid Build Coastguard Worker
2089*d5c09012SAndroid Build Coastguard Worker  // Token to receive the next page of results.
2090*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
2091*d5c09012SAndroid Build Coastguard Worker}
2092*d5c09012SAndroid Build Coastguard Worker
2093*d5c09012SAndroid Build Coastguard Worker// Request to delete a `BuildTrigger`.
2094*d5c09012SAndroid Build Coastguard Workermessage DeleteBuildTriggerRequest {
2095*d5c09012SAndroid Build Coastguard Worker  // The name of the `Trigger` to delete.
2096*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project}/locations/{location}/triggers/{trigger}`
2097*d5c09012SAndroid Build Coastguard Worker  string name = 3 [(google.api.resource_reference) = {
2098*d5c09012SAndroid Build Coastguard Worker    type: "cloudbuild.googleapis.com/BuildTrigger"
2099*d5c09012SAndroid Build Coastguard Worker  }];
2100*d5c09012SAndroid Build Coastguard Worker
2101*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the project that owns the trigger.
2102*d5c09012SAndroid Build Coastguard Worker  string project_id = 1 [(google.api.field_behavior) = REQUIRED];
2103*d5c09012SAndroid Build Coastguard Worker
2104*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the `BuildTrigger` to delete.
2105*d5c09012SAndroid Build Coastguard Worker  string trigger_id = 2 [(google.api.field_behavior) = REQUIRED];
2106*d5c09012SAndroid Build Coastguard Worker}
2107*d5c09012SAndroid Build Coastguard Worker
2108*d5c09012SAndroid Build Coastguard Worker// Request to update an existing `BuildTrigger`.
2109*d5c09012SAndroid Build Coastguard Workermessage UpdateBuildTriggerRequest {
2110*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the project that owns the trigger.
2111*d5c09012SAndroid Build Coastguard Worker  string project_id = 1 [(google.api.field_behavior) = REQUIRED];
2112*d5c09012SAndroid Build Coastguard Worker
2113*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the `BuildTrigger` to update.
2114*d5c09012SAndroid Build Coastguard Worker  string trigger_id = 2 [(google.api.field_behavior) = REQUIRED];
2115*d5c09012SAndroid Build Coastguard Worker
2116*d5c09012SAndroid Build Coastguard Worker  // Required. `BuildTrigger` to update.
2117*d5c09012SAndroid Build Coastguard Worker  BuildTrigger trigger = 3 [(google.api.field_behavior) = REQUIRED];
2118*d5c09012SAndroid Build Coastguard Worker
2119*d5c09012SAndroid Build Coastguard Worker  // Update mask for the resource. If this is set,
2120*d5c09012SAndroid Build Coastguard Worker  // the server will only update the fields specified in the field mask.
2121*d5c09012SAndroid Build Coastguard Worker  // Otherwise, a full update of the mutable resource fields will be performed.
2122*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 5;
2123*d5c09012SAndroid Build Coastguard Worker}
2124*d5c09012SAndroid Build Coastguard Worker
2125*d5c09012SAndroid Build Coastguard Worker// Optional arguments to enable specific features of builds.
2126*d5c09012SAndroid Build Coastguard Workermessage BuildOptions {
2127*d5c09012SAndroid Build Coastguard Worker  // Specifies the manner in which the build should be verified, if at all.
2128*d5c09012SAndroid Build Coastguard Worker  //
2129*d5c09012SAndroid Build Coastguard Worker  // If a verified build is requested, and any part of the process to generate
2130*d5c09012SAndroid Build Coastguard Worker  // and upload provenance fails, the build will also fail.
2131*d5c09012SAndroid Build Coastguard Worker  //
2132*d5c09012SAndroid Build Coastguard Worker  // If the build does not request verification then that process may occur, but
2133*d5c09012SAndroid Build Coastguard Worker  // is not guaranteed to. If it does occur and fails, the build will not fail.
2134*d5c09012SAndroid Build Coastguard Worker  //
2135*d5c09012SAndroid Build Coastguard Worker  // For more information, see [Viewing Build
2136*d5c09012SAndroid Build Coastguard Worker  // Provenance](https://cloud.google.com/build/docs/securing-builds/view-build-provenance).
2137*d5c09012SAndroid Build Coastguard Worker  enum VerifyOption {
2138*d5c09012SAndroid Build Coastguard Worker    // Not a verifiable build (the default).
2139*d5c09012SAndroid Build Coastguard Worker    NOT_VERIFIED = 0;
2140*d5c09012SAndroid Build Coastguard Worker
2141*d5c09012SAndroid Build Coastguard Worker    // Build must be verified.
2142*d5c09012SAndroid Build Coastguard Worker    VERIFIED = 1;
2143*d5c09012SAndroid Build Coastguard Worker  }
2144*d5c09012SAndroid Build Coastguard Worker
2145*d5c09012SAndroid Build Coastguard Worker  // Supported Compute Engine machine types.
2146*d5c09012SAndroid Build Coastguard Worker  // For more information, see [Machine
2147*d5c09012SAndroid Build Coastguard Worker  // types](https://cloud.google.com/compute/docs/machine-types).
2148*d5c09012SAndroid Build Coastguard Worker  enum MachineType {
2149*d5c09012SAndroid Build Coastguard Worker    // Standard machine type.
2150*d5c09012SAndroid Build Coastguard Worker    UNSPECIFIED = 0;
2151*d5c09012SAndroid Build Coastguard Worker
2152*d5c09012SAndroid Build Coastguard Worker    // Highcpu machine with 8 CPUs.
2153*d5c09012SAndroid Build Coastguard Worker    N1_HIGHCPU_8 = 1;
2154*d5c09012SAndroid Build Coastguard Worker
2155*d5c09012SAndroid Build Coastguard Worker    // Highcpu machine with 32 CPUs.
2156*d5c09012SAndroid Build Coastguard Worker    N1_HIGHCPU_32 = 2;
2157*d5c09012SAndroid Build Coastguard Worker
2158*d5c09012SAndroid Build Coastguard Worker    // Highcpu e2 machine with 8 CPUs.
2159*d5c09012SAndroid Build Coastguard Worker    E2_HIGHCPU_8 = 5;
2160*d5c09012SAndroid Build Coastguard Worker
2161*d5c09012SAndroid Build Coastguard Worker    // Highcpu e2 machine with 32 CPUs.
2162*d5c09012SAndroid Build Coastguard Worker    E2_HIGHCPU_32 = 6;
2163*d5c09012SAndroid Build Coastguard Worker
2164*d5c09012SAndroid Build Coastguard Worker    // E2 machine with 1 CPU.
2165*d5c09012SAndroid Build Coastguard Worker    E2_MEDIUM = 7;
2166*d5c09012SAndroid Build Coastguard Worker  }
2167*d5c09012SAndroid Build Coastguard Worker
2168*d5c09012SAndroid Build Coastguard Worker  // Specifies the behavior when there is an error in the substitution checks.
2169*d5c09012SAndroid Build Coastguard Worker  enum SubstitutionOption {
2170*d5c09012SAndroid Build Coastguard Worker    // Fails the build if error in substitutions checks, like missing
2171*d5c09012SAndroid Build Coastguard Worker    // a substitution in the template or in the map.
2172*d5c09012SAndroid Build Coastguard Worker    MUST_MATCH = 0;
2173*d5c09012SAndroid Build Coastguard Worker
2174*d5c09012SAndroid Build Coastguard Worker    // Do not fail the build if error in substitutions checks.
2175*d5c09012SAndroid Build Coastguard Worker    ALLOW_LOOSE = 1;
2176*d5c09012SAndroid Build Coastguard Worker  }
2177*d5c09012SAndroid Build Coastguard Worker
2178*d5c09012SAndroid Build Coastguard Worker  // Specifies the behavior when writing build logs to Cloud Storage.
2179*d5c09012SAndroid Build Coastguard Worker  enum LogStreamingOption {
2180*d5c09012SAndroid Build Coastguard Worker    // Service may automatically determine build log streaming behavior.
2181*d5c09012SAndroid Build Coastguard Worker    STREAM_DEFAULT = 0;
2182*d5c09012SAndroid Build Coastguard Worker
2183*d5c09012SAndroid Build Coastguard Worker    // Build logs should be streamed to Cloud Storage.
2184*d5c09012SAndroid Build Coastguard Worker    STREAM_ON = 1;
2185*d5c09012SAndroid Build Coastguard Worker
2186*d5c09012SAndroid Build Coastguard Worker    // Build logs should not be streamed to Cloud Storage; they will be
2187*d5c09012SAndroid Build Coastguard Worker    // written when the build is completed.
2188*d5c09012SAndroid Build Coastguard Worker    STREAM_OFF = 2;
2189*d5c09012SAndroid Build Coastguard Worker  }
2190*d5c09012SAndroid Build Coastguard Worker
2191*d5c09012SAndroid Build Coastguard Worker  // Details about how a build should be executed on a `WorkerPool`.
2192*d5c09012SAndroid Build Coastguard Worker  //
2193*d5c09012SAndroid Build Coastguard Worker  // See [running builds in a private
2194*d5c09012SAndroid Build Coastguard Worker  // pool](https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool)
2195*d5c09012SAndroid Build Coastguard Worker  // for more information.
2196*d5c09012SAndroid Build Coastguard Worker  message PoolOption {
2197*d5c09012SAndroid Build Coastguard Worker    // The `WorkerPool` resource to execute the build on.
2198*d5c09012SAndroid Build Coastguard Worker    // You must have `cloudbuild.workerpools.use` on the project hosting the
2199*d5c09012SAndroid Build Coastguard Worker    // WorkerPool.
2200*d5c09012SAndroid Build Coastguard Worker    //
2201*d5c09012SAndroid Build Coastguard Worker    // Format projects/{project}/locations/{location}/workerPools/{workerPoolId}
2202*d5c09012SAndroid Build Coastguard Worker    string name = 1 [(google.api.resource_reference) = {
2203*d5c09012SAndroid Build Coastguard Worker      type: "cloudbuild.googleapis.com/WorkerPool"
2204*d5c09012SAndroid Build Coastguard Worker    }];
2205*d5c09012SAndroid Build Coastguard Worker  }
2206*d5c09012SAndroid Build Coastguard Worker
2207*d5c09012SAndroid Build Coastguard Worker  // Specifies the logging mode.
2208*d5c09012SAndroid Build Coastguard Worker  enum LoggingMode {
2209*d5c09012SAndroid Build Coastguard Worker    // The service determines the logging mode. The default is `LEGACY`. Do not
2210*d5c09012SAndroid Build Coastguard Worker    // rely on the default logging behavior as it may change in the future.
2211*d5c09012SAndroid Build Coastguard Worker    LOGGING_UNSPECIFIED = 0;
2212*d5c09012SAndroid Build Coastguard Worker
2213*d5c09012SAndroid Build Coastguard Worker    // Build logs are stored in Cloud Logging and Cloud Storage.
2214*d5c09012SAndroid Build Coastguard Worker    LEGACY = 1;
2215*d5c09012SAndroid Build Coastguard Worker
2216*d5c09012SAndroid Build Coastguard Worker    // Build logs are stored in Cloud Storage.
2217*d5c09012SAndroid Build Coastguard Worker    GCS_ONLY = 2;
2218*d5c09012SAndroid Build Coastguard Worker
2219*d5c09012SAndroid Build Coastguard Worker    // This option is the same as CLOUD_LOGGING_ONLY.
2220*d5c09012SAndroid Build Coastguard Worker    STACKDRIVER_ONLY = 3 [deprecated = true];
2221*d5c09012SAndroid Build Coastguard Worker
2222*d5c09012SAndroid Build Coastguard Worker    // Build logs are stored in Cloud Logging. Selecting this option will not
2223*d5c09012SAndroid Build Coastguard Worker    // allow [logs
2224*d5c09012SAndroid Build Coastguard Worker    // streaming](https://cloud.google.com/sdk/gcloud/reference/builds/log).
2225*d5c09012SAndroid Build Coastguard Worker    CLOUD_LOGGING_ONLY = 5;
2226*d5c09012SAndroid Build Coastguard Worker
2227*d5c09012SAndroid Build Coastguard Worker    // Turn off all logging. No build logs will be captured.
2228*d5c09012SAndroid Build Coastguard Worker    NONE = 4;
2229*d5c09012SAndroid Build Coastguard Worker  }
2230*d5c09012SAndroid Build Coastguard Worker
2231*d5c09012SAndroid Build Coastguard Worker  // Default GCS log bucket behavior options.
2232*d5c09012SAndroid Build Coastguard Worker  enum DefaultLogsBucketBehavior {
2233*d5c09012SAndroid Build Coastguard Worker    // Unspecified.
2234*d5c09012SAndroid Build Coastguard Worker    DEFAULT_LOGS_BUCKET_BEHAVIOR_UNSPECIFIED = 0;
2235*d5c09012SAndroid Build Coastguard Worker
2236*d5c09012SAndroid Build Coastguard Worker    // Bucket is located in user-owned project in the same region as the
2237*d5c09012SAndroid Build Coastguard Worker    // build. The builder service account must have access to create and write
2238*d5c09012SAndroid Build Coastguard Worker    // to GCS buckets in the build project.
2239*d5c09012SAndroid Build Coastguard Worker    REGIONAL_USER_OWNED_BUCKET = 1;
2240*d5c09012SAndroid Build Coastguard Worker  }
2241*d5c09012SAndroid Build Coastguard Worker
2242*d5c09012SAndroid Build Coastguard Worker  // Requested hash for SourceProvenance.
2243*d5c09012SAndroid Build Coastguard Worker  repeated Hash.HashType source_provenance_hash = 1;
2244*d5c09012SAndroid Build Coastguard Worker
2245*d5c09012SAndroid Build Coastguard Worker  // Requested verifiability options.
2246*d5c09012SAndroid Build Coastguard Worker  VerifyOption requested_verify_option = 2;
2247*d5c09012SAndroid Build Coastguard Worker
2248*d5c09012SAndroid Build Coastguard Worker  // Compute Engine machine type on which to run the build.
2249*d5c09012SAndroid Build Coastguard Worker  MachineType machine_type = 3;
2250*d5c09012SAndroid Build Coastguard Worker
2251*d5c09012SAndroid Build Coastguard Worker  // Requested disk size for the VM that runs the build. Note that this is *NOT*
2252*d5c09012SAndroid Build Coastguard Worker  // "disk free"; some of the space will be used by the operating system and
2253*d5c09012SAndroid Build Coastguard Worker  // build utilities. Also note that this is the minimum disk size that will be
2254*d5c09012SAndroid Build Coastguard Worker  // allocated for the build -- the build may run with a larger disk than
2255*d5c09012SAndroid Build Coastguard Worker  // requested. At present, the maximum disk size is 2000GB; builds that request
2256*d5c09012SAndroid Build Coastguard Worker  // more than the maximum are rejected with an error.
2257*d5c09012SAndroid Build Coastguard Worker  int64 disk_size_gb = 6;
2258*d5c09012SAndroid Build Coastguard Worker
2259*d5c09012SAndroid Build Coastguard Worker  // Option to specify behavior when there is an error in the substitution
2260*d5c09012SAndroid Build Coastguard Worker  // checks.
2261*d5c09012SAndroid Build Coastguard Worker  //
2262*d5c09012SAndroid Build Coastguard Worker  // NOTE: this is always set to ALLOW_LOOSE for triggered builds and cannot
2263*d5c09012SAndroid Build Coastguard Worker  // be overridden in the build configuration file.
2264*d5c09012SAndroid Build Coastguard Worker  SubstitutionOption substitution_option = 4;
2265*d5c09012SAndroid Build Coastguard Worker
2266*d5c09012SAndroid Build Coastguard Worker  // Option to specify whether or not to apply bash style string
2267*d5c09012SAndroid Build Coastguard Worker  // operations to the substitutions.
2268*d5c09012SAndroid Build Coastguard Worker  //
2269*d5c09012SAndroid Build Coastguard Worker  // NOTE: this is always enabled for triggered builds and cannot be
2270*d5c09012SAndroid Build Coastguard Worker  // overridden in the build configuration file.
2271*d5c09012SAndroid Build Coastguard Worker  bool dynamic_substitutions = 17;
2272*d5c09012SAndroid Build Coastguard Worker
2273*d5c09012SAndroid Build Coastguard Worker  // Option to include built-in and custom substitutions as env variables
2274*d5c09012SAndroid Build Coastguard Worker  // for all build steps.
2275*d5c09012SAndroid Build Coastguard Worker  bool automap_substitutions = 22;
2276*d5c09012SAndroid Build Coastguard Worker
2277*d5c09012SAndroid Build Coastguard Worker  // Option to define build log streaming behavior to Cloud
2278*d5c09012SAndroid Build Coastguard Worker  // Storage.
2279*d5c09012SAndroid Build Coastguard Worker  LogStreamingOption log_streaming_option = 5;
2280*d5c09012SAndroid Build Coastguard Worker
2281*d5c09012SAndroid Build Coastguard Worker  // This field deprecated; please use `pool.name` instead.
2282*d5c09012SAndroid Build Coastguard Worker  string worker_pool = 7 [deprecated = true];
2283*d5c09012SAndroid Build Coastguard Worker
2284*d5c09012SAndroid Build Coastguard Worker  // Optional. Specification for execution on a `WorkerPool`.
2285*d5c09012SAndroid Build Coastguard Worker  //
2286*d5c09012SAndroid Build Coastguard Worker  // See [running builds in a private
2287*d5c09012SAndroid Build Coastguard Worker  // pool](https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool)
2288*d5c09012SAndroid Build Coastguard Worker  // for more information.
2289*d5c09012SAndroid Build Coastguard Worker  PoolOption pool = 19 [(google.api.field_behavior) = OPTIONAL];
2290*d5c09012SAndroid Build Coastguard Worker
2291*d5c09012SAndroid Build Coastguard Worker  // Option to specify the logging mode, which determines if and where build
2292*d5c09012SAndroid Build Coastguard Worker  // logs are stored.
2293*d5c09012SAndroid Build Coastguard Worker  LoggingMode logging = 11;
2294*d5c09012SAndroid Build Coastguard Worker
2295*d5c09012SAndroid Build Coastguard Worker  // A list of global environment variable definitions that will exist for all
2296*d5c09012SAndroid Build Coastguard Worker  // build steps in this build. If a variable is defined in both globally and in
2297*d5c09012SAndroid Build Coastguard Worker  // a build step, the variable will use the build step value.
2298*d5c09012SAndroid Build Coastguard Worker  //
2299*d5c09012SAndroid Build Coastguard Worker  // The elements are of the form "KEY=VALUE" for the environment variable "KEY"
2300*d5c09012SAndroid Build Coastguard Worker  // being given the value "VALUE".
2301*d5c09012SAndroid Build Coastguard Worker  repeated string env = 12;
2302*d5c09012SAndroid Build Coastguard Worker
2303*d5c09012SAndroid Build Coastguard Worker  // A list of global environment variables, which are encrypted using a Cloud
2304*d5c09012SAndroid Build Coastguard Worker  // Key Management Service crypto key. These values must be specified in the
2305*d5c09012SAndroid Build Coastguard Worker  // build's `Secret`. These variables will be available to all build steps
2306*d5c09012SAndroid Build Coastguard Worker  // in this build.
2307*d5c09012SAndroid Build Coastguard Worker  repeated string secret_env = 13;
2308*d5c09012SAndroid Build Coastguard Worker
2309*d5c09012SAndroid Build Coastguard Worker  // Global list of volumes to mount for ALL build steps
2310*d5c09012SAndroid Build Coastguard Worker  //
2311*d5c09012SAndroid Build Coastguard Worker  // Each volume is created as an empty volume prior to starting the build
2312*d5c09012SAndroid Build Coastguard Worker  // process. Upon completion of the build, volumes and their contents are
2313*d5c09012SAndroid Build Coastguard Worker  // discarded. Global volume names and paths cannot conflict with the volumes
2314*d5c09012SAndroid Build Coastguard Worker  // defined a build step.
2315*d5c09012SAndroid Build Coastguard Worker  //
2316*d5c09012SAndroid Build Coastguard Worker  // Using a global volume in a build with only one step is not valid as
2317*d5c09012SAndroid Build Coastguard Worker  // it is indicative of a build request with an incorrect configuration.
2318*d5c09012SAndroid Build Coastguard Worker  repeated Volume volumes = 14;
2319*d5c09012SAndroid Build Coastguard Worker
2320*d5c09012SAndroid Build Coastguard Worker  // Optional. Option to specify how default logs buckets are setup.
2321*d5c09012SAndroid Build Coastguard Worker  DefaultLogsBucketBehavior default_logs_bucket_behavior = 21
2322*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
2323*d5c09012SAndroid Build Coastguard Worker}
2324*d5c09012SAndroid Build Coastguard Worker
2325*d5c09012SAndroid Build Coastguard Worker// ReceiveTriggerWebhookRequest [Experimental] is the request object accepted by
2326*d5c09012SAndroid Build Coastguard Worker// the ReceiveTriggerWebhook method.
2327*d5c09012SAndroid Build Coastguard Workermessage ReceiveTriggerWebhookRequest {
2328*d5c09012SAndroid Build Coastguard Worker  // The name of the `ReceiveTriggerWebhook` to retrieve.
2329*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project}/locations/{location}/triggers/{trigger}`
2330*d5c09012SAndroid Build Coastguard Worker  string name = 5;
2331*d5c09012SAndroid Build Coastguard Worker
2332*d5c09012SAndroid Build Coastguard Worker  // HTTP request body.
2333*d5c09012SAndroid Build Coastguard Worker  google.api.HttpBody body = 1;
2334*d5c09012SAndroid Build Coastguard Worker
2335*d5c09012SAndroid Build Coastguard Worker  // Project in which the specified trigger lives
2336*d5c09012SAndroid Build Coastguard Worker  string project_id = 2;
2337*d5c09012SAndroid Build Coastguard Worker
2338*d5c09012SAndroid Build Coastguard Worker  // Name of the trigger to run the payload against
2339*d5c09012SAndroid Build Coastguard Worker  string trigger = 3;
2340*d5c09012SAndroid Build Coastguard Worker
2341*d5c09012SAndroid Build Coastguard Worker  // Secret token used for authorization if an OAuth token isn't provided.
2342*d5c09012SAndroid Build Coastguard Worker  string secret = 4;
2343*d5c09012SAndroid Build Coastguard Worker}
2344*d5c09012SAndroid Build Coastguard Worker
2345*d5c09012SAndroid Build Coastguard Worker// ReceiveTriggerWebhookResponse [Experimental] is the response object for the
2346*d5c09012SAndroid Build Coastguard Worker// ReceiveTriggerWebhook method.
2347*d5c09012SAndroid Build Coastguard Workermessage ReceiveTriggerWebhookResponse {}
2348*d5c09012SAndroid Build Coastguard Worker
2349*d5c09012SAndroid Build Coastguard Workermessage GitHubEnterpriseConfig {
2350*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
2351*d5c09012SAndroid Build Coastguard Worker    type: "cloudbuild.googleapis.com/GithubEnterpriseConfig"
2352*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/githubEnterpriseConfigs/{config}"
2353*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/githubEnterpriseConfigs/{config}"
2354*d5c09012SAndroid Build Coastguard Worker  };
2355*d5c09012SAndroid Build Coastguard Worker
2356*d5c09012SAndroid Build Coastguard Worker  // Optional. The full resource name for the GitHubEnterpriseConfig
2357*d5c09012SAndroid Build Coastguard Worker  // For example:
2358*d5c09012SAndroid Build Coastguard Worker  // "projects/{$project_id}/locations/{$location_id}/githubEnterpriseConfigs/{$config_id}"
2359*d5c09012SAndroid Build Coastguard Worker  string name = 7 [(google.api.field_behavior) = OPTIONAL];
2360*d5c09012SAndroid Build Coastguard Worker
2361*d5c09012SAndroid Build Coastguard Worker  // The URL of the github enterprise host the configuration is for.
2362*d5c09012SAndroid Build Coastguard Worker  string host_url = 3;
2363*d5c09012SAndroid Build Coastguard Worker
2364*d5c09012SAndroid Build Coastguard Worker  // Required. The GitHub app id of the Cloud Build app on the GitHub Enterprise
2365*d5c09012SAndroid Build Coastguard Worker  // server.
2366*d5c09012SAndroid Build Coastguard Worker  int64 app_id = 4 [(google.api.field_behavior) = REQUIRED];
2367*d5c09012SAndroid Build Coastguard Worker
2368*d5c09012SAndroid Build Coastguard Worker  // Output only. Time when the installation was associated with the project.
2369*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 6
2370*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
2371*d5c09012SAndroid Build Coastguard Worker
2372*d5c09012SAndroid Build Coastguard Worker  // The key that should be attached to webhook calls to the ReceiveWebhook
2373*d5c09012SAndroid Build Coastguard Worker  // endpoint.
2374*d5c09012SAndroid Build Coastguard Worker  string webhook_key = 8;
2375*d5c09012SAndroid Build Coastguard Worker
2376*d5c09012SAndroid Build Coastguard Worker  // Optional. The network to be used when reaching out to the GitHub
2377*d5c09012SAndroid Build Coastguard Worker  // Enterprise server. The VPC network must be enabled for private
2378*d5c09012SAndroid Build Coastguard Worker  // service connection. This should be set if the GitHub Enterprise server is
2379*d5c09012SAndroid Build Coastguard Worker  // hosted on-premises and not reachable by public internet.
2380*d5c09012SAndroid Build Coastguard Worker  // If this field is left empty, no network peering will occur and calls to
2381*d5c09012SAndroid Build Coastguard Worker  // the GitHub Enterprise server will be made over the public internet.
2382*d5c09012SAndroid Build Coastguard Worker  // Must be in the format
2383*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/global/networks/{network}`, where {project}
2384*d5c09012SAndroid Build Coastguard Worker  // is a project number or id and {network} is the name of a
2385*d5c09012SAndroid Build Coastguard Worker  // VPC network in the project.
2386*d5c09012SAndroid Build Coastguard Worker  string peered_network = 9 [
2387*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = OPTIONAL,
2388*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "compute.googleapis.com/Network" }
2389*d5c09012SAndroid Build Coastguard Worker  ];
2390*d5c09012SAndroid Build Coastguard Worker
2391*d5c09012SAndroid Build Coastguard Worker  // Names of secrets in Secret Manager.
2392*d5c09012SAndroid Build Coastguard Worker  GitHubEnterpriseSecrets secrets = 10;
2393*d5c09012SAndroid Build Coastguard Worker
2394*d5c09012SAndroid Build Coastguard Worker  // Name to display for this config.
2395*d5c09012SAndroid Build Coastguard Worker  string display_name = 11;
2396*d5c09012SAndroid Build Coastguard Worker
2397*d5c09012SAndroid Build Coastguard Worker  // Optional. SSL certificate to use for requests to GitHub Enterprise.
2398*d5c09012SAndroid Build Coastguard Worker  string ssl_ca = 12 [(google.api.field_behavior) = OPTIONAL];
2399*d5c09012SAndroid Build Coastguard Worker}
2400*d5c09012SAndroid Build Coastguard Worker
2401*d5c09012SAndroid Build Coastguard Worker// GitHubEnterpriseSecrets represents the names of all necessary secrets in
2402*d5c09012SAndroid Build Coastguard Worker// Secret Manager for a GitHub Enterprise server.
2403*d5c09012SAndroid Build Coastguard Worker// Format is: projects/<project number>/secrets/<secret name>.
2404*d5c09012SAndroid Build Coastguard Workermessage GitHubEnterpriseSecrets {
2405*d5c09012SAndroid Build Coastguard Worker  // The resource name for the private key secret version.
2406*d5c09012SAndroid Build Coastguard Worker  string private_key_version_name = 5 [(google.api.resource_reference) = {
2407*d5c09012SAndroid Build Coastguard Worker    type: "secretmanager.googleapis.com/SecretVersion"
2408*d5c09012SAndroid Build Coastguard Worker  }];
2409*d5c09012SAndroid Build Coastguard Worker
2410*d5c09012SAndroid Build Coastguard Worker  // The resource name for the webhook secret secret version in Secret Manager.
2411*d5c09012SAndroid Build Coastguard Worker  string webhook_secret_version_name = 6 [(google.api.resource_reference) = {
2412*d5c09012SAndroid Build Coastguard Worker    type: "secretmanager.googleapis.com/SecretVersion"
2413*d5c09012SAndroid Build Coastguard Worker  }];
2414*d5c09012SAndroid Build Coastguard Worker
2415*d5c09012SAndroid Build Coastguard Worker  // The resource name for the OAuth secret secret version in Secret Manager.
2416*d5c09012SAndroid Build Coastguard Worker  string oauth_secret_version_name = 7 [(google.api.resource_reference) = {
2417*d5c09012SAndroid Build Coastguard Worker    type: "secretmanager.googleapis.com/SecretVersion"
2418*d5c09012SAndroid Build Coastguard Worker  }];
2419*d5c09012SAndroid Build Coastguard Worker
2420*d5c09012SAndroid Build Coastguard Worker  // The resource name for the OAuth client ID secret version in Secret Manager.
2421*d5c09012SAndroid Build Coastguard Worker  string oauth_client_id_version_name = 8 [(google.api.resource_reference) = {
2422*d5c09012SAndroid Build Coastguard Worker    type: "secretmanager.googleapis.com/SecretVersion"
2423*d5c09012SAndroid Build Coastguard Worker  }];
2424*d5c09012SAndroid Build Coastguard Worker}
2425*d5c09012SAndroid Build Coastguard Worker
2426*d5c09012SAndroid Build Coastguard Worker// Configuration for a `WorkerPool`.
2427*d5c09012SAndroid Build Coastguard Worker//
2428*d5c09012SAndroid Build Coastguard Worker// Cloud Build owns and maintains a pool of workers for general use and have no
2429*d5c09012SAndroid Build Coastguard Worker// access to a project's private network. By default, builds submitted to
2430*d5c09012SAndroid Build Coastguard Worker// Cloud Build will use a worker from this pool.
2431*d5c09012SAndroid Build Coastguard Worker//
2432*d5c09012SAndroid Build Coastguard Worker// If your build needs access to resources on a private network,
2433*d5c09012SAndroid Build Coastguard Worker// create and use a `WorkerPool` to run your builds. Private `WorkerPool`s give
2434*d5c09012SAndroid Build Coastguard Worker// your builds access to any single VPC network that you
2435*d5c09012SAndroid Build Coastguard Worker// administer, including any on-prem resources connected to that VPC
2436*d5c09012SAndroid Build Coastguard Worker// network. For an overview of private pools, see
2437*d5c09012SAndroid Build Coastguard Worker// [Private pools
2438*d5c09012SAndroid Build Coastguard Worker// overview](https://cloud.google.com/build/docs/private-pools/private-pools-overview).
2439*d5c09012SAndroid Build Coastguard Workermessage WorkerPool {
2440*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
2441*d5c09012SAndroid Build Coastguard Worker    type: "cloudbuild.googleapis.com/WorkerPool"
2442*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/locations/{location}/workerPools/{worker_pool}"
2443*d5c09012SAndroid Build Coastguard Worker    plural: "workerPools"
2444*d5c09012SAndroid Build Coastguard Worker    singular: "workerPool"
2445*d5c09012SAndroid Build Coastguard Worker    style: DECLARATIVE_FRIENDLY
2446*d5c09012SAndroid Build Coastguard Worker  };
2447*d5c09012SAndroid Build Coastguard Worker
2448*d5c09012SAndroid Build Coastguard Worker  // State of the `WorkerPool`.
2449*d5c09012SAndroid Build Coastguard Worker  enum State {
2450*d5c09012SAndroid Build Coastguard Worker    // State of the `WorkerPool` is unknown.
2451*d5c09012SAndroid Build Coastguard Worker    STATE_UNSPECIFIED = 0;
2452*d5c09012SAndroid Build Coastguard Worker
2453*d5c09012SAndroid Build Coastguard Worker    // `WorkerPool` is being created.
2454*d5c09012SAndroid Build Coastguard Worker    CREATING = 1;
2455*d5c09012SAndroid Build Coastguard Worker
2456*d5c09012SAndroid Build Coastguard Worker    // `WorkerPool` is running.
2457*d5c09012SAndroid Build Coastguard Worker    RUNNING = 2;
2458*d5c09012SAndroid Build Coastguard Worker
2459*d5c09012SAndroid Build Coastguard Worker    // `WorkerPool` is being deleted: cancelling builds and draining workers.
2460*d5c09012SAndroid Build Coastguard Worker    DELETING = 3;
2461*d5c09012SAndroid Build Coastguard Worker
2462*d5c09012SAndroid Build Coastguard Worker    // `WorkerPool` is deleted.
2463*d5c09012SAndroid Build Coastguard Worker    DELETED = 4;
2464*d5c09012SAndroid Build Coastguard Worker
2465*d5c09012SAndroid Build Coastguard Worker    // `WorkerPool` is being updated; new builds cannot be run.
2466*d5c09012SAndroid Build Coastguard Worker    UPDATING = 5;
2467*d5c09012SAndroid Build Coastguard Worker  }
2468*d5c09012SAndroid Build Coastguard Worker
2469*d5c09012SAndroid Build Coastguard Worker  // Output only. The resource name of the `WorkerPool`, with format
2470*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location}/workerPools/{worker_pool}`.
2471*d5c09012SAndroid Build Coastguard Worker  // The value of `{worker_pool}` is provided by `worker_pool_id` in
2472*d5c09012SAndroid Build Coastguard Worker  // `CreateWorkerPool` request and the value of `{location}` is determined by
2473*d5c09012SAndroid Build Coastguard Worker  // the endpoint accessed.
2474*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
2475*d5c09012SAndroid Build Coastguard Worker
2476*d5c09012SAndroid Build Coastguard Worker  // A user-specified, human-readable name for the `WorkerPool`. If provided,
2477*d5c09012SAndroid Build Coastguard Worker  // this value must be 1-63 characters.
2478*d5c09012SAndroid Build Coastguard Worker  string display_name = 2;
2479*d5c09012SAndroid Build Coastguard Worker
2480*d5c09012SAndroid Build Coastguard Worker  // Output only. A unique identifier for the `WorkerPool`.
2481*d5c09012SAndroid Build Coastguard Worker  string uid = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
2482*d5c09012SAndroid Build Coastguard Worker
2483*d5c09012SAndroid Build Coastguard Worker  // User specified annotations. See https://google.aip.dev/128#annotations
2484*d5c09012SAndroid Build Coastguard Worker  // for more details such as format and size limitations.
2485*d5c09012SAndroid Build Coastguard Worker  map<string, string> annotations = 4;
2486*d5c09012SAndroid Build Coastguard Worker
2487*d5c09012SAndroid Build Coastguard Worker  // Output only. Time at which the request to create the `WorkerPool` was
2488*d5c09012SAndroid Build Coastguard Worker  // received.
2489*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 5
2490*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
2491*d5c09012SAndroid Build Coastguard Worker
2492*d5c09012SAndroid Build Coastguard Worker  // Output only. Time at which the request to update the `WorkerPool` was
2493*d5c09012SAndroid Build Coastguard Worker  // received.
2494*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 6
2495*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
2496*d5c09012SAndroid Build Coastguard Worker
2497*d5c09012SAndroid Build Coastguard Worker  // Output only. Time at which the request to delete the `WorkerPool` was
2498*d5c09012SAndroid Build Coastguard Worker  // received.
2499*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp delete_time = 7
2500*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
2501*d5c09012SAndroid Build Coastguard Worker
2502*d5c09012SAndroid Build Coastguard Worker  // Output only. `WorkerPool` state.
2503*d5c09012SAndroid Build Coastguard Worker  State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
2504*d5c09012SAndroid Build Coastguard Worker
2505*d5c09012SAndroid Build Coastguard Worker  // Configuration for the `WorkerPool`.
2506*d5c09012SAndroid Build Coastguard Worker  oneof config {
2507*d5c09012SAndroid Build Coastguard Worker    // Legacy Private Pool configuration.
2508*d5c09012SAndroid Build Coastguard Worker    PrivatePoolV1Config private_pool_v1_config = 12;
2509*d5c09012SAndroid Build Coastguard Worker  }
2510*d5c09012SAndroid Build Coastguard Worker
2511*d5c09012SAndroid Build Coastguard Worker  // Output only. Checksum computed by the server. May be sent on update and
2512*d5c09012SAndroid Build Coastguard Worker  // delete requests to ensure that the client has an up-to-date value before
2513*d5c09012SAndroid Build Coastguard Worker  // proceeding.
2514*d5c09012SAndroid Build Coastguard Worker  string etag = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
2515*d5c09012SAndroid Build Coastguard Worker}
2516*d5c09012SAndroid Build Coastguard Worker
2517*d5c09012SAndroid Build Coastguard Worker// Configuration for a V1 `PrivatePool`.
2518*d5c09012SAndroid Build Coastguard Workermessage PrivatePoolV1Config {
2519*d5c09012SAndroid Build Coastguard Worker  // Defines the configuration to be used for creating workers in
2520*d5c09012SAndroid Build Coastguard Worker  // the pool.
2521*d5c09012SAndroid Build Coastguard Worker  message WorkerConfig {
2522*d5c09012SAndroid Build Coastguard Worker    // Machine type of a worker, such as `e2-medium`.
2523*d5c09012SAndroid Build Coastguard Worker    // See [Worker pool config
2524*d5c09012SAndroid Build Coastguard Worker    // file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema).
2525*d5c09012SAndroid Build Coastguard Worker    // If left blank, Cloud Build will use a sensible default.
2526*d5c09012SAndroid Build Coastguard Worker    string machine_type = 1;
2527*d5c09012SAndroid Build Coastguard Worker
2528*d5c09012SAndroid Build Coastguard Worker    // Size of the disk attached to the worker, in GB.
2529*d5c09012SAndroid Build Coastguard Worker    // See [Worker pool config
2530*d5c09012SAndroid Build Coastguard Worker    // file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema).
2531*d5c09012SAndroid Build Coastguard Worker    // Specify a value of up to 2000. If `0` is specified, Cloud Build will use
2532*d5c09012SAndroid Build Coastguard Worker    // a standard disk size.
2533*d5c09012SAndroid Build Coastguard Worker    int64 disk_size_gb = 2;
2534*d5c09012SAndroid Build Coastguard Worker  }
2535*d5c09012SAndroid Build Coastguard Worker
2536*d5c09012SAndroid Build Coastguard Worker  // Defines the network configuration for the pool.
2537*d5c09012SAndroid Build Coastguard Worker  message NetworkConfig {
2538*d5c09012SAndroid Build Coastguard Worker    // Defines the egress option for the pool.
2539*d5c09012SAndroid Build Coastguard Worker    enum EgressOption {
2540*d5c09012SAndroid Build Coastguard Worker      // If set, defaults to PUBLIC_EGRESS.
2541*d5c09012SAndroid Build Coastguard Worker      EGRESS_OPTION_UNSPECIFIED = 0;
2542*d5c09012SAndroid Build Coastguard Worker
2543*d5c09012SAndroid Build Coastguard Worker      // If set, workers are created without any public address, which prevents
2544*d5c09012SAndroid Build Coastguard Worker      // network egress to public IPs unless a network proxy is configured.
2545*d5c09012SAndroid Build Coastguard Worker      NO_PUBLIC_EGRESS = 1;
2546*d5c09012SAndroid Build Coastguard Worker
2547*d5c09012SAndroid Build Coastguard Worker      // If set, workers are created with a public address which allows for
2548*d5c09012SAndroid Build Coastguard Worker      // public internet egress.
2549*d5c09012SAndroid Build Coastguard Worker      PUBLIC_EGRESS = 2;
2550*d5c09012SAndroid Build Coastguard Worker    }
2551*d5c09012SAndroid Build Coastguard Worker
2552*d5c09012SAndroid Build Coastguard Worker    // Required. Immutable. The network definition that the workers are peered
2553*d5c09012SAndroid Build Coastguard Worker    // to. If this section is left empty, the workers will be peered to
2554*d5c09012SAndroid Build Coastguard Worker    // `WorkerPool.project_id` on the service producer network. Must be in the
2555*d5c09012SAndroid Build Coastguard Worker    // format `projects/{project}/global/networks/{network}`, where `{project}`
2556*d5c09012SAndroid Build Coastguard Worker    // is a project number, such as `12345`, and `{network}` is the name of a
2557*d5c09012SAndroid Build Coastguard Worker    // VPC network in the project. See
2558*d5c09012SAndroid Build Coastguard Worker    // [Understanding network configuration
2559*d5c09012SAndroid Build Coastguard Worker    // options](https://cloud.google.com/build/docs/private-pools/set-up-private-pool-environment)
2560*d5c09012SAndroid Build Coastguard Worker    string peered_network = 1 [
2561*d5c09012SAndroid Build Coastguard Worker      (google.api.field_behavior) = IMMUTABLE,
2562*d5c09012SAndroid Build Coastguard Worker      (google.api.field_behavior) = REQUIRED,
2563*d5c09012SAndroid Build Coastguard Worker      (google.api.resource_reference) = {
2564*d5c09012SAndroid Build Coastguard Worker        type: "compute.googleapis.com/Network"
2565*d5c09012SAndroid Build Coastguard Worker      }
2566*d5c09012SAndroid Build Coastguard Worker    ];
2567*d5c09012SAndroid Build Coastguard Worker
2568*d5c09012SAndroid Build Coastguard Worker    // Option to configure network egress for the workers.
2569*d5c09012SAndroid Build Coastguard Worker    EgressOption egress_option = 2;
2570*d5c09012SAndroid Build Coastguard Worker
2571*d5c09012SAndroid Build Coastguard Worker    // Immutable. Subnet IP range within the peered network. This is specified
2572*d5c09012SAndroid Build Coastguard Worker    // in CIDR notation with a slash and the subnet prefix size. You can
2573*d5c09012SAndroid Build Coastguard Worker    // optionally specify an IP address before the subnet prefix value. e.g.
2574*d5c09012SAndroid Build Coastguard Worker    // `192.168.0.0/29` would specify an IP range starting at 192.168.0.0 with a
2575*d5c09012SAndroid Build Coastguard Worker    // prefix size of 29 bits.
2576*d5c09012SAndroid Build Coastguard Worker    // `/16` would specify a prefix size of 16 bits, with an automatically
2577*d5c09012SAndroid Build Coastguard Worker    // determined IP within the peered VPC.
2578*d5c09012SAndroid Build Coastguard Worker    // If unspecified, a value of `/24` will be used.
2579*d5c09012SAndroid Build Coastguard Worker    string peered_network_ip_range = 3
2580*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = IMMUTABLE];
2581*d5c09012SAndroid Build Coastguard Worker  }
2582*d5c09012SAndroid Build Coastguard Worker
2583*d5c09012SAndroid Build Coastguard Worker  // Machine configuration for the workers in the pool.
2584*d5c09012SAndroid Build Coastguard Worker  WorkerConfig worker_config = 1;
2585*d5c09012SAndroid Build Coastguard Worker
2586*d5c09012SAndroid Build Coastguard Worker  // Network configuration for the pool.
2587*d5c09012SAndroid Build Coastguard Worker  NetworkConfig network_config = 2;
2588*d5c09012SAndroid Build Coastguard Worker}
2589*d5c09012SAndroid Build Coastguard Worker
2590*d5c09012SAndroid Build Coastguard Worker// Request to create a new `WorkerPool`.
2591*d5c09012SAndroid Build Coastguard Workermessage CreateWorkerPoolRequest {
2592*d5c09012SAndroid Build Coastguard Worker  // Required. The parent resource where this worker pool will be created.
2593*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project}/locations/{location}`.
2594*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
2595*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2596*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2597*d5c09012SAndroid Build Coastguard Worker      type: "locations.googleapis.com/Location"
2598*d5c09012SAndroid Build Coastguard Worker    }
2599*d5c09012SAndroid Build Coastguard Worker  ];
2600*d5c09012SAndroid Build Coastguard Worker
2601*d5c09012SAndroid Build Coastguard Worker  // Required. `WorkerPool` resource to create.
2602*d5c09012SAndroid Build Coastguard Worker  WorkerPool worker_pool = 2 [(google.api.field_behavior) = REQUIRED];
2603*d5c09012SAndroid Build Coastguard Worker
2604*d5c09012SAndroid Build Coastguard Worker  // Required. Immutable. The ID to use for the `WorkerPool`, which will become
2605*d5c09012SAndroid Build Coastguard Worker  // the final component of the resource name.
2606*d5c09012SAndroid Build Coastguard Worker  //
2607*d5c09012SAndroid Build Coastguard Worker  // This value should be 1-63 characters, and valid characters
2608*d5c09012SAndroid Build Coastguard Worker  // are /[a-z][0-9]-/.
2609*d5c09012SAndroid Build Coastguard Worker  string worker_pool_id = 3 [
2610*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = IMMUTABLE,
2611*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED
2612*d5c09012SAndroid Build Coastguard Worker  ];
2613*d5c09012SAndroid Build Coastguard Worker
2614*d5c09012SAndroid Build Coastguard Worker  // If set, validate the request and preview the response, but do not actually
2615*d5c09012SAndroid Build Coastguard Worker  // post it.
2616*d5c09012SAndroid Build Coastguard Worker  bool validate_only = 4;
2617*d5c09012SAndroid Build Coastguard Worker}
2618*d5c09012SAndroid Build Coastguard Worker
2619*d5c09012SAndroid Build Coastguard Worker// Request to get a `WorkerPool` with the specified name.
2620*d5c09012SAndroid Build Coastguard Workermessage GetWorkerPoolRequest {
2621*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the `WorkerPool` to retrieve.
2622*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project}/locations/{location}/workerPools/{workerPool}`.
2623*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
2624*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2625*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2626*d5c09012SAndroid Build Coastguard Worker      type: "cloudbuild.googleapis.com/WorkerPool"
2627*d5c09012SAndroid Build Coastguard Worker    }
2628*d5c09012SAndroid Build Coastguard Worker  ];
2629*d5c09012SAndroid Build Coastguard Worker}
2630*d5c09012SAndroid Build Coastguard Worker
2631*d5c09012SAndroid Build Coastguard Worker// Request to delete a `WorkerPool`.
2632*d5c09012SAndroid Build Coastguard Workermessage DeleteWorkerPoolRequest {
2633*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the `WorkerPool` to delete.
2634*d5c09012SAndroid Build Coastguard Worker  // Format:
2635*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location}/workerPools/{workerPool}`.
2636*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
2637*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2638*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2639*d5c09012SAndroid Build Coastguard Worker      type: "cloudbuild.googleapis.com/WorkerPool"
2640*d5c09012SAndroid Build Coastguard Worker    }
2641*d5c09012SAndroid Build Coastguard Worker  ];
2642*d5c09012SAndroid Build Coastguard Worker
2643*d5c09012SAndroid Build Coastguard Worker  // Optional. If provided, it must match the server's etag on the workerpool
2644*d5c09012SAndroid Build Coastguard Worker  // for the request to be processed.
2645*d5c09012SAndroid Build Coastguard Worker  string etag = 2 [(google.api.field_behavior) = OPTIONAL];
2646*d5c09012SAndroid Build Coastguard Worker
2647*d5c09012SAndroid Build Coastguard Worker  // If set to true, and the `WorkerPool` is not found, the request will succeed
2648*d5c09012SAndroid Build Coastguard Worker  // but no action will be taken on the server.
2649*d5c09012SAndroid Build Coastguard Worker  bool allow_missing = 3;
2650*d5c09012SAndroid Build Coastguard Worker
2651*d5c09012SAndroid Build Coastguard Worker  // If set, validate the request and preview the response, but do not actually
2652*d5c09012SAndroid Build Coastguard Worker  // post it.
2653*d5c09012SAndroid Build Coastguard Worker  bool validate_only = 4;
2654*d5c09012SAndroid Build Coastguard Worker}
2655*d5c09012SAndroid Build Coastguard Worker
2656*d5c09012SAndroid Build Coastguard Worker// Request to update a `WorkerPool`.
2657*d5c09012SAndroid Build Coastguard Workermessage UpdateWorkerPoolRequest {
2658*d5c09012SAndroid Build Coastguard Worker  // Required. The `WorkerPool` to update.
2659*d5c09012SAndroid Build Coastguard Worker  //
2660*d5c09012SAndroid Build Coastguard Worker  // The `name` field is used to identify the `WorkerPool` to update.
2661*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project}/locations/{location}/workerPools/{workerPool}`.
2662*d5c09012SAndroid Build Coastguard Worker  WorkerPool worker_pool = 1 [(google.api.field_behavior) = REQUIRED];
2663*d5c09012SAndroid Build Coastguard Worker
2664*d5c09012SAndroid Build Coastguard Worker  // A mask specifying which fields in `worker_pool` to update.
2665*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 2;
2666*d5c09012SAndroid Build Coastguard Worker
2667*d5c09012SAndroid Build Coastguard Worker  // If set, validate the request and preview the response, but do not actually
2668*d5c09012SAndroid Build Coastguard Worker  // post it.
2669*d5c09012SAndroid Build Coastguard Worker  bool validate_only = 4;
2670*d5c09012SAndroid Build Coastguard Worker}
2671*d5c09012SAndroid Build Coastguard Worker
2672*d5c09012SAndroid Build Coastguard Worker// Request to list `WorkerPool`s.
2673*d5c09012SAndroid Build Coastguard Workermessage ListWorkerPoolsRequest {
2674*d5c09012SAndroid Build Coastguard Worker  // Required. The parent of the collection of `WorkerPools`.
2675*d5c09012SAndroid Build Coastguard Worker  // Format: `projects/{project}/locations/{location}`.
2676*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
2677*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
2678*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
2679*d5c09012SAndroid Build Coastguard Worker      type: "locations.googleapis.com/Location"
2680*d5c09012SAndroid Build Coastguard Worker    }
2681*d5c09012SAndroid Build Coastguard Worker  ];
2682*d5c09012SAndroid Build Coastguard Worker
2683*d5c09012SAndroid Build Coastguard Worker  // The maximum number of `WorkerPool`s to return. The service may return
2684*d5c09012SAndroid Build Coastguard Worker  // fewer than this value. If omitted, the server will use a sensible default.
2685*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2;
2686*d5c09012SAndroid Build Coastguard Worker
2687*d5c09012SAndroid Build Coastguard Worker  // A page token, received from a previous `ListWorkerPools` call. Provide this
2688*d5c09012SAndroid Build Coastguard Worker  // to retrieve the subsequent page.
2689*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
2690*d5c09012SAndroid Build Coastguard Worker}
2691*d5c09012SAndroid Build Coastguard Worker
2692*d5c09012SAndroid Build Coastguard Worker// Response containing existing `WorkerPools`.
2693*d5c09012SAndroid Build Coastguard Workermessage ListWorkerPoolsResponse {
2694*d5c09012SAndroid Build Coastguard Worker  // `WorkerPools` for the specified project.
2695*d5c09012SAndroid Build Coastguard Worker  repeated WorkerPool worker_pools = 1;
2696*d5c09012SAndroid Build Coastguard Worker
2697*d5c09012SAndroid Build Coastguard Worker  // Continuation token used to page through large result sets. Provide this
2698*d5c09012SAndroid Build Coastguard Worker  // value in a subsequent ListWorkerPoolsRequest to return the next page of
2699*d5c09012SAndroid Build Coastguard Worker  // results.
2700*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
2701*d5c09012SAndroid Build Coastguard Worker}
2702*d5c09012SAndroid Build Coastguard Worker
2703*d5c09012SAndroid Build Coastguard Worker// Metadata for the `CreateWorkerPool` operation.
2704*d5c09012SAndroid Build Coastguard Workermessage CreateWorkerPoolOperationMetadata {
2705*d5c09012SAndroid Build Coastguard Worker  // The resource name of the `WorkerPool` to create.
2706*d5c09012SAndroid Build Coastguard Worker  // Format:
2707*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location}/workerPools/{worker_pool}`.
2708*d5c09012SAndroid Build Coastguard Worker  string worker_pool = 1 [(google.api.resource_reference) = {
2709*d5c09012SAndroid Build Coastguard Worker    type: "cloudbuild.googleapis.com/WorkerPool"
2710*d5c09012SAndroid Build Coastguard Worker  }];
2711*d5c09012SAndroid Build Coastguard Worker
2712*d5c09012SAndroid Build Coastguard Worker  // Time the operation was created.
2713*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 2;
2714*d5c09012SAndroid Build Coastguard Worker
2715*d5c09012SAndroid Build Coastguard Worker  // Time the operation was completed.
2716*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp complete_time = 3;
2717*d5c09012SAndroid Build Coastguard Worker}
2718*d5c09012SAndroid Build Coastguard Worker
2719*d5c09012SAndroid Build Coastguard Worker// Metadata for the `UpdateWorkerPool` operation.
2720*d5c09012SAndroid Build Coastguard Workermessage UpdateWorkerPoolOperationMetadata {
2721*d5c09012SAndroid Build Coastguard Worker  // The resource name of the `WorkerPool` being updated.
2722*d5c09012SAndroid Build Coastguard Worker  // Format:
2723*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location}/workerPools/{worker_pool}`.
2724*d5c09012SAndroid Build Coastguard Worker  string worker_pool = 1 [(google.api.resource_reference) = {
2725*d5c09012SAndroid Build Coastguard Worker    type: "cloudbuild.googleapis.com/WorkerPool"
2726*d5c09012SAndroid Build Coastguard Worker  }];
2727*d5c09012SAndroid Build Coastguard Worker
2728*d5c09012SAndroid Build Coastguard Worker  // Time the operation was created.
2729*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 2;
2730*d5c09012SAndroid Build Coastguard Worker
2731*d5c09012SAndroid Build Coastguard Worker  // Time the operation was completed.
2732*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp complete_time = 3;
2733*d5c09012SAndroid Build Coastguard Worker}
2734*d5c09012SAndroid Build Coastguard Worker
2735*d5c09012SAndroid Build Coastguard Worker// Metadata for the `DeleteWorkerPool` operation.
2736*d5c09012SAndroid Build Coastguard Workermessage DeleteWorkerPoolOperationMetadata {
2737*d5c09012SAndroid Build Coastguard Worker  // The resource name of the `WorkerPool` being deleted.
2738*d5c09012SAndroid Build Coastguard Worker  // Format:
2739*d5c09012SAndroid Build Coastguard Worker  // `projects/{project}/locations/{location}/workerPools/{worker_pool}`.
2740*d5c09012SAndroid Build Coastguard Worker  string worker_pool = 1 [(google.api.resource_reference) = {
2741*d5c09012SAndroid Build Coastguard Worker    type: "cloudbuild.googleapis.com/WorkerPool"
2742*d5c09012SAndroid Build Coastguard Worker  }];
2743*d5c09012SAndroid Build Coastguard Worker
2744*d5c09012SAndroid Build Coastguard Worker  // Time the operation was created.
2745*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp create_time = 2;
2746*d5c09012SAndroid Build Coastguard Worker
2747*d5c09012SAndroid Build Coastguard Worker  // Time the operation was completed.
2748*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp complete_time = 3;
2749*d5c09012SAndroid Build Coastguard Worker}
2750