xref: /aosp_15_r20/external/googleapis/google/dataflow/v1beta3/environment.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2022 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.dataflow.v1beta3;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/any.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/struct.proto";
22*d5c09012SAndroid Build Coastguard Worker
23*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.Dataflow.V1Beta3";
24*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/dataflow/apiv1beta3/dataflowpb;dataflowpb";
25*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
26*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "EnvironmentProto";
27*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.dataflow.v1beta3";
28*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\Dataflow\\V1beta3";
29*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::Dataflow::V1beta3";
30*d5c09012SAndroid Build Coastguard Worker
31*d5c09012SAndroid Build Coastguard Worker// Describes the environment in which a Dataflow Job runs.
32*d5c09012SAndroid Build Coastguard Workermessage Environment {
33*d5c09012SAndroid Build Coastguard Worker  // The prefix of the resources the system should use for temporary
34*d5c09012SAndroid Build Coastguard Worker  // storage.  The system will append the suffix "/temp-{JOBNAME} to
35*d5c09012SAndroid Build Coastguard Worker  // this resource prefix, where {JOBNAME} is the value of the
36*d5c09012SAndroid Build Coastguard Worker  // job_name field.  The resulting bucket and object prefix is used
37*d5c09012SAndroid Build Coastguard Worker  // as the prefix of the resources used to store temporary data
38*d5c09012SAndroid Build Coastguard Worker  // needed during the job execution.  NOTE: This will override the
39*d5c09012SAndroid Build Coastguard Worker  // value in taskrunner_settings.
40*d5c09012SAndroid Build Coastguard Worker  // The supported resource type is:
41*d5c09012SAndroid Build Coastguard Worker  //
42*d5c09012SAndroid Build Coastguard Worker  // Google Cloud Storage:
43*d5c09012SAndroid Build Coastguard Worker  //
44*d5c09012SAndroid Build Coastguard Worker  //   storage.googleapis.com/{bucket}/{object}
45*d5c09012SAndroid Build Coastguard Worker  //   bucket.storage.googleapis.com/{object}
46*d5c09012SAndroid Build Coastguard Worker  string temp_storage_prefix = 1;
47*d5c09012SAndroid Build Coastguard Worker
48*d5c09012SAndroid Build Coastguard Worker  // The type of cluster manager API to use.  If unknown or
49*d5c09012SAndroid Build Coastguard Worker  // unspecified, the service will attempt to choose a reasonable
50*d5c09012SAndroid Build Coastguard Worker  // default.  This should be in the form of the API service name,
51*d5c09012SAndroid Build Coastguard Worker  // e.g. "compute.googleapis.com".
52*d5c09012SAndroid Build Coastguard Worker  string cluster_manager_api_service = 2;
53*d5c09012SAndroid Build Coastguard Worker
54*d5c09012SAndroid Build Coastguard Worker  // The list of experiments to enable. This field should be used for SDK
55*d5c09012SAndroid Build Coastguard Worker  // related experiments and not for service related experiments. The proper
56*d5c09012SAndroid Build Coastguard Worker  // field for service related experiments is service_options.
57*d5c09012SAndroid Build Coastguard Worker  repeated string experiments = 3;
58*d5c09012SAndroid Build Coastguard Worker
59*d5c09012SAndroid Build Coastguard Worker  // The list of service options to enable. This field should be used for
60*d5c09012SAndroid Build Coastguard Worker  // service related experiments only. These experiments, when graduating to GA,
61*d5c09012SAndroid Build Coastguard Worker  // should be replaced by dedicated fields or become default (i.e. always on).
62*d5c09012SAndroid Build Coastguard Worker  repeated string service_options = 16;
63*d5c09012SAndroid Build Coastguard Worker
64*d5c09012SAndroid Build Coastguard Worker  // If set, contains the Cloud KMS key identifier used to encrypt data
65*d5c09012SAndroid Build Coastguard Worker  // at rest, AKA a Customer Managed Encryption Key (CMEK).
66*d5c09012SAndroid Build Coastguard Worker  //
67*d5c09012SAndroid Build Coastguard Worker  // Format:
68*d5c09012SAndroid Build Coastguard Worker  //   projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY
69*d5c09012SAndroid Build Coastguard Worker  string service_kms_key_name = 12;
70*d5c09012SAndroid Build Coastguard Worker
71*d5c09012SAndroid Build Coastguard Worker  // The worker pools. At least one "harness" worker pool must be
72*d5c09012SAndroid Build Coastguard Worker  // specified in order for the job to have workers.
73*d5c09012SAndroid Build Coastguard Worker  repeated WorkerPool worker_pools = 4;
74*d5c09012SAndroid Build Coastguard Worker
75*d5c09012SAndroid Build Coastguard Worker  // A description of the process that generated the request.
76*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Struct user_agent = 5;
77*d5c09012SAndroid Build Coastguard Worker
78*d5c09012SAndroid Build Coastguard Worker  // A structure describing which components and their versions of the service
79*d5c09012SAndroid Build Coastguard Worker  // are required in order to run the job.
80*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Struct version = 6;
81*d5c09012SAndroid Build Coastguard Worker
82*d5c09012SAndroid Build Coastguard Worker  // The dataset for the current project where various workflow
83*d5c09012SAndroid Build Coastguard Worker  // related tables are stored.
84*d5c09012SAndroid Build Coastguard Worker  //
85*d5c09012SAndroid Build Coastguard Worker  // The supported resource type is:
86*d5c09012SAndroid Build Coastguard Worker  //
87*d5c09012SAndroid Build Coastguard Worker  // Google BigQuery:
88*d5c09012SAndroid Build Coastguard Worker  //   bigquery.googleapis.com/{dataset}
89*d5c09012SAndroid Build Coastguard Worker  string dataset = 7;
90*d5c09012SAndroid Build Coastguard Worker
91*d5c09012SAndroid Build Coastguard Worker  // The Cloud Dataflow SDK pipeline options specified by the user. These
92*d5c09012SAndroid Build Coastguard Worker  // options are passed through the service and are used to recreate the
93*d5c09012SAndroid Build Coastguard Worker  // SDK pipeline options on the worker in a language agnostic and platform
94*d5c09012SAndroid Build Coastguard Worker  // independent way.
95*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Struct sdk_pipeline_options = 8;
96*d5c09012SAndroid Build Coastguard Worker
97*d5c09012SAndroid Build Coastguard Worker  // Experimental settings.
98*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Any internal_experiments = 9;
99*d5c09012SAndroid Build Coastguard Worker
100*d5c09012SAndroid Build Coastguard Worker  // Identity to run virtual machines as. Defaults to the default account.
101*d5c09012SAndroid Build Coastguard Worker  string service_account_email = 10;
102*d5c09012SAndroid Build Coastguard Worker
103*d5c09012SAndroid Build Coastguard Worker  // Which Flexible Resource Scheduling mode to run in.
104*d5c09012SAndroid Build Coastguard Worker  FlexResourceSchedulingGoal flex_resource_scheduling_goal = 11;
105*d5c09012SAndroid Build Coastguard Worker
106*d5c09012SAndroid Build Coastguard Worker  // The Compute Engine region
107*d5c09012SAndroid Build Coastguard Worker  // (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in
108*d5c09012SAndroid Build Coastguard Worker  // which worker processing should occur, e.g. "us-west1". Mutually exclusive
109*d5c09012SAndroid Build Coastguard Worker  // with worker_zone. If neither worker_region nor worker_zone is specified,
110*d5c09012SAndroid Build Coastguard Worker  // default to the control plane's region.
111*d5c09012SAndroid Build Coastguard Worker  string worker_region = 13;
112*d5c09012SAndroid Build Coastguard Worker
113*d5c09012SAndroid Build Coastguard Worker  // The Compute Engine zone
114*d5c09012SAndroid Build Coastguard Worker  // (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in
115*d5c09012SAndroid Build Coastguard Worker  // which worker processing should occur, e.g. "us-west1-a". Mutually exclusive
116*d5c09012SAndroid Build Coastguard Worker  // with worker_region. If neither worker_region nor worker_zone is specified,
117*d5c09012SAndroid Build Coastguard Worker  // a zone in the control plane's region is chosen based on available capacity.
118*d5c09012SAndroid Build Coastguard Worker  string worker_zone = 14;
119*d5c09012SAndroid Build Coastguard Worker
120*d5c09012SAndroid Build Coastguard Worker  // Output only. The shuffle mode used for the job.
121*d5c09012SAndroid Build Coastguard Worker  ShuffleMode shuffle_mode = 15 [(google.api.field_behavior) = OUTPUT_ONLY];
122*d5c09012SAndroid Build Coastguard Worker
123*d5c09012SAndroid Build Coastguard Worker  // Any debugging options to be supplied to the job.
124*d5c09012SAndroid Build Coastguard Worker  DebugOptions debug_options = 17;
125*d5c09012SAndroid Build Coastguard Worker}
126*d5c09012SAndroid Build Coastguard Worker
127*d5c09012SAndroid Build Coastguard Worker// The packages that must be installed in order for a worker to run the
128*d5c09012SAndroid Build Coastguard Worker// steps of the Cloud Dataflow job that will be assigned to its worker
129*d5c09012SAndroid Build Coastguard Worker// pool.
130*d5c09012SAndroid Build Coastguard Worker//
131*d5c09012SAndroid Build Coastguard Worker// This is the mechanism by which the Cloud Dataflow SDK causes code to
132*d5c09012SAndroid Build Coastguard Worker// be loaded onto the workers. For example, the Cloud Dataflow Java SDK
133*d5c09012SAndroid Build Coastguard Worker// might use this to install jars containing the user's code and all of the
134*d5c09012SAndroid Build Coastguard Worker// various dependencies (libraries, data files, etc.) required in order
135*d5c09012SAndroid Build Coastguard Worker// for that code to run.
136*d5c09012SAndroid Build Coastguard Workermessage Package {
137*d5c09012SAndroid Build Coastguard Worker  // The name of the package.
138*d5c09012SAndroid Build Coastguard Worker  string name = 1;
139*d5c09012SAndroid Build Coastguard Worker
140*d5c09012SAndroid Build Coastguard Worker  // The resource to read the package from. The supported resource type is:
141*d5c09012SAndroid Build Coastguard Worker  //
142*d5c09012SAndroid Build Coastguard Worker  // Google Cloud Storage:
143*d5c09012SAndroid Build Coastguard Worker  //
144*d5c09012SAndroid Build Coastguard Worker  //   storage.googleapis.com/{bucket}
145*d5c09012SAndroid Build Coastguard Worker  //   bucket.storage.googleapis.com/
146*d5c09012SAndroid Build Coastguard Worker  string location = 2;
147*d5c09012SAndroid Build Coastguard Worker}
148*d5c09012SAndroid Build Coastguard Worker
149*d5c09012SAndroid Build Coastguard Worker// Specifies the processing model used by a
150*d5c09012SAndroid Build Coastguard Worker// [google.dataflow.v1beta3.Job], which determines the way the Job is
151*d5c09012SAndroid Build Coastguard Worker// managed by the Cloud Dataflow service (how workers are scheduled, how
152*d5c09012SAndroid Build Coastguard Worker// inputs are sharded, etc).
153*d5c09012SAndroid Build Coastguard Workerenum JobType {
154*d5c09012SAndroid Build Coastguard Worker  // The type of the job is unspecified, or unknown.
155*d5c09012SAndroid Build Coastguard Worker  JOB_TYPE_UNKNOWN = 0;
156*d5c09012SAndroid Build Coastguard Worker
157*d5c09012SAndroid Build Coastguard Worker  // A batch job with a well-defined end point: data is read, data is
158*d5c09012SAndroid Build Coastguard Worker  // processed, data is written, and the job is done.
159*d5c09012SAndroid Build Coastguard Worker  JOB_TYPE_BATCH = 1;
160*d5c09012SAndroid Build Coastguard Worker
161*d5c09012SAndroid Build Coastguard Worker  // A continuously streaming job with no end: data is read,
162*d5c09012SAndroid Build Coastguard Worker  // processed, and written continuously.
163*d5c09012SAndroid Build Coastguard Worker  JOB_TYPE_STREAMING = 2;
164*d5c09012SAndroid Build Coastguard Worker}
165*d5c09012SAndroid Build Coastguard Worker
166*d5c09012SAndroid Build Coastguard Worker// Specifies the resource to optimize for in Flexible Resource Scheduling.
167*d5c09012SAndroid Build Coastguard Workerenum FlexResourceSchedulingGoal {
168*d5c09012SAndroid Build Coastguard Worker  // Run in the default mode.
169*d5c09012SAndroid Build Coastguard Worker  FLEXRS_UNSPECIFIED = 0;
170*d5c09012SAndroid Build Coastguard Worker
171*d5c09012SAndroid Build Coastguard Worker  // Optimize for lower execution time.
172*d5c09012SAndroid Build Coastguard Worker  FLEXRS_SPEED_OPTIMIZED = 1;
173*d5c09012SAndroid Build Coastguard Worker
174*d5c09012SAndroid Build Coastguard Worker  // Optimize for lower cost.
175*d5c09012SAndroid Build Coastguard Worker  FLEXRS_COST_OPTIMIZED = 2;
176*d5c09012SAndroid Build Coastguard Worker}
177*d5c09012SAndroid Build Coastguard Worker
178*d5c09012SAndroid Build Coastguard Worker// Describes the data disk used by a workflow job.
179*d5c09012SAndroid Build Coastguard Workermessage Disk {
180*d5c09012SAndroid Build Coastguard Worker  // Size of disk in GB.  If zero or unspecified, the service will
181*d5c09012SAndroid Build Coastguard Worker  // attempt to choose a reasonable default.
182*d5c09012SAndroid Build Coastguard Worker  int32 size_gb = 1;
183*d5c09012SAndroid Build Coastguard Worker
184*d5c09012SAndroid Build Coastguard Worker  // Disk storage type, as defined by Google Compute Engine.  This
185*d5c09012SAndroid Build Coastguard Worker  // must be a disk type appropriate to the project and zone in which
186*d5c09012SAndroid Build Coastguard Worker  // the workers will run.  If unknown or unspecified, the service
187*d5c09012SAndroid Build Coastguard Worker  // will attempt to choose a reasonable default.
188*d5c09012SAndroid Build Coastguard Worker  //
189*d5c09012SAndroid Build Coastguard Worker  // For example, the standard persistent disk type is a resource name
190*d5c09012SAndroid Build Coastguard Worker  // typically ending in "pd-standard".  If SSD persistent disks are
191*d5c09012SAndroid Build Coastguard Worker  // available, the resource name typically ends with "pd-ssd".  The
192*d5c09012SAndroid Build Coastguard Worker  // actual valid values are defined the Google Compute Engine API,
193*d5c09012SAndroid Build Coastguard Worker  // not by the Cloud Dataflow API; consult the Google Compute Engine
194*d5c09012SAndroid Build Coastguard Worker  // documentation for more information about determining the set of
195*d5c09012SAndroid Build Coastguard Worker  // available disk types for a particular project and zone.
196*d5c09012SAndroid Build Coastguard Worker  //
197*d5c09012SAndroid Build Coastguard Worker  // Google Compute Engine Disk types are local to a particular
198*d5c09012SAndroid Build Coastguard Worker  // project in a particular zone, and so the resource name will
199*d5c09012SAndroid Build Coastguard Worker  // typically look something like this:
200*d5c09012SAndroid Build Coastguard Worker  //
201*d5c09012SAndroid Build Coastguard Worker  // compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
202*d5c09012SAndroid Build Coastguard Worker  string disk_type = 2;
203*d5c09012SAndroid Build Coastguard Worker
204*d5c09012SAndroid Build Coastguard Worker  // Directory in a VM where disk is mounted.
205*d5c09012SAndroid Build Coastguard Worker  string mount_point = 3;
206*d5c09012SAndroid Build Coastguard Worker}
207*d5c09012SAndroid Build Coastguard Worker
208*d5c09012SAndroid Build Coastguard Worker// Provides data to pass through to the worker harness.
209*d5c09012SAndroid Build Coastguard Workermessage WorkerSettings {
210*d5c09012SAndroid Build Coastguard Worker  // The base URL for accessing Google Cloud APIs.
211*d5c09012SAndroid Build Coastguard Worker  //
212*d5c09012SAndroid Build Coastguard Worker  // When workers access Google Cloud APIs, they logically do so via
213*d5c09012SAndroid Build Coastguard Worker  // relative URLs.  If this field is specified, it supplies the base
214*d5c09012SAndroid Build Coastguard Worker  // URL to use for resolving these relative URLs.  The normative
215*d5c09012SAndroid Build Coastguard Worker  // algorithm used is defined by RFC 1808, "Relative Uniform Resource
216*d5c09012SAndroid Build Coastguard Worker  // Locators".
217*d5c09012SAndroid Build Coastguard Worker  //
218*d5c09012SAndroid Build Coastguard Worker  // If not specified, the default value is "http://www.googleapis.com/"
219*d5c09012SAndroid Build Coastguard Worker  string base_url = 1;
220*d5c09012SAndroid Build Coastguard Worker
221*d5c09012SAndroid Build Coastguard Worker  // Whether to send work progress updates to the service.
222*d5c09012SAndroid Build Coastguard Worker  bool reporting_enabled = 2;
223*d5c09012SAndroid Build Coastguard Worker
224*d5c09012SAndroid Build Coastguard Worker  // The Cloud Dataflow service path relative to the root URL, for example,
225*d5c09012SAndroid Build Coastguard Worker  // "dataflow/v1b3/projects".
226*d5c09012SAndroid Build Coastguard Worker  string service_path = 3;
227*d5c09012SAndroid Build Coastguard Worker
228*d5c09012SAndroid Build Coastguard Worker  // The Shuffle service path relative to the root URL, for example,
229*d5c09012SAndroid Build Coastguard Worker  // "shuffle/v1beta1".
230*d5c09012SAndroid Build Coastguard Worker  string shuffle_service_path = 4;
231*d5c09012SAndroid Build Coastguard Worker
232*d5c09012SAndroid Build Coastguard Worker  // The ID of the worker running this pipeline.
233*d5c09012SAndroid Build Coastguard Worker  string worker_id = 5;
234*d5c09012SAndroid Build Coastguard Worker
235*d5c09012SAndroid Build Coastguard Worker  // The prefix of the resources the system should use for temporary
236*d5c09012SAndroid Build Coastguard Worker  // storage.
237*d5c09012SAndroid Build Coastguard Worker  //
238*d5c09012SAndroid Build Coastguard Worker  // The supported resource type is:
239*d5c09012SAndroid Build Coastguard Worker  //
240*d5c09012SAndroid Build Coastguard Worker  // Google Cloud Storage:
241*d5c09012SAndroid Build Coastguard Worker  //
242*d5c09012SAndroid Build Coastguard Worker  //   storage.googleapis.com/{bucket}/{object}
243*d5c09012SAndroid Build Coastguard Worker  //   bucket.storage.googleapis.com/{object}
244*d5c09012SAndroid Build Coastguard Worker  string temp_storage_prefix = 6;
245*d5c09012SAndroid Build Coastguard Worker}
246*d5c09012SAndroid Build Coastguard Worker
247*d5c09012SAndroid Build Coastguard Worker// Taskrunner configuration settings.
248*d5c09012SAndroid Build Coastguard Workermessage TaskRunnerSettings {
249*d5c09012SAndroid Build Coastguard Worker  // The UNIX user ID on the worker VM to use for tasks launched by
250*d5c09012SAndroid Build Coastguard Worker  // taskrunner; e.g. "root".
251*d5c09012SAndroid Build Coastguard Worker  string task_user = 1;
252*d5c09012SAndroid Build Coastguard Worker
253*d5c09012SAndroid Build Coastguard Worker  // The UNIX group ID on the worker VM to use for tasks launched by
254*d5c09012SAndroid Build Coastguard Worker  // taskrunner; e.g. "wheel".
255*d5c09012SAndroid Build Coastguard Worker  string task_group = 2;
256*d5c09012SAndroid Build Coastguard Worker
257*d5c09012SAndroid Build Coastguard Worker  // The OAuth2 scopes to be requested by the taskrunner in order to
258*d5c09012SAndroid Build Coastguard Worker  // access the Cloud Dataflow API.
259*d5c09012SAndroid Build Coastguard Worker  repeated string oauth_scopes = 3;
260*d5c09012SAndroid Build Coastguard Worker
261*d5c09012SAndroid Build Coastguard Worker  // The base URL for the taskrunner to use when accessing Google Cloud APIs.
262*d5c09012SAndroid Build Coastguard Worker  //
263*d5c09012SAndroid Build Coastguard Worker  // When workers access Google Cloud APIs, they logically do so via
264*d5c09012SAndroid Build Coastguard Worker  // relative URLs.  If this field is specified, it supplies the base
265*d5c09012SAndroid Build Coastguard Worker  // URL to use for resolving these relative URLs.  The normative
266*d5c09012SAndroid Build Coastguard Worker  // algorithm used is defined by RFC 1808, "Relative Uniform Resource
267*d5c09012SAndroid Build Coastguard Worker  // Locators".
268*d5c09012SAndroid Build Coastguard Worker  //
269*d5c09012SAndroid Build Coastguard Worker  // If not specified, the default value is "http://www.googleapis.com/"
270*d5c09012SAndroid Build Coastguard Worker  string base_url = 4;
271*d5c09012SAndroid Build Coastguard Worker
272*d5c09012SAndroid Build Coastguard Worker  // The API version of endpoint, e.g. "v1b3"
273*d5c09012SAndroid Build Coastguard Worker  string dataflow_api_version = 5;
274*d5c09012SAndroid Build Coastguard Worker
275*d5c09012SAndroid Build Coastguard Worker  // The settings to pass to the parallel worker harness.
276*d5c09012SAndroid Build Coastguard Worker  WorkerSettings parallel_worker_settings = 6;
277*d5c09012SAndroid Build Coastguard Worker
278*d5c09012SAndroid Build Coastguard Worker  // The location on the worker for task-specific subdirectories.
279*d5c09012SAndroid Build Coastguard Worker  string base_task_dir = 7;
280*d5c09012SAndroid Build Coastguard Worker
281*d5c09012SAndroid Build Coastguard Worker  // Whether to continue taskrunner if an exception is hit.
282*d5c09012SAndroid Build Coastguard Worker  bool continue_on_exception = 8;
283*d5c09012SAndroid Build Coastguard Worker
284*d5c09012SAndroid Build Coastguard Worker  // Whether to send taskrunner log info to Google Compute Engine VM serial
285*d5c09012SAndroid Build Coastguard Worker  // console.
286*d5c09012SAndroid Build Coastguard Worker  bool log_to_serialconsole = 9;
287*d5c09012SAndroid Build Coastguard Worker
288*d5c09012SAndroid Build Coastguard Worker  // Whether to also send taskrunner log info to stderr.
289*d5c09012SAndroid Build Coastguard Worker  bool alsologtostderr = 10;
290*d5c09012SAndroid Build Coastguard Worker
291*d5c09012SAndroid Build Coastguard Worker  // Indicates where to put logs.  If this is not specified, the logs
292*d5c09012SAndroid Build Coastguard Worker  // will not be uploaded.
293*d5c09012SAndroid Build Coastguard Worker  //
294*d5c09012SAndroid Build Coastguard Worker  // The supported resource type is:
295*d5c09012SAndroid Build Coastguard Worker  //
296*d5c09012SAndroid Build Coastguard Worker  // Google Cloud Storage:
297*d5c09012SAndroid Build Coastguard Worker  //   storage.googleapis.com/{bucket}/{object}
298*d5c09012SAndroid Build Coastguard Worker  //   bucket.storage.googleapis.com/{object}
299*d5c09012SAndroid Build Coastguard Worker  string log_upload_location = 11;
300*d5c09012SAndroid Build Coastguard Worker
301*d5c09012SAndroid Build Coastguard Worker  // The directory on the VM to store logs.
302*d5c09012SAndroid Build Coastguard Worker  string log_dir = 12;
303*d5c09012SAndroid Build Coastguard Worker
304*d5c09012SAndroid Build Coastguard Worker  // The prefix of the resources the taskrunner should use for
305*d5c09012SAndroid Build Coastguard Worker  // temporary storage.
306*d5c09012SAndroid Build Coastguard Worker  //
307*d5c09012SAndroid Build Coastguard Worker  // The supported resource type is:
308*d5c09012SAndroid Build Coastguard Worker  //
309*d5c09012SAndroid Build Coastguard Worker  // Google Cloud Storage:
310*d5c09012SAndroid Build Coastguard Worker  //   storage.googleapis.com/{bucket}/{object}
311*d5c09012SAndroid Build Coastguard Worker  //   bucket.storage.googleapis.com/{object}
312*d5c09012SAndroid Build Coastguard Worker  string temp_storage_prefix = 13;
313*d5c09012SAndroid Build Coastguard Worker
314*d5c09012SAndroid Build Coastguard Worker  // The command to launch the worker harness.
315*d5c09012SAndroid Build Coastguard Worker  string harness_command = 14;
316*d5c09012SAndroid Build Coastguard Worker
317*d5c09012SAndroid Build Coastguard Worker  // The file to store the workflow in.
318*d5c09012SAndroid Build Coastguard Worker  string workflow_file_name = 15;
319*d5c09012SAndroid Build Coastguard Worker
320*d5c09012SAndroid Build Coastguard Worker  // The file to store preprocessing commands in.
321*d5c09012SAndroid Build Coastguard Worker  string commandlines_file_name = 16;
322*d5c09012SAndroid Build Coastguard Worker
323*d5c09012SAndroid Build Coastguard Worker  // The ID string of the VM.
324*d5c09012SAndroid Build Coastguard Worker  string vm_id = 17;
325*d5c09012SAndroid Build Coastguard Worker
326*d5c09012SAndroid Build Coastguard Worker  // The suggested backend language.
327*d5c09012SAndroid Build Coastguard Worker  string language_hint = 18;
328*d5c09012SAndroid Build Coastguard Worker
329*d5c09012SAndroid Build Coastguard Worker  // The streaming worker main class name.
330*d5c09012SAndroid Build Coastguard Worker  string streaming_worker_main_class = 19;
331*d5c09012SAndroid Build Coastguard Worker}
332*d5c09012SAndroid Build Coastguard Worker
333*d5c09012SAndroid Build Coastguard Worker// Specifies what happens to a resource when a Cloud Dataflow
334*d5c09012SAndroid Build Coastguard Worker// [google.dataflow.v1beta3.Job][google.dataflow.v1beta3.Job] has completed.
335*d5c09012SAndroid Build Coastguard Workerenum TeardownPolicy {
336*d5c09012SAndroid Build Coastguard Worker  // The teardown policy isn't specified, or is unknown.
337*d5c09012SAndroid Build Coastguard Worker  TEARDOWN_POLICY_UNKNOWN = 0;
338*d5c09012SAndroid Build Coastguard Worker
339*d5c09012SAndroid Build Coastguard Worker  // Always teardown the resource.
340*d5c09012SAndroid Build Coastguard Worker  TEARDOWN_ALWAYS = 1;
341*d5c09012SAndroid Build Coastguard Worker
342*d5c09012SAndroid Build Coastguard Worker  // Teardown the resource on success. This is useful for debugging
343*d5c09012SAndroid Build Coastguard Worker  // failures.
344*d5c09012SAndroid Build Coastguard Worker  TEARDOWN_ON_SUCCESS = 2;
345*d5c09012SAndroid Build Coastguard Worker
346*d5c09012SAndroid Build Coastguard Worker  // Never teardown the resource. This is useful for debugging and
347*d5c09012SAndroid Build Coastguard Worker  // development.
348*d5c09012SAndroid Build Coastguard Worker  TEARDOWN_NEVER = 3;
349*d5c09012SAndroid Build Coastguard Worker}
350*d5c09012SAndroid Build Coastguard Worker
351*d5c09012SAndroid Build Coastguard Worker// The default set of packages to be staged on a pool of workers.
352*d5c09012SAndroid Build Coastguard Workerenum DefaultPackageSet {
353*d5c09012SAndroid Build Coastguard Worker  // The default set of packages to stage is unknown, or unspecified.
354*d5c09012SAndroid Build Coastguard Worker  DEFAULT_PACKAGE_SET_UNKNOWN = 0;
355*d5c09012SAndroid Build Coastguard Worker
356*d5c09012SAndroid Build Coastguard Worker  // Indicates that no packages should be staged at the worker unless
357*d5c09012SAndroid Build Coastguard Worker  // explicitly specified by the job.
358*d5c09012SAndroid Build Coastguard Worker  DEFAULT_PACKAGE_SET_NONE = 1;
359*d5c09012SAndroid Build Coastguard Worker
360*d5c09012SAndroid Build Coastguard Worker  // Stage packages typically useful to workers written in Java.
361*d5c09012SAndroid Build Coastguard Worker  DEFAULT_PACKAGE_SET_JAVA = 2;
362*d5c09012SAndroid Build Coastguard Worker
363*d5c09012SAndroid Build Coastguard Worker  // Stage packages typically useful to workers written in Python.
364*d5c09012SAndroid Build Coastguard Worker  DEFAULT_PACKAGE_SET_PYTHON = 3;
365*d5c09012SAndroid Build Coastguard Worker}
366*d5c09012SAndroid Build Coastguard Worker
367*d5c09012SAndroid Build Coastguard Worker// Specifies the algorithm used to determine the number of worker
368*d5c09012SAndroid Build Coastguard Worker// processes to run at any given point in time, based on the amount of
369*d5c09012SAndroid Build Coastguard Worker// data left to process, the number of workers, and how quickly
370*d5c09012SAndroid Build Coastguard Worker// existing workers are processing data.
371*d5c09012SAndroid Build Coastguard Workerenum AutoscalingAlgorithm {
372*d5c09012SAndroid Build Coastguard Worker  // The algorithm is unknown, or unspecified.
373*d5c09012SAndroid Build Coastguard Worker  AUTOSCALING_ALGORITHM_UNKNOWN = 0;
374*d5c09012SAndroid Build Coastguard Worker
375*d5c09012SAndroid Build Coastguard Worker  // Disable autoscaling.
376*d5c09012SAndroid Build Coastguard Worker  AUTOSCALING_ALGORITHM_NONE = 1;
377*d5c09012SAndroid Build Coastguard Worker
378*d5c09012SAndroid Build Coastguard Worker  // Increase worker count over time to reduce job execution time.
379*d5c09012SAndroid Build Coastguard Worker  AUTOSCALING_ALGORITHM_BASIC = 2;
380*d5c09012SAndroid Build Coastguard Worker}
381*d5c09012SAndroid Build Coastguard Worker
382*d5c09012SAndroid Build Coastguard Worker// Settings for WorkerPool autoscaling.
383*d5c09012SAndroid Build Coastguard Workermessage AutoscalingSettings {
384*d5c09012SAndroid Build Coastguard Worker  // The algorithm to use for autoscaling.
385*d5c09012SAndroid Build Coastguard Worker  AutoscalingAlgorithm algorithm = 1;
386*d5c09012SAndroid Build Coastguard Worker
387*d5c09012SAndroid Build Coastguard Worker  // The maximum number of workers to cap scaling at.
388*d5c09012SAndroid Build Coastguard Worker  int32 max_num_workers = 2;
389*d5c09012SAndroid Build Coastguard Worker}
390*d5c09012SAndroid Build Coastguard Worker
391*d5c09012SAndroid Build Coastguard Worker// Specifies how IP addresses should be allocated to the worker machines.
392*d5c09012SAndroid Build Coastguard Workerenum WorkerIPAddressConfiguration {
393*d5c09012SAndroid Build Coastguard Worker  // The configuration is unknown, or unspecified.
394*d5c09012SAndroid Build Coastguard Worker  WORKER_IP_UNSPECIFIED = 0;
395*d5c09012SAndroid Build Coastguard Worker
396*d5c09012SAndroid Build Coastguard Worker  // Workers should have public IP addresses.
397*d5c09012SAndroid Build Coastguard Worker  WORKER_IP_PUBLIC = 1;
398*d5c09012SAndroid Build Coastguard Worker
399*d5c09012SAndroid Build Coastguard Worker  // Workers should have private IP addresses.
400*d5c09012SAndroid Build Coastguard Worker  WORKER_IP_PRIVATE = 2;
401*d5c09012SAndroid Build Coastguard Worker}
402*d5c09012SAndroid Build Coastguard Worker
403*d5c09012SAndroid Build Coastguard Worker// Defines a SDK harness container for executing Dataflow pipelines.
404*d5c09012SAndroid Build Coastguard Workermessage SdkHarnessContainerImage {
405*d5c09012SAndroid Build Coastguard Worker  // A docker container image that resides in Google Container Registry.
406*d5c09012SAndroid Build Coastguard Worker  string container_image = 1;
407*d5c09012SAndroid Build Coastguard Worker
408*d5c09012SAndroid Build Coastguard Worker  // If true, recommends the Dataflow service to use only one core per SDK
409*d5c09012SAndroid Build Coastguard Worker  // container instance with this image. If false (or unset) recommends using
410*d5c09012SAndroid Build Coastguard Worker  // more than one core per SDK container instance with this image for
411*d5c09012SAndroid Build Coastguard Worker  // efficiency. Note that Dataflow service may choose to override this property
412*d5c09012SAndroid Build Coastguard Worker  // if needed.
413*d5c09012SAndroid Build Coastguard Worker  bool use_single_core_per_container = 2;
414*d5c09012SAndroid Build Coastguard Worker
415*d5c09012SAndroid Build Coastguard Worker  // Environment ID for the Beam runner API proto Environment that corresponds
416*d5c09012SAndroid Build Coastguard Worker  // to the current SDK Harness.
417*d5c09012SAndroid Build Coastguard Worker  string environment_id = 3;
418*d5c09012SAndroid Build Coastguard Worker
419*d5c09012SAndroid Build Coastguard Worker  // The set of capabilities enumerated in the above Environment proto. See also
420*d5c09012SAndroid Build Coastguard Worker  // https://github.com/apache/beam/blob/master/model/pipeline/src/main/proto/beam_runner_api.proto
421*d5c09012SAndroid Build Coastguard Worker  repeated string capabilities = 4;
422*d5c09012SAndroid Build Coastguard Worker}
423*d5c09012SAndroid Build Coastguard Worker
424*d5c09012SAndroid Build Coastguard Worker// Describes one particular pool of Cloud Dataflow workers to be
425*d5c09012SAndroid Build Coastguard Worker// instantiated by the Cloud Dataflow service in order to perform the
426*d5c09012SAndroid Build Coastguard Worker// computations required by a job.  Note that a workflow job may use
427*d5c09012SAndroid Build Coastguard Worker// multiple pools, in order to match the various computational
428*d5c09012SAndroid Build Coastguard Worker// requirements of the various stages of the job.
429*d5c09012SAndroid Build Coastguard Workermessage WorkerPool {
430*d5c09012SAndroid Build Coastguard Worker  // The kind of the worker pool; currently only `harness` and `shuffle`
431*d5c09012SAndroid Build Coastguard Worker  // are supported.
432*d5c09012SAndroid Build Coastguard Worker  string kind = 1;
433*d5c09012SAndroid Build Coastguard Worker
434*d5c09012SAndroid Build Coastguard Worker  // Number of Google Compute Engine workers in this pool needed to
435*d5c09012SAndroid Build Coastguard Worker  // execute the job.  If zero or unspecified, the service will
436*d5c09012SAndroid Build Coastguard Worker  // attempt to choose a reasonable default.
437*d5c09012SAndroid Build Coastguard Worker  int32 num_workers = 2;
438*d5c09012SAndroid Build Coastguard Worker
439*d5c09012SAndroid Build Coastguard Worker  // Packages to be installed on workers.
440*d5c09012SAndroid Build Coastguard Worker  repeated Package packages = 3;
441*d5c09012SAndroid Build Coastguard Worker
442*d5c09012SAndroid Build Coastguard Worker  // The default package set to install.  This allows the service to
443*d5c09012SAndroid Build Coastguard Worker  // select a default set of packages which are useful to worker
444*d5c09012SAndroid Build Coastguard Worker  // harnesses written in a particular language.
445*d5c09012SAndroid Build Coastguard Worker  DefaultPackageSet default_package_set = 4;
446*d5c09012SAndroid Build Coastguard Worker
447*d5c09012SAndroid Build Coastguard Worker  // Machine type (e.g. "n1-standard-1").  If empty or unspecified, the
448*d5c09012SAndroid Build Coastguard Worker  // service will attempt to choose a reasonable default.
449*d5c09012SAndroid Build Coastguard Worker  string machine_type = 5;
450*d5c09012SAndroid Build Coastguard Worker
451*d5c09012SAndroid Build Coastguard Worker  // Sets the policy for determining when to turndown worker pool.
452*d5c09012SAndroid Build Coastguard Worker  // Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
453*d5c09012SAndroid Build Coastguard Worker  // `TEARDOWN_NEVER`.
454*d5c09012SAndroid Build Coastguard Worker  // `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
455*d5c09012SAndroid Build Coastguard Worker  // the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
456*d5c09012SAndroid Build Coastguard Worker  // if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
457*d5c09012SAndroid Build Coastguard Worker  // down.
458*d5c09012SAndroid Build Coastguard Worker  //
459*d5c09012SAndroid Build Coastguard Worker  // If the workers are not torn down by the service, they will
460*d5c09012SAndroid Build Coastguard Worker  // continue to run and use Google Compute Engine VM resources in the
461*d5c09012SAndroid Build Coastguard Worker  // user's project until they are explicitly terminated by the user.
462*d5c09012SAndroid Build Coastguard Worker  // Because of this, Google recommends using the `TEARDOWN_ALWAYS`
463*d5c09012SAndroid Build Coastguard Worker  // policy except for small, manually supervised test jobs.
464*d5c09012SAndroid Build Coastguard Worker  //
465*d5c09012SAndroid Build Coastguard Worker  // If unknown or unspecified, the service will attempt to choose a reasonable
466*d5c09012SAndroid Build Coastguard Worker  // default.
467*d5c09012SAndroid Build Coastguard Worker  TeardownPolicy teardown_policy = 6;
468*d5c09012SAndroid Build Coastguard Worker
469*d5c09012SAndroid Build Coastguard Worker  // Size of root disk for VMs, in GB.  If zero or unspecified, the service will
470*d5c09012SAndroid Build Coastguard Worker  // attempt to choose a reasonable default.
471*d5c09012SAndroid Build Coastguard Worker  int32 disk_size_gb = 7;
472*d5c09012SAndroid Build Coastguard Worker
473*d5c09012SAndroid Build Coastguard Worker  // Type of root disk for VMs.  If empty or unspecified, the service will
474*d5c09012SAndroid Build Coastguard Worker  // attempt to choose a reasonable default.
475*d5c09012SAndroid Build Coastguard Worker  string disk_type = 16;
476*d5c09012SAndroid Build Coastguard Worker
477*d5c09012SAndroid Build Coastguard Worker  // Fully qualified source image for disks.
478*d5c09012SAndroid Build Coastguard Worker  string disk_source_image = 8;
479*d5c09012SAndroid Build Coastguard Worker
480*d5c09012SAndroid Build Coastguard Worker  // Zone to run the worker pools in.  If empty or unspecified, the service
481*d5c09012SAndroid Build Coastguard Worker  // will attempt to choose a reasonable default.
482*d5c09012SAndroid Build Coastguard Worker  string zone = 9;
483*d5c09012SAndroid Build Coastguard Worker
484*d5c09012SAndroid Build Coastguard Worker  // Settings passed through to Google Compute Engine workers when
485*d5c09012SAndroid Build Coastguard Worker  // using the standard Dataflow task runner.  Users should ignore
486*d5c09012SAndroid Build Coastguard Worker  // this field.
487*d5c09012SAndroid Build Coastguard Worker  TaskRunnerSettings taskrunner_settings = 10;
488*d5c09012SAndroid Build Coastguard Worker
489*d5c09012SAndroid Build Coastguard Worker  // The action to take on host maintenance, as defined by the Google
490*d5c09012SAndroid Build Coastguard Worker  // Compute Engine API.
491*d5c09012SAndroid Build Coastguard Worker  string on_host_maintenance = 11;
492*d5c09012SAndroid Build Coastguard Worker
493*d5c09012SAndroid Build Coastguard Worker  // Data disks that are used by a VM in this workflow.
494*d5c09012SAndroid Build Coastguard Worker  repeated Disk data_disks = 12;
495*d5c09012SAndroid Build Coastguard Worker
496*d5c09012SAndroid Build Coastguard Worker  // Metadata to set on the Google Compute Engine VMs.
497*d5c09012SAndroid Build Coastguard Worker  map<string, string> metadata = 13;
498*d5c09012SAndroid Build Coastguard Worker
499*d5c09012SAndroid Build Coastguard Worker  // Settings for autoscaling of this WorkerPool.
500*d5c09012SAndroid Build Coastguard Worker  AutoscalingSettings autoscaling_settings = 14;
501*d5c09012SAndroid Build Coastguard Worker
502*d5c09012SAndroid Build Coastguard Worker  // Extra arguments for this worker pool.
503*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Any pool_args = 15;
504*d5c09012SAndroid Build Coastguard Worker
505*d5c09012SAndroid Build Coastguard Worker  // Network to which VMs will be assigned.  If empty or unspecified,
506*d5c09012SAndroid Build Coastguard Worker  // the service will use the network "default".
507*d5c09012SAndroid Build Coastguard Worker  string network = 17;
508*d5c09012SAndroid Build Coastguard Worker
509*d5c09012SAndroid Build Coastguard Worker  // Subnetwork to which VMs will be assigned, if desired.  Expected to be of
510*d5c09012SAndroid Build Coastguard Worker  // the form "regions/REGION/subnetworks/SUBNETWORK".
511*d5c09012SAndroid Build Coastguard Worker  string subnetwork = 19;
512*d5c09012SAndroid Build Coastguard Worker
513*d5c09012SAndroid Build Coastguard Worker  // Required. Docker container image that executes the Cloud Dataflow worker
514*d5c09012SAndroid Build Coastguard Worker  // harness, residing in Google Container Registry.
515*d5c09012SAndroid Build Coastguard Worker  //
516*d5c09012SAndroid Build Coastguard Worker  // Deprecated for the Fn API path. Use sdk_harness_container_images instead.
517*d5c09012SAndroid Build Coastguard Worker  string worker_harness_container_image = 18;
518*d5c09012SAndroid Build Coastguard Worker
519*d5c09012SAndroid Build Coastguard Worker  // The number of threads per worker harness. If empty or unspecified, the
520*d5c09012SAndroid Build Coastguard Worker  // service will choose a number of threads (according to the number of cores
521*d5c09012SAndroid Build Coastguard Worker  // on the selected machine type for batch, or 1 by convention for streaming).
522*d5c09012SAndroid Build Coastguard Worker  int32 num_threads_per_worker = 20;
523*d5c09012SAndroid Build Coastguard Worker
524*d5c09012SAndroid Build Coastguard Worker  // Configuration for VM IPs.
525*d5c09012SAndroid Build Coastguard Worker  WorkerIPAddressConfiguration ip_configuration = 21;
526*d5c09012SAndroid Build Coastguard Worker
527*d5c09012SAndroid Build Coastguard Worker  // Set of SDK harness containers needed to execute this pipeline. This will
528*d5c09012SAndroid Build Coastguard Worker  // only be set in the Fn API path. For non-cross-language pipelines this
529*d5c09012SAndroid Build Coastguard Worker  // should have only one entry. Cross-language pipelines will have two or more
530*d5c09012SAndroid Build Coastguard Worker  // entries.
531*d5c09012SAndroid Build Coastguard Worker  repeated SdkHarnessContainerImage sdk_harness_container_images = 22;
532*d5c09012SAndroid Build Coastguard Worker}
533*d5c09012SAndroid Build Coastguard Worker
534*d5c09012SAndroid Build Coastguard Worker// Specifies the shuffle mode used by a
535*d5c09012SAndroid Build Coastguard Worker// [google.dataflow.v1beta3.Job], which determines the approach data is shuffled
536*d5c09012SAndroid Build Coastguard Worker// during processing. More details in:
537*d5c09012SAndroid Build Coastguard Worker// https://cloud.google.com/dataflow/docs/guides/deploying-a-pipeline#dataflow-shuffle
538*d5c09012SAndroid Build Coastguard Workerenum ShuffleMode {
539*d5c09012SAndroid Build Coastguard Worker  // Shuffle mode information is not available.
540*d5c09012SAndroid Build Coastguard Worker  SHUFFLE_MODE_UNSPECIFIED = 0;
541*d5c09012SAndroid Build Coastguard Worker
542*d5c09012SAndroid Build Coastguard Worker  // Shuffle is done on the worker VMs.
543*d5c09012SAndroid Build Coastguard Worker  VM_BASED = 1;
544*d5c09012SAndroid Build Coastguard Worker
545*d5c09012SAndroid Build Coastguard Worker  // Shuffle is done on the service side.
546*d5c09012SAndroid Build Coastguard Worker  SERVICE_BASED = 2;
547*d5c09012SAndroid Build Coastguard Worker}
548*d5c09012SAndroid Build Coastguard Worker
549*d5c09012SAndroid Build Coastguard Worker// Describes any options that have an effect on the debugging of pipelines.
550*d5c09012SAndroid Build Coastguard Workermessage DebugOptions {
551*d5c09012SAndroid Build Coastguard Worker  // When true, enables the logging of the literal hot key to the user's Cloud
552*d5c09012SAndroid Build Coastguard Worker  // Logging.
553*d5c09012SAndroid Build Coastguard Worker  bool enable_hot_key_logging = 1;
554*d5c09012SAndroid Build Coastguard Worker}
555