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