xref: /aosp_15_r20/external/googleapis/google/dataflow/v1beta3/templates.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/annotations.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/dataflow/v1beta3/environment.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/dataflow/v1beta3/jobs.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/rpc/status.proto";
24*d5c09012SAndroid Build Coastguard Worker
25*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.Dataflow.V1Beta3";
26*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/dataflow/apiv1beta3/dataflowpb;dataflowpb";
27*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
28*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "TemplatesProto";
29*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.dataflow.v1beta3";
30*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\Dataflow\\V1beta3";
31*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::Dataflow::V1beta3";
32*d5c09012SAndroid Build Coastguard Worker
33*d5c09012SAndroid Build Coastguard Worker// Provides a method to create Cloud Dataflow jobs from templates.
34*d5c09012SAndroid Build Coastguard Workerservice TemplatesService {
35*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "dataflow.googleapis.com";
36*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
37*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform,"
38*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/compute,"
39*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/compute.readonly,"
40*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/userinfo.email";
41*d5c09012SAndroid Build Coastguard Worker
42*d5c09012SAndroid Build Coastguard Worker  // Creates a Cloud Dataflow job from a template.
43*d5c09012SAndroid Build Coastguard Worker  rpc CreateJobFromTemplate(CreateJobFromTemplateRequest) returns (Job) {
44*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
45*d5c09012SAndroid Build Coastguard Worker      post: "/v1b3/projects/{project_id}/locations/{location}/templates"
46*d5c09012SAndroid Build Coastguard Worker      body: "*"
47*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
48*d5c09012SAndroid Build Coastguard Worker        post: "/v1b3/projects/{project_id}/templates"
49*d5c09012SAndroid Build Coastguard Worker        body: "*"
50*d5c09012SAndroid Build Coastguard Worker      }
51*d5c09012SAndroid Build Coastguard Worker    };
52*d5c09012SAndroid Build Coastguard Worker  }
53*d5c09012SAndroid Build Coastguard Worker
54*d5c09012SAndroid Build Coastguard Worker  // Launch a template.
55*d5c09012SAndroid Build Coastguard Worker  rpc LaunchTemplate(LaunchTemplateRequest) returns (LaunchTemplateResponse) {
56*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
57*d5c09012SAndroid Build Coastguard Worker      post: "/v1b3/projects/{project_id}/locations/{location}/templates:launch"
58*d5c09012SAndroid Build Coastguard Worker      body: "launch_parameters"
59*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
60*d5c09012SAndroid Build Coastguard Worker        post: "/v1b3/projects/{project_id}/templates:launch"
61*d5c09012SAndroid Build Coastguard Worker        body: "launch_parameters"
62*d5c09012SAndroid Build Coastguard Worker      }
63*d5c09012SAndroid Build Coastguard Worker    };
64*d5c09012SAndroid Build Coastguard Worker  }
65*d5c09012SAndroid Build Coastguard Worker
66*d5c09012SAndroid Build Coastguard Worker  // Get the template associated with a template.
67*d5c09012SAndroid Build Coastguard Worker  rpc GetTemplate(GetTemplateRequest) returns (GetTemplateResponse) {
68*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
69*d5c09012SAndroid Build Coastguard Worker      get: "/v1b3/projects/{project_id}/locations/{location}/templates:get"
70*d5c09012SAndroid Build Coastguard Worker      additional_bindings {
71*d5c09012SAndroid Build Coastguard Worker        get: "/v1b3/projects/{project_id}/templates:get"
72*d5c09012SAndroid Build Coastguard Worker      }
73*d5c09012SAndroid Build Coastguard Worker    };
74*d5c09012SAndroid Build Coastguard Worker  }
75*d5c09012SAndroid Build Coastguard Worker}
76*d5c09012SAndroid Build Coastguard Worker
77*d5c09012SAndroid Build Coastguard Worker// Provides a service for Flex templates. This feature is not ready yet.
78*d5c09012SAndroid Build Coastguard Workerservice FlexTemplatesService {
79*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "dataflow.googleapis.com";
80*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
81*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform,"
82*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/compute,"
83*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/compute.readonly,"
84*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/userinfo.email";
85*d5c09012SAndroid Build Coastguard Worker
86*d5c09012SAndroid Build Coastguard Worker  // Launch a job with a FlexTemplate.
87*d5c09012SAndroid Build Coastguard Worker  rpc LaunchFlexTemplate(LaunchFlexTemplateRequest) returns (LaunchFlexTemplateResponse) {
88*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
89*d5c09012SAndroid Build Coastguard Worker      post: "/v1b3/projects/{project_id}/locations/{location}/flexTemplates:launch"
90*d5c09012SAndroid Build Coastguard Worker      body: "*"
91*d5c09012SAndroid Build Coastguard Worker    };
92*d5c09012SAndroid Build Coastguard Worker  }
93*d5c09012SAndroid Build Coastguard Worker}
94*d5c09012SAndroid Build Coastguard Worker
95*d5c09012SAndroid Build Coastguard Worker// Response to the request to launch a job from Flex Template.
96*d5c09012SAndroid Build Coastguard Workermessage LaunchFlexTemplateResponse {
97*d5c09012SAndroid Build Coastguard Worker  // The job that was launched, if the request was not a dry run and
98*d5c09012SAndroid Build Coastguard Worker  // the job was successfully launched.
99*d5c09012SAndroid Build Coastguard Worker  Job job = 1;
100*d5c09012SAndroid Build Coastguard Worker}
101*d5c09012SAndroid Build Coastguard Worker
102*d5c09012SAndroid Build Coastguard Worker// Container Spec.
103*d5c09012SAndroid Build Coastguard Workermessage ContainerSpec {
104*d5c09012SAndroid Build Coastguard Worker  // Name of the docker container image. E.g., gcr.io/project/some-image
105*d5c09012SAndroid Build Coastguard Worker  string image = 1;
106*d5c09012SAndroid Build Coastguard Worker
107*d5c09012SAndroid Build Coastguard Worker  // Metadata describing a template including description and validation rules.
108*d5c09012SAndroid Build Coastguard Worker  TemplateMetadata metadata = 2;
109*d5c09012SAndroid Build Coastguard Worker
110*d5c09012SAndroid Build Coastguard Worker  // Required. SDK info of the Flex Template.
111*d5c09012SAndroid Build Coastguard Worker  SDKInfo sdk_info = 3;
112*d5c09012SAndroid Build Coastguard Worker
113*d5c09012SAndroid Build Coastguard Worker  // Default runtime environment for the job.
114*d5c09012SAndroid Build Coastguard Worker  FlexTemplateRuntimeEnvironment default_environment = 4;
115*d5c09012SAndroid Build Coastguard Worker}
116*d5c09012SAndroid Build Coastguard Worker
117*d5c09012SAndroid Build Coastguard Worker// Launch FlexTemplate Parameter.
118*d5c09012SAndroid Build Coastguard Workermessage LaunchFlexTemplateParameter {
119*d5c09012SAndroid Build Coastguard Worker  // Required. The job name to use for the created job. For update job request,
120*d5c09012SAndroid Build Coastguard Worker  // job name should be same as the existing running job.
121*d5c09012SAndroid Build Coastguard Worker  string job_name = 1;
122*d5c09012SAndroid Build Coastguard Worker
123*d5c09012SAndroid Build Coastguard Worker  // Launch Mechanism.
124*d5c09012SAndroid Build Coastguard Worker  oneof template {
125*d5c09012SAndroid Build Coastguard Worker    // Spec about the container image to launch.
126*d5c09012SAndroid Build Coastguard Worker    ContainerSpec container_spec = 4;
127*d5c09012SAndroid Build Coastguard Worker
128*d5c09012SAndroid Build Coastguard Worker    // Cloud Storage path to a file with json serialized ContainerSpec as
129*d5c09012SAndroid Build Coastguard Worker    // content.
130*d5c09012SAndroid Build Coastguard Worker    string container_spec_gcs_path = 5;
131*d5c09012SAndroid Build Coastguard Worker  }
132*d5c09012SAndroid Build Coastguard Worker
133*d5c09012SAndroid Build Coastguard Worker  // The parameters for FlexTemplate.
134*d5c09012SAndroid Build Coastguard Worker  // Ex. {"num_workers":"5"}
135*d5c09012SAndroid Build Coastguard Worker  map<string, string> parameters = 2;
136*d5c09012SAndroid Build Coastguard Worker
137*d5c09012SAndroid Build Coastguard Worker  // Launch options for this flex template job. This is a common set of options
138*d5c09012SAndroid Build Coastguard Worker  // across languages and templates. This should not be used to pass job
139*d5c09012SAndroid Build Coastguard Worker  // parameters.
140*d5c09012SAndroid Build Coastguard Worker  map<string, string> launch_options = 6;
141*d5c09012SAndroid Build Coastguard Worker
142*d5c09012SAndroid Build Coastguard Worker  // The runtime environment for the FlexTemplate job
143*d5c09012SAndroid Build Coastguard Worker  FlexTemplateRuntimeEnvironment environment = 7;
144*d5c09012SAndroid Build Coastguard Worker
145*d5c09012SAndroid Build Coastguard Worker  // Set this to true if you are sending a request to update a running
146*d5c09012SAndroid Build Coastguard Worker  // streaming job. When set, the job name should be the same as the
147*d5c09012SAndroid Build Coastguard Worker  // running job.
148*d5c09012SAndroid Build Coastguard Worker  bool update = 8;
149*d5c09012SAndroid Build Coastguard Worker
150*d5c09012SAndroid Build Coastguard Worker  // Use this to pass transform_name_mappings for streaming update jobs.
151*d5c09012SAndroid Build Coastguard Worker  // Ex:{"oldTransformName":"newTransformName",...}'
152*d5c09012SAndroid Build Coastguard Worker  map<string, string> transform_name_mappings = 9;
153*d5c09012SAndroid Build Coastguard Worker}
154*d5c09012SAndroid Build Coastguard Worker
155*d5c09012SAndroid Build Coastguard Worker// The environment values to be set at runtime for flex template.
156*d5c09012SAndroid Build Coastguard Workermessage FlexTemplateRuntimeEnvironment {
157*d5c09012SAndroid Build Coastguard Worker  // The initial number of Google Compute Engine instances for the job.
158*d5c09012SAndroid Build Coastguard Worker  int32 num_workers = 1;
159*d5c09012SAndroid Build Coastguard Worker
160*d5c09012SAndroid Build Coastguard Worker  // The maximum number of Google Compute Engine instances to be made
161*d5c09012SAndroid Build Coastguard Worker  // available to your pipeline during execution, from 1 to 1000.
162*d5c09012SAndroid Build Coastguard Worker  int32 max_workers = 2;
163*d5c09012SAndroid Build Coastguard Worker
164*d5c09012SAndroid Build Coastguard Worker  // The Compute Engine [availability
165*d5c09012SAndroid Build Coastguard Worker  // zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones)
166*d5c09012SAndroid Build Coastguard Worker  // for launching worker instances to run your pipeline.
167*d5c09012SAndroid Build Coastguard Worker  // In the future, worker_zone will take precedence.
168*d5c09012SAndroid Build Coastguard Worker  string zone = 3;
169*d5c09012SAndroid Build Coastguard Worker
170*d5c09012SAndroid Build Coastguard Worker  // The email address of the service account to run the job as.
171*d5c09012SAndroid Build Coastguard Worker  string service_account_email = 4;
172*d5c09012SAndroid Build Coastguard Worker
173*d5c09012SAndroid Build Coastguard Worker  // The Cloud Storage path to use for temporary files.
174*d5c09012SAndroid Build Coastguard Worker  // Must be a valid Cloud Storage URL, beginning with `gs://`.
175*d5c09012SAndroid Build Coastguard Worker  string temp_location = 5;
176*d5c09012SAndroid Build Coastguard Worker
177*d5c09012SAndroid Build Coastguard Worker  // The machine type to use for the job. Defaults to the value from the
178*d5c09012SAndroid Build Coastguard Worker  // template if not specified.
179*d5c09012SAndroid Build Coastguard Worker  string machine_type = 6;
180*d5c09012SAndroid Build Coastguard Worker
181*d5c09012SAndroid Build Coastguard Worker  // Additional experiment flags for the job.
182*d5c09012SAndroid Build Coastguard Worker  repeated string additional_experiments = 7;
183*d5c09012SAndroid Build Coastguard Worker
184*d5c09012SAndroid Build Coastguard Worker  // Network to which VMs will be assigned.  If empty or unspecified,
185*d5c09012SAndroid Build Coastguard Worker  // the service will use the network "default".
186*d5c09012SAndroid Build Coastguard Worker  string network = 8;
187*d5c09012SAndroid Build Coastguard Worker
188*d5c09012SAndroid Build Coastguard Worker  // Subnetwork to which VMs will be assigned, if desired. You can specify a
189*d5c09012SAndroid Build Coastguard Worker  // subnetwork using either a complete URL or an abbreviated path. Expected to
190*d5c09012SAndroid Build Coastguard Worker  // be of the form
191*d5c09012SAndroid Build Coastguard Worker  // "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK"
192*d5c09012SAndroid Build Coastguard Worker  // or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is located in
193*d5c09012SAndroid Build Coastguard Worker  // a Shared VPC network, you must use the complete URL.
194*d5c09012SAndroid Build Coastguard Worker  string subnetwork = 9;
195*d5c09012SAndroid Build Coastguard Worker
196*d5c09012SAndroid Build Coastguard Worker  // Additional user labels to be specified for the job.
197*d5c09012SAndroid Build Coastguard Worker  // Keys and values must follow the restrictions specified in the [labeling
198*d5c09012SAndroid Build Coastguard Worker  // restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions)
199*d5c09012SAndroid Build Coastguard Worker  // page.
200*d5c09012SAndroid Build Coastguard Worker  // An object containing a list of "key": value pairs.
201*d5c09012SAndroid Build Coastguard Worker  // Example: { "name": "wrench", "mass": "1kg", "count": "3" }.
202*d5c09012SAndroid Build Coastguard Worker  map<string, string> additional_user_labels = 10;
203*d5c09012SAndroid Build Coastguard Worker
204*d5c09012SAndroid Build Coastguard Worker  // Name for the Cloud KMS key for the job.
205*d5c09012SAndroid Build Coastguard Worker  // Key format is:
206*d5c09012SAndroid Build Coastguard Worker  // projects/<project>/locations/<location>/keyRings/<keyring>/cryptoKeys/<key>
207*d5c09012SAndroid Build Coastguard Worker  string kms_key_name = 11;
208*d5c09012SAndroid Build Coastguard Worker
209*d5c09012SAndroid Build Coastguard Worker  // Configuration for VM IPs.
210*d5c09012SAndroid Build Coastguard Worker  WorkerIPAddressConfiguration ip_configuration = 12;
211*d5c09012SAndroid Build Coastguard Worker
212*d5c09012SAndroid Build Coastguard Worker  // The Compute Engine region
213*d5c09012SAndroid Build Coastguard Worker  // (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in
214*d5c09012SAndroid Build Coastguard Worker  // which worker processing should occur, e.g. "us-west1". Mutually exclusive
215*d5c09012SAndroid Build Coastguard Worker  // with worker_zone. If neither worker_region nor worker_zone is specified,
216*d5c09012SAndroid Build Coastguard Worker  // default to the control plane's region.
217*d5c09012SAndroid Build Coastguard Worker  string worker_region = 13;
218*d5c09012SAndroid Build Coastguard Worker
219*d5c09012SAndroid Build Coastguard Worker  // The Compute Engine zone
220*d5c09012SAndroid Build Coastguard Worker  // (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in
221*d5c09012SAndroid Build Coastguard Worker  // which worker processing should occur, e.g. "us-west1-a". Mutually exclusive
222*d5c09012SAndroid Build Coastguard Worker  // with worker_region. If neither worker_region nor worker_zone is specified,
223*d5c09012SAndroid Build Coastguard Worker  // a zone in the control plane's region is chosen based on available capacity.
224*d5c09012SAndroid Build Coastguard Worker  // If both `worker_zone` and `zone` are set, `worker_zone` takes precedence.
225*d5c09012SAndroid Build Coastguard Worker  string worker_zone = 14;
226*d5c09012SAndroid Build Coastguard Worker
227*d5c09012SAndroid Build Coastguard Worker  // Whether to enable Streaming Engine for the job.
228*d5c09012SAndroid Build Coastguard Worker  bool enable_streaming_engine = 15;
229*d5c09012SAndroid Build Coastguard Worker
230*d5c09012SAndroid Build Coastguard Worker  // Set FlexRS goal for the job.
231*d5c09012SAndroid Build Coastguard Worker  // https://cloud.google.com/dataflow/docs/guides/flexrs
232*d5c09012SAndroid Build Coastguard Worker  FlexResourceSchedulingGoal flexrs_goal = 16;
233*d5c09012SAndroid Build Coastguard Worker
234*d5c09012SAndroid Build Coastguard Worker  // The Cloud Storage path for staging local files.
235*d5c09012SAndroid Build Coastguard Worker  // Must be a valid Cloud Storage URL, beginning with `gs://`.
236*d5c09012SAndroid Build Coastguard Worker  string staging_location = 17;
237*d5c09012SAndroid Build Coastguard Worker
238*d5c09012SAndroid Build Coastguard Worker  // Docker registry location of container image to use for the 'worker harness.
239*d5c09012SAndroid Build Coastguard Worker  // Default is the container for the version of the SDK. Note this field is
240*d5c09012SAndroid Build Coastguard Worker  // only valid for portable pipelines.
241*d5c09012SAndroid Build Coastguard Worker  string sdk_container_image = 18;
242*d5c09012SAndroid Build Coastguard Worker
243*d5c09012SAndroid Build Coastguard Worker  // Worker disk size, in gigabytes.
244*d5c09012SAndroid Build Coastguard Worker  int32 disk_size_gb = 20;
245*d5c09012SAndroid Build Coastguard Worker
246*d5c09012SAndroid Build Coastguard Worker  // The algorithm to use for autoscaling
247*d5c09012SAndroid Build Coastguard Worker  AutoscalingAlgorithm autoscaling_algorithm = 21;
248*d5c09012SAndroid Build Coastguard Worker
249*d5c09012SAndroid Build Coastguard Worker  // If true, save a heap dump before killing a thread or process which is GC
250*d5c09012SAndroid Build Coastguard Worker  // thrashing or out of memory. The location of the heap file will either be
251*d5c09012SAndroid Build Coastguard Worker  // echoed back to the user, or the user will be given the opportunity to
252*d5c09012SAndroid Build Coastguard Worker  // download the heap file.
253*d5c09012SAndroid Build Coastguard Worker  bool dump_heap_on_oom = 22;
254*d5c09012SAndroid Build Coastguard Worker
255*d5c09012SAndroid Build Coastguard Worker  // Cloud Storage bucket (directory) to upload heap dumps to the given
256*d5c09012SAndroid Build Coastguard Worker  // location. Enabling this implies that heap dumps should be generated on OOM
257*d5c09012SAndroid Build Coastguard Worker  // (dump_heap_on_oom is set to true).
258*d5c09012SAndroid Build Coastguard Worker  string save_heap_dumps_to_gcs_path = 23;
259*d5c09012SAndroid Build Coastguard Worker
260*d5c09012SAndroid Build Coastguard Worker  // The machine type to use for launching the job. The default is
261*d5c09012SAndroid Build Coastguard Worker  // n1-standard-1.
262*d5c09012SAndroid Build Coastguard Worker  string launcher_machine_type = 24;
263*d5c09012SAndroid Build Coastguard Worker}
264*d5c09012SAndroid Build Coastguard Worker
265*d5c09012SAndroid Build Coastguard Worker// A request to launch a Cloud Dataflow job from a FlexTemplate.
266*d5c09012SAndroid Build Coastguard Workermessage LaunchFlexTemplateRequest {
267*d5c09012SAndroid Build Coastguard Worker  // Required. The ID of the Cloud Platform project that the job belongs to.
268*d5c09012SAndroid Build Coastguard Worker  string project_id = 1;
269*d5c09012SAndroid Build Coastguard Worker
270*d5c09012SAndroid Build Coastguard Worker  // Required. Parameter to launch a job form Flex Template.
271*d5c09012SAndroid Build Coastguard Worker  LaunchFlexTemplateParameter launch_parameter = 2;
272*d5c09012SAndroid Build Coastguard Worker
273*d5c09012SAndroid Build Coastguard Worker  // Required. The [regional endpoint]
274*d5c09012SAndroid Build Coastguard Worker  // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to
275*d5c09012SAndroid Build Coastguard Worker  // which to direct the request. E.g., us-central1, us-west1.
276*d5c09012SAndroid Build Coastguard Worker  string location = 3;
277*d5c09012SAndroid Build Coastguard Worker
278*d5c09012SAndroid Build Coastguard Worker  // If true, the request is validated but not actually executed.
279*d5c09012SAndroid Build Coastguard Worker  // Defaults to false.
280*d5c09012SAndroid Build Coastguard Worker  bool validate_only = 4;
281*d5c09012SAndroid Build Coastguard Worker}
282*d5c09012SAndroid Build Coastguard Worker
283*d5c09012SAndroid Build Coastguard Worker// The environment values to set at runtime.
284*d5c09012SAndroid Build Coastguard Workermessage RuntimeEnvironment {
285*d5c09012SAndroid Build Coastguard Worker  // The initial number of Google Compute Engine instnaces for the job.
286*d5c09012SAndroid Build Coastguard Worker  int32 num_workers = 11;
287*d5c09012SAndroid Build Coastguard Worker
288*d5c09012SAndroid Build Coastguard Worker  // The maximum number of Google Compute Engine instances to be made
289*d5c09012SAndroid Build Coastguard Worker  // available to your pipeline during execution, from 1 to 1000.
290*d5c09012SAndroid Build Coastguard Worker  int32 max_workers = 1;
291*d5c09012SAndroid Build Coastguard Worker
292*d5c09012SAndroid Build Coastguard Worker  // The Compute Engine [availability
293*d5c09012SAndroid Build Coastguard Worker  // zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones)
294*d5c09012SAndroid Build Coastguard Worker  // for launching worker instances to run your pipeline.
295*d5c09012SAndroid Build Coastguard Worker  // In the future, worker_zone will take precedence.
296*d5c09012SAndroid Build Coastguard Worker  string zone = 2;
297*d5c09012SAndroid Build Coastguard Worker
298*d5c09012SAndroid Build Coastguard Worker  // The email address of the service account to run the job as.
299*d5c09012SAndroid Build Coastguard Worker  string service_account_email = 3;
300*d5c09012SAndroid Build Coastguard Worker
301*d5c09012SAndroid Build Coastguard Worker  // The Cloud Storage path to use for temporary files.
302*d5c09012SAndroid Build Coastguard Worker  // Must be a valid Cloud Storage URL, beginning with `gs://`.
303*d5c09012SAndroid Build Coastguard Worker  string temp_location = 4;
304*d5c09012SAndroid Build Coastguard Worker
305*d5c09012SAndroid Build Coastguard Worker  // Whether to bypass the safety checks for the job's temporary directory.
306*d5c09012SAndroid Build Coastguard Worker  // Use with caution.
307*d5c09012SAndroid Build Coastguard Worker  bool bypass_temp_dir_validation = 5;
308*d5c09012SAndroid Build Coastguard Worker
309*d5c09012SAndroid Build Coastguard Worker  // The machine type to use for the job. Defaults to the value from the
310*d5c09012SAndroid Build Coastguard Worker  // template if not specified.
311*d5c09012SAndroid Build Coastguard Worker  string machine_type = 6;
312*d5c09012SAndroid Build Coastguard Worker
313*d5c09012SAndroid Build Coastguard Worker  // Additional experiment flags for the job, specified with the
314*d5c09012SAndroid Build Coastguard Worker  // `--experiments` option.
315*d5c09012SAndroid Build Coastguard Worker  repeated string additional_experiments = 7;
316*d5c09012SAndroid Build Coastguard Worker
317*d5c09012SAndroid Build Coastguard Worker  // Network to which VMs will be assigned.  If empty or unspecified,
318*d5c09012SAndroid Build Coastguard Worker  // the service will use the network "default".
319*d5c09012SAndroid Build Coastguard Worker  string network = 8;
320*d5c09012SAndroid Build Coastguard Worker
321*d5c09012SAndroid Build Coastguard Worker  // Subnetwork to which VMs will be assigned, if desired. You can specify a
322*d5c09012SAndroid Build Coastguard Worker  // subnetwork using either a complete URL or an abbreviated path. Expected to
323*d5c09012SAndroid Build Coastguard Worker  // be of the form
324*d5c09012SAndroid Build Coastguard Worker  // "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK"
325*d5c09012SAndroid Build Coastguard Worker  // or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is located in
326*d5c09012SAndroid Build Coastguard Worker  // a Shared VPC network, you must use the complete URL.
327*d5c09012SAndroid Build Coastguard Worker  string subnetwork = 9;
328*d5c09012SAndroid Build Coastguard Worker
329*d5c09012SAndroid Build Coastguard Worker  // Additional user labels to be specified for the job.
330*d5c09012SAndroid Build Coastguard Worker  // Keys and values should follow the restrictions specified in the [labeling
331*d5c09012SAndroid Build Coastguard Worker  // restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions)
332*d5c09012SAndroid Build Coastguard Worker  // page.
333*d5c09012SAndroid Build Coastguard Worker  // An object containing a list of "key": value pairs.
334*d5c09012SAndroid Build Coastguard Worker  // Example: { "name": "wrench", "mass": "1kg", "count": "3" }.
335*d5c09012SAndroid Build Coastguard Worker  map<string, string> additional_user_labels = 10;
336*d5c09012SAndroid Build Coastguard Worker
337*d5c09012SAndroid Build Coastguard Worker  // Name for the Cloud KMS key for the job.
338*d5c09012SAndroid Build Coastguard Worker  // Key format is:
339*d5c09012SAndroid Build Coastguard Worker  // projects/<project>/locations/<location>/keyRings/<keyring>/cryptoKeys/<key>
340*d5c09012SAndroid Build Coastguard Worker  string kms_key_name = 12;
341*d5c09012SAndroid Build Coastguard Worker
342*d5c09012SAndroid Build Coastguard Worker  // Configuration for VM IPs.
343*d5c09012SAndroid Build Coastguard Worker  WorkerIPAddressConfiguration ip_configuration = 14;
344*d5c09012SAndroid Build Coastguard Worker
345*d5c09012SAndroid Build Coastguard Worker  // The Compute Engine region
346*d5c09012SAndroid Build Coastguard Worker  // (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in
347*d5c09012SAndroid Build Coastguard Worker  // which worker processing should occur, e.g. "us-west1". Mutually exclusive
348*d5c09012SAndroid Build Coastguard Worker  // with worker_zone. If neither worker_region nor worker_zone is specified,
349*d5c09012SAndroid Build Coastguard Worker  // default to the control plane's region.
350*d5c09012SAndroid Build Coastguard Worker  string worker_region = 15;
351*d5c09012SAndroid Build Coastguard Worker
352*d5c09012SAndroid Build Coastguard Worker  // The Compute Engine zone
353*d5c09012SAndroid Build Coastguard Worker  // (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in
354*d5c09012SAndroid Build Coastguard Worker  // which worker processing should occur, e.g. "us-west1-a". Mutually exclusive
355*d5c09012SAndroid Build Coastguard Worker  // with worker_region. If neither worker_region nor worker_zone is specified,
356*d5c09012SAndroid Build Coastguard Worker  // a zone in the control plane's region is chosen based on available capacity.
357*d5c09012SAndroid Build Coastguard Worker  // If both `worker_zone` and `zone` are set, `worker_zone` takes precedence.
358*d5c09012SAndroid Build Coastguard Worker  string worker_zone = 16;
359*d5c09012SAndroid Build Coastguard Worker
360*d5c09012SAndroid Build Coastguard Worker  // Whether to enable Streaming Engine for the job.
361*d5c09012SAndroid Build Coastguard Worker  bool enable_streaming_engine = 17;
362*d5c09012SAndroid Build Coastguard Worker}
363*d5c09012SAndroid Build Coastguard Worker
364*d5c09012SAndroid Build Coastguard Worker// Metadata for a specific parameter.
365*d5c09012SAndroid Build Coastguard Workermessage ParameterMetadata {
366*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the parameter.
367*d5c09012SAndroid Build Coastguard Worker  string name = 1;
368*d5c09012SAndroid Build Coastguard Worker
369*d5c09012SAndroid Build Coastguard Worker  // Required. The label to display for the parameter.
370*d5c09012SAndroid Build Coastguard Worker  string label = 2;
371*d5c09012SAndroid Build Coastguard Worker
372*d5c09012SAndroid Build Coastguard Worker  // Required. The help text to display for the parameter.
373*d5c09012SAndroid Build Coastguard Worker  string help_text = 3;
374*d5c09012SAndroid Build Coastguard Worker
375*d5c09012SAndroid Build Coastguard Worker  // Optional. Whether the parameter is optional. Defaults to false.
376*d5c09012SAndroid Build Coastguard Worker  bool is_optional = 4;
377*d5c09012SAndroid Build Coastguard Worker
378*d5c09012SAndroid Build Coastguard Worker  // Optional. Regexes that the parameter must match.
379*d5c09012SAndroid Build Coastguard Worker  repeated string regexes = 5;
380*d5c09012SAndroid Build Coastguard Worker
381*d5c09012SAndroid Build Coastguard Worker  // Optional. The type of the parameter.
382*d5c09012SAndroid Build Coastguard Worker  // Used for selecting input picker.
383*d5c09012SAndroid Build Coastguard Worker  ParameterType param_type = 6;
384*d5c09012SAndroid Build Coastguard Worker
385*d5c09012SAndroid Build Coastguard Worker  // Optional. Additional metadata for describing this parameter.
386*d5c09012SAndroid Build Coastguard Worker  map<string, string> custom_metadata = 7;
387*d5c09012SAndroid Build Coastguard Worker}
388*d5c09012SAndroid Build Coastguard Worker
389*d5c09012SAndroid Build Coastguard Worker// ParameterType specifies what kind of input we need for this parameter.
390*d5c09012SAndroid Build Coastguard Workerenum ParameterType {
391*d5c09012SAndroid Build Coastguard Worker  // Default input type.
392*d5c09012SAndroid Build Coastguard Worker  DEFAULT = 0;
393*d5c09012SAndroid Build Coastguard Worker
394*d5c09012SAndroid Build Coastguard Worker  // The parameter specifies generic text input.
395*d5c09012SAndroid Build Coastguard Worker  TEXT = 1;
396*d5c09012SAndroid Build Coastguard Worker
397*d5c09012SAndroid Build Coastguard Worker  // The parameter specifies a Cloud Storage Bucket to read from.
398*d5c09012SAndroid Build Coastguard Worker  GCS_READ_BUCKET = 2;
399*d5c09012SAndroid Build Coastguard Worker
400*d5c09012SAndroid Build Coastguard Worker  // The parameter specifies a Cloud Storage Bucket to write to.
401*d5c09012SAndroid Build Coastguard Worker  GCS_WRITE_BUCKET = 3;
402*d5c09012SAndroid Build Coastguard Worker
403*d5c09012SAndroid Build Coastguard Worker  // The parameter specifies a Cloud Storage file path to read from.
404*d5c09012SAndroid Build Coastguard Worker  GCS_READ_FILE = 4;
405*d5c09012SAndroid Build Coastguard Worker
406*d5c09012SAndroid Build Coastguard Worker  // The parameter specifies a Cloud Storage file path to write to.
407*d5c09012SAndroid Build Coastguard Worker  GCS_WRITE_FILE = 5;
408*d5c09012SAndroid Build Coastguard Worker
409*d5c09012SAndroid Build Coastguard Worker  // The parameter specifies a Cloud Storage folder path to read from.
410*d5c09012SAndroid Build Coastguard Worker  GCS_READ_FOLDER = 6;
411*d5c09012SAndroid Build Coastguard Worker
412*d5c09012SAndroid Build Coastguard Worker  // The parameter specifies a Cloud Storage folder to write to.
413*d5c09012SAndroid Build Coastguard Worker  GCS_WRITE_FOLDER = 7;
414*d5c09012SAndroid Build Coastguard Worker
415*d5c09012SAndroid Build Coastguard Worker  // The parameter specifies a Pub/Sub Topic.
416*d5c09012SAndroid Build Coastguard Worker  PUBSUB_TOPIC = 8;
417*d5c09012SAndroid Build Coastguard Worker
418*d5c09012SAndroid Build Coastguard Worker  // The parameter specifies a Pub/Sub Subscription.
419*d5c09012SAndroid Build Coastguard Worker  PUBSUB_SUBSCRIPTION = 9;
420*d5c09012SAndroid Build Coastguard Worker}
421*d5c09012SAndroid Build Coastguard Worker
422*d5c09012SAndroid Build Coastguard Worker// Metadata describing a template.
423*d5c09012SAndroid Build Coastguard Workermessage TemplateMetadata {
424*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the template.
425*d5c09012SAndroid Build Coastguard Worker  string name = 1;
426*d5c09012SAndroid Build Coastguard Worker
427*d5c09012SAndroid Build Coastguard Worker  // Optional. A description of the template.
428*d5c09012SAndroid Build Coastguard Worker  string description = 2;
429*d5c09012SAndroid Build Coastguard Worker
430*d5c09012SAndroid Build Coastguard Worker  // The parameters for the template.
431*d5c09012SAndroid Build Coastguard Worker  repeated ParameterMetadata parameters = 3;
432*d5c09012SAndroid Build Coastguard Worker}
433*d5c09012SAndroid Build Coastguard Worker
434*d5c09012SAndroid Build Coastguard Worker// SDK Information.
435*d5c09012SAndroid Build Coastguard Workermessage SDKInfo {
436*d5c09012SAndroid Build Coastguard Worker  // SDK Language.
437*d5c09012SAndroid Build Coastguard Worker  enum Language {
438*d5c09012SAndroid Build Coastguard Worker    // UNKNOWN Language.
439*d5c09012SAndroid Build Coastguard Worker    UNKNOWN = 0;
440*d5c09012SAndroid Build Coastguard Worker
441*d5c09012SAndroid Build Coastguard Worker    // Java.
442*d5c09012SAndroid Build Coastguard Worker    JAVA = 1;
443*d5c09012SAndroid Build Coastguard Worker
444*d5c09012SAndroid Build Coastguard Worker    // Python.
445*d5c09012SAndroid Build Coastguard Worker    PYTHON = 2;
446*d5c09012SAndroid Build Coastguard Worker  }
447*d5c09012SAndroid Build Coastguard Worker
448*d5c09012SAndroid Build Coastguard Worker  // Required. The SDK Language.
449*d5c09012SAndroid Build Coastguard Worker  Language language = 1;
450*d5c09012SAndroid Build Coastguard Worker
451*d5c09012SAndroid Build Coastguard Worker  // Optional. The SDK version.
452*d5c09012SAndroid Build Coastguard Worker  string version = 2;
453*d5c09012SAndroid Build Coastguard Worker}
454*d5c09012SAndroid Build Coastguard Worker
455*d5c09012SAndroid Build Coastguard Worker// RuntimeMetadata describing a runtime environment.
456*d5c09012SAndroid Build Coastguard Workermessage RuntimeMetadata {
457*d5c09012SAndroid Build Coastguard Worker  // SDK Info for the template.
458*d5c09012SAndroid Build Coastguard Worker  SDKInfo sdk_info = 1;
459*d5c09012SAndroid Build Coastguard Worker
460*d5c09012SAndroid Build Coastguard Worker  // The parameters for the template.
461*d5c09012SAndroid Build Coastguard Worker  repeated ParameterMetadata parameters = 2;
462*d5c09012SAndroid Build Coastguard Worker}
463*d5c09012SAndroid Build Coastguard Worker
464*d5c09012SAndroid Build Coastguard Worker// A request to create a Cloud Dataflow job from a template.
465*d5c09012SAndroid Build Coastguard Workermessage CreateJobFromTemplateRequest {
466*d5c09012SAndroid Build Coastguard Worker  // Required. The ID of the Cloud Platform project that the job belongs to.
467*d5c09012SAndroid Build Coastguard Worker  string project_id = 1;
468*d5c09012SAndroid Build Coastguard Worker
469*d5c09012SAndroid Build Coastguard Worker  // Required. The job name to use for the created job.
470*d5c09012SAndroid Build Coastguard Worker  string job_name = 4;
471*d5c09012SAndroid Build Coastguard Worker
472*d5c09012SAndroid Build Coastguard Worker  // The template from which to create the job.
473*d5c09012SAndroid Build Coastguard Worker  oneof template {
474*d5c09012SAndroid Build Coastguard Worker    // Required. A Cloud Storage path to the template from which to
475*d5c09012SAndroid Build Coastguard Worker    // create the job.
476*d5c09012SAndroid Build Coastguard Worker    // Must be a valid Cloud Storage URL, beginning with `gs://`.
477*d5c09012SAndroid Build Coastguard Worker    string gcs_path = 2;
478*d5c09012SAndroid Build Coastguard Worker  }
479*d5c09012SAndroid Build Coastguard Worker
480*d5c09012SAndroid Build Coastguard Worker  // The runtime parameters to pass to the job.
481*d5c09012SAndroid Build Coastguard Worker  map<string, string> parameters = 3;
482*d5c09012SAndroid Build Coastguard Worker
483*d5c09012SAndroid Build Coastguard Worker  // The runtime environment for the job.
484*d5c09012SAndroid Build Coastguard Worker  RuntimeEnvironment environment = 5;
485*d5c09012SAndroid Build Coastguard Worker
486*d5c09012SAndroid Build Coastguard Worker  // The [regional endpoint]
487*d5c09012SAndroid Build Coastguard Worker  // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to
488*d5c09012SAndroid Build Coastguard Worker  // which to direct the request.
489*d5c09012SAndroid Build Coastguard Worker  string location = 6;
490*d5c09012SAndroid Build Coastguard Worker}
491*d5c09012SAndroid Build Coastguard Worker
492*d5c09012SAndroid Build Coastguard Worker// A request to retrieve a Cloud Dataflow job template.
493*d5c09012SAndroid Build Coastguard Workermessage GetTemplateRequest {
494*d5c09012SAndroid Build Coastguard Worker  // The various views of a template that may be retrieved.
495*d5c09012SAndroid Build Coastguard Worker  enum TemplateView {
496*d5c09012SAndroid Build Coastguard Worker    // Template view that retrieves only the metadata associated with the
497*d5c09012SAndroid Build Coastguard Worker    // template.
498*d5c09012SAndroid Build Coastguard Worker    METADATA_ONLY = 0;
499*d5c09012SAndroid Build Coastguard Worker  }
500*d5c09012SAndroid Build Coastguard Worker
501*d5c09012SAndroid Build Coastguard Worker  // Required. The ID of the Cloud Platform project that the job belongs to.
502*d5c09012SAndroid Build Coastguard Worker  string project_id = 1;
503*d5c09012SAndroid Build Coastguard Worker
504*d5c09012SAndroid Build Coastguard Worker  // The template from which to create the job.
505*d5c09012SAndroid Build Coastguard Worker  oneof template {
506*d5c09012SAndroid Build Coastguard Worker    // Required. A Cloud Storage path to the template from which to
507*d5c09012SAndroid Build Coastguard Worker    // create the job.
508*d5c09012SAndroid Build Coastguard Worker    // Must be valid Cloud Storage URL, beginning with 'gs://'.
509*d5c09012SAndroid Build Coastguard Worker    string gcs_path = 2;
510*d5c09012SAndroid Build Coastguard Worker  }
511*d5c09012SAndroid Build Coastguard Worker
512*d5c09012SAndroid Build Coastguard Worker  // The view to retrieve. Defaults to METADATA_ONLY.
513*d5c09012SAndroid Build Coastguard Worker  TemplateView view = 3;
514*d5c09012SAndroid Build Coastguard Worker
515*d5c09012SAndroid Build Coastguard Worker  // The [regional endpoint]
516*d5c09012SAndroid Build Coastguard Worker  // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to
517*d5c09012SAndroid Build Coastguard Worker  // which to direct the request.
518*d5c09012SAndroid Build Coastguard Worker  string location = 4;
519*d5c09012SAndroid Build Coastguard Worker}
520*d5c09012SAndroid Build Coastguard Worker
521*d5c09012SAndroid Build Coastguard Worker// The response to a GetTemplate request.
522*d5c09012SAndroid Build Coastguard Workermessage GetTemplateResponse {
523*d5c09012SAndroid Build Coastguard Worker  // Template Type.
524*d5c09012SAndroid Build Coastguard Worker  enum TemplateType {
525*d5c09012SAndroid Build Coastguard Worker    // Unknown Template Type.
526*d5c09012SAndroid Build Coastguard Worker    UNKNOWN = 0;
527*d5c09012SAndroid Build Coastguard Worker
528*d5c09012SAndroid Build Coastguard Worker    // Legacy Template.
529*d5c09012SAndroid Build Coastguard Worker    LEGACY = 1;
530*d5c09012SAndroid Build Coastguard Worker
531*d5c09012SAndroid Build Coastguard Worker    // Flex Template.
532*d5c09012SAndroid Build Coastguard Worker    FLEX = 2;
533*d5c09012SAndroid Build Coastguard Worker  }
534*d5c09012SAndroid Build Coastguard Worker
535*d5c09012SAndroid Build Coastguard Worker  // The status of the get template request. Any problems with the
536*d5c09012SAndroid Build Coastguard Worker  // request will be indicated in the error_details.
537*d5c09012SAndroid Build Coastguard Worker  google.rpc.Status status = 1;
538*d5c09012SAndroid Build Coastguard Worker
539*d5c09012SAndroid Build Coastguard Worker  // The template metadata describing the template name, available
540*d5c09012SAndroid Build Coastguard Worker  // parameters, etc.
541*d5c09012SAndroid Build Coastguard Worker  TemplateMetadata metadata = 2;
542*d5c09012SAndroid Build Coastguard Worker
543*d5c09012SAndroid Build Coastguard Worker  // Template Type.
544*d5c09012SAndroid Build Coastguard Worker  TemplateType template_type = 3;
545*d5c09012SAndroid Build Coastguard Worker
546*d5c09012SAndroid Build Coastguard Worker  // Describes the runtime metadata with SDKInfo and available parameters.
547*d5c09012SAndroid Build Coastguard Worker  RuntimeMetadata runtime_metadata = 4;
548*d5c09012SAndroid Build Coastguard Worker}
549*d5c09012SAndroid Build Coastguard Worker
550*d5c09012SAndroid Build Coastguard Worker// Parameters to provide to the template being launched.
551*d5c09012SAndroid Build Coastguard Workermessage LaunchTemplateParameters {
552*d5c09012SAndroid Build Coastguard Worker  // Required. The job name to use for the created job.
553*d5c09012SAndroid Build Coastguard Worker  string job_name = 1;
554*d5c09012SAndroid Build Coastguard Worker
555*d5c09012SAndroid Build Coastguard Worker  // The runtime parameters to pass to the job.
556*d5c09012SAndroid Build Coastguard Worker  map<string, string> parameters = 2;
557*d5c09012SAndroid Build Coastguard Worker
558*d5c09012SAndroid Build Coastguard Worker  // The runtime environment for the job.
559*d5c09012SAndroid Build Coastguard Worker  RuntimeEnvironment environment = 3;
560*d5c09012SAndroid Build Coastguard Worker
561*d5c09012SAndroid Build Coastguard Worker  // If set, replace the existing pipeline with the name specified by jobName
562*d5c09012SAndroid Build Coastguard Worker  // with this pipeline, preserving state.
563*d5c09012SAndroid Build Coastguard Worker  bool update = 4;
564*d5c09012SAndroid Build Coastguard Worker
565*d5c09012SAndroid Build Coastguard Worker  // Only applicable when updating a pipeline. Map of transform name prefixes of
566*d5c09012SAndroid Build Coastguard Worker  // the job to be replaced to the corresponding name prefixes of the new job.
567*d5c09012SAndroid Build Coastguard Worker  map<string, string> transform_name_mapping = 5;
568*d5c09012SAndroid Build Coastguard Worker}
569*d5c09012SAndroid Build Coastguard Worker
570*d5c09012SAndroid Build Coastguard Worker// A request to launch a template.
571*d5c09012SAndroid Build Coastguard Workermessage LaunchTemplateRequest {
572*d5c09012SAndroid Build Coastguard Worker  // Required. The ID of the Cloud Platform project that the job belongs to.
573*d5c09012SAndroid Build Coastguard Worker  string project_id = 1;
574*d5c09012SAndroid Build Coastguard Worker
575*d5c09012SAndroid Build Coastguard Worker  // If true, the request is validated but not actually executed.
576*d5c09012SAndroid Build Coastguard Worker  // Defaults to false.
577*d5c09012SAndroid Build Coastguard Worker  bool validate_only = 2;
578*d5c09012SAndroid Build Coastguard Worker
579*d5c09012SAndroid Build Coastguard Worker  // The template from which to create the job.
580*d5c09012SAndroid Build Coastguard Worker  oneof template {
581*d5c09012SAndroid Build Coastguard Worker    // A Cloud Storage path to the template from which to create
582*d5c09012SAndroid Build Coastguard Worker    // the job.
583*d5c09012SAndroid Build Coastguard Worker    // Must be valid Cloud Storage URL, beginning with 'gs://'.
584*d5c09012SAndroid Build Coastguard Worker    string gcs_path = 3;
585*d5c09012SAndroid Build Coastguard Worker
586*d5c09012SAndroid Build Coastguard Worker    // Params for launching a dynamic template.
587*d5c09012SAndroid Build Coastguard Worker    DynamicTemplateLaunchParams dynamic_template = 6;
588*d5c09012SAndroid Build Coastguard Worker  }
589*d5c09012SAndroid Build Coastguard Worker
590*d5c09012SAndroid Build Coastguard Worker  // The parameters of the template to launch. This should be part of the
591*d5c09012SAndroid Build Coastguard Worker  // body of the POST request.
592*d5c09012SAndroid Build Coastguard Worker  LaunchTemplateParameters launch_parameters = 4;
593*d5c09012SAndroid Build Coastguard Worker
594*d5c09012SAndroid Build Coastguard Worker  // The [regional endpoint]
595*d5c09012SAndroid Build Coastguard Worker  // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to
596*d5c09012SAndroid Build Coastguard Worker  // which to direct the request.
597*d5c09012SAndroid Build Coastguard Worker  string location = 5;
598*d5c09012SAndroid Build Coastguard Worker}
599*d5c09012SAndroid Build Coastguard Worker
600*d5c09012SAndroid Build Coastguard Worker// Response to the request to launch a template.
601*d5c09012SAndroid Build Coastguard Workermessage LaunchTemplateResponse {
602*d5c09012SAndroid Build Coastguard Worker  // The job that was launched, if the request was not a dry run and
603*d5c09012SAndroid Build Coastguard Worker  // the job was successfully launched.
604*d5c09012SAndroid Build Coastguard Worker  Job job = 1;
605*d5c09012SAndroid Build Coastguard Worker}
606*d5c09012SAndroid Build Coastguard Worker
607*d5c09012SAndroid Build Coastguard Worker// Used in the error_details field of a google.rpc.Status message, this
608*d5c09012SAndroid Build Coastguard Worker// indicates problems with the template parameter.
609*d5c09012SAndroid Build Coastguard Workermessage InvalidTemplateParameters {
610*d5c09012SAndroid Build Coastguard Worker  // A specific template-parameter violation.
611*d5c09012SAndroid Build Coastguard Worker  message ParameterViolation {
612*d5c09012SAndroid Build Coastguard Worker    // The parameter that failed to validate.
613*d5c09012SAndroid Build Coastguard Worker    string parameter = 1;
614*d5c09012SAndroid Build Coastguard Worker
615*d5c09012SAndroid Build Coastguard Worker    // A description of why the parameter failed to validate.
616*d5c09012SAndroid Build Coastguard Worker    string description = 2;
617*d5c09012SAndroid Build Coastguard Worker  }
618*d5c09012SAndroid Build Coastguard Worker
619*d5c09012SAndroid Build Coastguard Worker  // Describes all parameter violations in a template request.
620*d5c09012SAndroid Build Coastguard Worker  repeated ParameterViolation parameter_violations = 1;
621*d5c09012SAndroid Build Coastguard Worker}
622*d5c09012SAndroid Build Coastguard Worker
623*d5c09012SAndroid Build Coastguard Worker// Params which should be passed when launching a dynamic template.
624*d5c09012SAndroid Build Coastguard Workermessage DynamicTemplateLaunchParams {
625*d5c09012SAndroid Build Coastguard Worker  // Path to dynamic template spec file on Cloud Storage.
626*d5c09012SAndroid Build Coastguard Worker  // The file must be a Json serialized DynamicTemplateFieSpec object.
627*d5c09012SAndroid Build Coastguard Worker  string gcs_path = 1;
628*d5c09012SAndroid Build Coastguard Worker
629*d5c09012SAndroid Build Coastguard Worker  // Cloud Storage path for staging dependencies.
630*d5c09012SAndroid Build Coastguard Worker  // Must be a valid Cloud Storage URL, beginning with `gs://`.
631*d5c09012SAndroid Build Coastguard Worker  string staging_location = 2;
632*d5c09012SAndroid Build Coastguard Worker}
633