summaryrefslogtreecommitdiff
path: root/third_party/googleapis/google/dataflow
diff options
context:
space:
mode:
authorn1c00o <git.n1c00o@gmail.com>2022-10-12 18:05:45 +0200
committern1c00o <git.n1c00o@gmail.com>2022-10-12 18:05:45 +0200
commit9bcf3fedd50bd6c8dfef1673482d9b61fab49cd0 (patch)
tree45f3b754ece09b90bde859bc6e7eae4d3c31a848 /third_party/googleapis/google/dataflow
parent2e1a2ee3d6c12d8367cbbe005fe7dcf8d253d9ac (diff)
Revendor correctly googleapis
Diffstat (limited to 'third_party/googleapis/google/dataflow')
-rw-r--r--third_party/googleapis/google/dataflow/BUILD.bazel41
-rw-r--r--third_party/googleapis/google/dataflow/v1beta3/BUILD.bazel402
-rw-r--r--third_party/googleapis/google/dataflow/v1beta3/dataflow_grpc_service_config.json24
-rw-r--r--third_party/googleapis/google/dataflow/v1beta3/dataflow_v1beta3.yaml75
-rw-r--r--third_party/googleapis/google/dataflow/v1beta3/environment.proto554
-rw-r--r--third_party/googleapis/google/dataflow/v1beta3/jobs.proto926
-rw-r--r--third_party/googleapis/google/dataflow/v1beta3/messages.proto238
-rw-r--r--third_party/googleapis/google/dataflow/v1beta3/metrics.proto369
-rw-r--r--third_party/googleapis/google/dataflow/v1beta3/snapshots.proto188
-rw-r--r--third_party/googleapis/google/dataflow/v1beta3/streaming.proto231
-rw-r--r--third_party/googleapis/google/dataflow/v1beta3/templates.proto632
11 files changed, 3680 insertions, 0 deletions
diff --git a/third_party/googleapis/google/dataflow/BUILD.bazel b/third_party/googleapis/google/dataflow/BUILD.bazel
new file mode 100644
index 0000000..dbdd328
--- /dev/null
+++ b/third_party/googleapis/google/dataflow/BUILD.bazel
@@ -0,0 +1,41 @@
+# This build file includes a target for the Ruby wrapper library for
+# google-cloud-dataflow.
+
+# This is an API workspace, having public visibility by default makes perfect sense.
+package(default_visibility = ["//visibility:public"])
+
+# Export yaml configs.
+exports_files(glob(["*.yaml"]))
+
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "ruby_cloud_gapic_library",
+ "ruby_gapic_assembly_pkg",
+)
+
+# Generates a Ruby wrapper client for dataflow.
+# Ruby wrapper clients are versionless, but are generated from source protos
+# for a particular service version, v1beta3 in this case.
+ruby_cloud_gapic_library(
+ name = "dataflow_ruby_wrapper",
+ srcs = ["//google/dataflow/v1beta3:dataflow_proto_with_info"],
+ extra_protoc_parameters = [
+ "ruby-cloud-gem-name=google-cloud-dataflow",
+ "ruby-cloud-env-prefix=DATAFLOW",
+ "ruby-cloud-wrapper-of=v1beta3:0.0",
+ "ruby-cloud-product-url=https://cloud.google.com/dataflow",
+ "ruby-cloud-api-id=dataflow.googleapis.com",
+ "ruby-cloud-api-shortname=dataflow",
+ "ruby-cloud-service-override=JobsV1Beta3=Jobs;MessagesV1Beta3=Messages;MetricsV1Beta3=Metrics;SnapshotsV1Beta3=Snapshots",
+ ],
+ ruby_cloud_description = "Dataflow is a managed service for executing a wide variety of data processing patterns.",
+ ruby_cloud_title = "Dataflow",
+)
+
+# Open Source package.
+ruby_gapic_assembly_pkg(
+ name = "google-cloud-dataflow-ruby",
+ deps = [
+ ":dataflow_ruby_wrapper",
+ ],
+)
diff --git a/third_party/googleapis/google/dataflow/v1beta3/BUILD.bazel b/third_party/googleapis/google/dataflow/v1beta3/BUILD.bazel
new file mode 100644
index 0000000..1600127
--- /dev/null
+++ b/third_party/googleapis/google/dataflow/v1beta3/BUILD.bazel
@@ -0,0 +1,402 @@
+# This file was automatically generated by BuildFileGenerator
+# https://github.com/googleapis/rules_gapic/tree/master/bazel
+
+# Most of the manual changes to this file will be overwritten.
+# It's **only** allowed to change the following rule attribute values:
+# - names of *_gapic_assembly_* rules
+# - certain parameters of *_gapic_library rules, including but not limited to:
+# * extra_protoc_parameters
+# * extra_protoc_file_parameters
+# The complete list of preserved parameters can be found in the source code.
+
+# This is an API workspace, having public visibility by default makes perfect sense.
+package(default_visibility = ["//visibility:public"])
+
+##############################################################################
+# Common
+##############################################################################
+load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info")
+
+proto_library(
+ name = "dataflow_proto",
+ srcs = [
+ "environment.proto",
+ "jobs.proto",
+ "messages.proto",
+ "metrics.proto",
+ "snapshots.proto",
+ "streaming.proto",
+ "templates.proto",
+ ],
+ deps = [
+ "//google/api:annotations_proto",
+ "//google/api:client_proto",
+ "//google/api:field_behavior_proto",
+ "//google/rpc:status_proto",
+ "@com_google_protobuf//:any_proto",
+ "@com_google_protobuf//:duration_proto",
+ "@com_google_protobuf//:struct_proto",
+ "@com_google_protobuf//:timestamp_proto",
+ ],
+)
+
+proto_library_with_info(
+ name = "dataflow_proto_with_info",
+ deps = [
+ ":dataflow_proto",
+ "//google/cloud:common_resources_proto",
+ ],
+)
+
+##############################################################################
+# Java
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "java_gapic_assembly_gradle_pkg",
+ "java_gapic_library",
+ "java_gapic_test",
+ "java_grpc_library",
+ "java_proto_library",
+)
+
+java_proto_library(
+ name = "dataflow_java_proto",
+ deps = [":dataflow_proto"],
+)
+
+java_grpc_library(
+ name = "dataflow_java_grpc",
+ srcs = [":dataflow_proto"],
+ deps = [":dataflow_java_proto"],
+)
+
+java_gapic_library(
+ name = "dataflow_java_gapic",
+ srcs = [":dataflow_proto_with_info"],
+ gapic_yaml = None,
+ grpc_service_config = "dataflow_grpc_service_config.json",
+ service_yaml = "dataflow_v1beta3.yaml",
+ test_deps = [
+ ":dataflow_java_grpc",
+ ],
+ transport = "grpc+rest",
+ deps = [
+ ":dataflow_java_proto",
+ "//google/api:api_java_proto",
+ ],
+)
+
+java_gapic_test(
+ name = "dataflow_java_gapic_test_suite",
+ test_classes = [
+ "com.google.dataflow.v1beta3.FlexTemplatesServiceClientHttpJsonTest",
+ "com.google.dataflow.v1beta3.FlexTemplatesServiceClientTest",
+ "com.google.dataflow.v1beta3.JobsV1Beta3ClientHttpJsonTest",
+ "com.google.dataflow.v1beta3.JobsV1Beta3ClientTest",
+ "com.google.dataflow.v1beta3.MessagesV1Beta3ClientHttpJsonTest",
+ "com.google.dataflow.v1beta3.MessagesV1Beta3ClientTest",
+ "com.google.dataflow.v1beta3.MetricsV1Beta3ClientHttpJsonTest",
+ "com.google.dataflow.v1beta3.MetricsV1Beta3ClientTest",
+ "com.google.dataflow.v1beta3.SnapshotsV1Beta3ClientHttpJsonTest",
+ "com.google.dataflow.v1beta3.SnapshotsV1Beta3ClientTest",
+ "com.google.dataflow.v1beta3.TemplatesServiceClientHttpJsonTest",
+ "com.google.dataflow.v1beta3.TemplatesServiceClientTest",
+ ],
+ runtime_deps = [":dataflow_java_gapic_test"],
+)
+
+# Open Source Packages
+java_gapic_assembly_gradle_pkg(
+ name = "google-cloud-dataflow-v1beta3-java",
+ transport = "grpc+rest",
+ deps = [
+ ":dataflow_java_gapic",
+ ":dataflow_java_grpc",
+ ":dataflow_java_proto",
+ ":dataflow_proto",
+ ],
+)
+
+##############################################################################
+# Go
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "go_gapic_assembly_pkg",
+ "go_gapic_library",
+ "go_proto_library",
+ "go_test",
+)
+
+go_proto_library(
+ name = "dataflow_go_proto",
+ compilers = ["@io_bazel_rules_go//proto:go_grpc"],
+ importpath = "google.golang.org/genproto/googleapis/dataflow/v1beta3",
+ protos = [":dataflow_proto"],
+ deps = [
+ "//google/api:annotations_go_proto",
+ "//google/rpc:status_go_proto",
+ ],
+)
+
+go_gapic_library(
+ name = "dataflow_go_gapic",
+ srcs = [":dataflow_proto_with_info"],
+ grpc_service_config = "dataflow_grpc_service_config.json",
+ importpath = "cloud.google.com/go/dataflow/apiv1beta3;dataflow",
+ metadata = True,
+ service_yaml = "dataflow_v1beta3.yaml",
+ transport = "grpc+rest",
+ deps = [
+ ":dataflow_go_proto",
+ "@io_bazel_rules_go//proto/wkt:duration_go_proto",
+ ],
+)
+
+go_test(
+ name = "dataflow_go_gapic_test",
+ srcs = [":dataflow_go_gapic_srcjar_test"],
+ embed = [":dataflow_go_gapic"],
+ importpath = "cloud.google.com/go/dataflow/apiv1beta3",
+)
+
+# Open Source Packages
+go_gapic_assembly_pkg(
+ name = "gapi-cloud-dataflow-v1beta3-go",
+ deps = [
+ ":dataflow_go_gapic",
+ ":dataflow_go_gapic_srcjar-metadata.srcjar",
+ ":dataflow_go_gapic_srcjar-test.srcjar",
+ ":dataflow_go_proto",
+ ],
+)
+
+##############################################################################
+# Python
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "py_gapic_assembly_pkg",
+ "py_gapic_library",
+ "py_test",
+)
+
+py_gapic_library(
+ name = "dataflow_py_gapic",
+ srcs = [":dataflow_proto"],
+ grpc_service_config = "dataflow_grpc_service_config.json",
+ opt_args = [
+ "python-gapic-name=dataflow",
+ "python-gapic-namespace=google.cloud",
+ "warehouse-package-name=google-cloud-dataflow-client",
+ ],
+ transport = "grpc+rest",
+)
+
+py_test(
+ name = "dataflow_py_gapic_test",
+ srcs = [
+ "dataflow_py_gapic_pytest.py",
+ "dataflow_py_gapic_test.py",
+ ],
+ legacy_create_init = False,
+ deps = [":dataflow_py_gapic"],
+)
+
+# Open Source Packages
+py_gapic_assembly_pkg(
+ name = "dataflow-v1beta3-py",
+ deps = [
+ ":dataflow_py_gapic",
+ ],
+)
+
+##############################################################################
+# PHP
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "php_gapic_assembly_pkg",
+ "php_gapic_library",
+ "php_grpc_library",
+ "php_proto_library",
+)
+
+php_proto_library(
+ name = "dataflow_php_proto",
+ deps = [":dataflow_proto"],
+)
+
+php_grpc_library(
+ name = "dataflow_php_grpc",
+ srcs = [":dataflow_proto"],
+ deps = [":dataflow_php_proto"],
+)
+
+php_gapic_library(
+ name = "dataflow_php_gapic",
+ srcs = [":dataflow_proto_with_info"],
+ grpc_service_config = "dataflow_grpc_service_config.json",
+ service_yaml = "dataflow_v1beta3.yaml",
+ deps = [
+ ":dataflow_php_grpc",
+ ":dataflow_php_proto",
+ ],
+)
+
+# Open Source Packages
+php_gapic_assembly_pkg(
+ name = "google-cloud-dataflow-v1beta3-php",
+ deps = [
+ ":dataflow_php_gapic",
+ ":dataflow_php_grpc",
+ ":dataflow_php_proto",
+ ],
+)
+
+##############################################################################
+# Node.js
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "nodejs_gapic_assembly_pkg",
+ "nodejs_gapic_library",
+)
+
+nodejs_gapic_library(
+ name = "dataflow_nodejs_gapic",
+ package_name = "@google-cloud/dataflow",
+ src = ":dataflow_proto_with_info",
+ extra_protoc_parameters = ["metadata"],
+ grpc_service_config = "dataflow_grpc_service_config.json",
+ package = "google.dataflow.v1beta3",
+ service_yaml = "dataflow_v1beta3.yaml",
+ deps = [],
+)
+
+nodejs_gapic_assembly_pkg(
+ name = "dataflow-v1beta3-nodejs",
+ deps = [
+ ":dataflow_nodejs_gapic",
+ ":dataflow_proto",
+ ],
+)
+
+##############################################################################
+# Ruby
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "ruby_cloud_gapic_library",
+ "ruby_gapic_assembly_pkg",
+ "ruby_grpc_library",
+ "ruby_proto_library",
+)
+
+ruby_proto_library(
+ name = "dataflow_ruby_proto",
+ deps = [":dataflow_proto"],
+)
+
+ruby_grpc_library(
+ name = "dataflow_ruby_grpc",
+ srcs = [":dataflow_proto"],
+ deps = [":dataflow_ruby_proto"],
+)
+
+ruby_cloud_gapic_library(
+ name = "dataflow_ruby_gapic",
+ srcs = [":dataflow_proto_with_info"],
+ extra_protoc_parameters = [
+ "ruby-cloud-api-id=dataflow.googleapis.com",
+ "ruby-cloud-api-shortname=dataflow",
+ "ruby-cloud-env-prefix=DATAFLOW",
+ "ruby-cloud-gem-name=google-cloud-dataflow-v1beta3",
+ "ruby-cloud-product-url=https://cloud.google.com/dataflow",
+ "ruby-cloud-service-override=JobsV1Beta3=Jobs;MessagesV1Beta3=Messages;MetricsV1Beta3=Metrics;SnapshotsV1Beta3=Snapshots",
+ ],
+ grpc_service_config = "dataflow_grpc_service_config.json",
+ ruby_cloud_description = "Dataflow is a managed service for executing a wide variety of data processing patterns.",
+ ruby_cloud_title = "Dataflow V1beta3",
+ deps = [
+ ":dataflow_ruby_grpc",
+ ":dataflow_ruby_proto",
+ ],
+)
+
+# Open Source Packages
+ruby_gapic_assembly_pkg(
+ name = "google-cloud-dataflow-v1beta3-ruby",
+ deps = [
+ ":dataflow_ruby_gapic",
+ ":dataflow_ruby_grpc",
+ ":dataflow_ruby_proto",
+ ],
+)
+
+##############################################################################
+# C#
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "csharp_gapic_assembly_pkg",
+ "csharp_gapic_library",
+ "csharp_grpc_library",
+ "csharp_proto_library",
+)
+
+csharp_proto_library(
+ name = "dataflow_csharp_proto",
+ deps = [":dataflow_proto"],
+)
+
+csharp_grpc_library(
+ name = "dataflow_csharp_grpc",
+ srcs = [":dataflow_proto"],
+ deps = [":dataflow_csharp_proto"],
+)
+
+csharp_gapic_library(
+ name = "dataflow_csharp_gapic",
+ srcs = [":dataflow_proto_with_info"],
+ common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json",
+ grpc_service_config = "dataflow_grpc_service_config.json",
+ service_yaml = "dataflow_v1beta3.yaml",
+ deps = [
+ ":dataflow_csharp_grpc",
+ ":dataflow_csharp_proto",
+ ],
+)
+
+# Open Source Packages
+csharp_gapic_assembly_pkg(
+ name = "google-cloud-dataflow-v1beta3-csharp",
+ deps = [
+ ":dataflow_csharp_gapic",
+ ":dataflow_csharp_grpc",
+ ":dataflow_csharp_proto",
+ ],
+)
+
+##############################################################################
+# C++
+##############################################################################
+load(
+ "@com_google_googleapis_imports//:imports.bzl",
+ "cc_grpc_library",
+ "cc_proto_library",
+)
+
+cc_proto_library(
+ name = "dataflow_cc_proto",
+ deps = [":dataflow_proto"],
+)
+
+cc_grpc_library(
+ name = "dataflow_cc_grpc",
+ srcs = [":dataflow_proto"],
+ grpc_only = True,
+ deps = [":dataflow_cc_proto"],
+)
diff --git a/third_party/googleapis/google/dataflow/v1beta3/dataflow_grpc_service_config.json b/third_party/googleapis/google/dataflow/v1beta3/dataflow_grpc_service_config.json
new file mode 100644
index 0000000..0a6e2cd
--- /dev/null
+++ b/third_party/googleapis/google/dataflow/v1beta3/dataflow_grpc_service_config.json
@@ -0,0 +1,24 @@
+{
+ "methodConfig": [
+ {
+ "name": [
+ {
+ "service": "google.dataflow.v1beta3.JobsV1Beta3"
+ },
+ {
+ "service": "google.dataflow.v1beta3.MessagesV1Beta3"
+ },
+ {
+ "service": "google.dataflow.v1beta3.MetricsV1Beta3"
+ },
+ {
+ "service": "google.dataflow.v1beta3.SnapshotsV1Beta3"
+ },
+ {
+ "service": "google.dataflow.v1beta3.TemplatesService"
+ }
+ ],
+ "timeout": "60s"
+ }
+ ]
+}
diff --git a/third_party/googleapis/google/dataflow/v1beta3/dataflow_v1beta3.yaml b/third_party/googleapis/google/dataflow/v1beta3/dataflow_v1beta3.yaml
new file mode 100644
index 0000000..6699f41
--- /dev/null
+++ b/third_party/googleapis/google/dataflow/v1beta3/dataflow_v1beta3.yaml
@@ -0,0 +1,75 @@
+type: google.api.Service
+config_version: 3
+name: dataflow.googleapis.com
+title: Dataflow API
+
+apis:
+- name: google.dataflow.v1beta3.FlexTemplatesService
+- name: google.dataflow.v1beta3.JobsV1Beta3
+- name: google.dataflow.v1beta3.MessagesV1Beta3
+- name: google.dataflow.v1beta3.MetricsV1Beta3
+- name: google.dataflow.v1beta3.SnapshotsV1Beta3
+- name: google.dataflow.v1beta3.TemplatesService
+
+documentation:
+ summary: Manages Google Cloud Dataflow projects on Google Cloud Platform.
+
+backend:
+ rules:
+ - selector: google.dataflow.v1beta3.FlexTemplatesService.LaunchFlexTemplate
+ deadline: 30.0
+ - selector: 'google.dataflow.v1beta3.JobsV1Beta3.*'
+ deadline: 30.0
+ - selector: google.dataflow.v1beta3.MessagesV1Beta3.ListJobMessages
+ deadline: 30.0
+ - selector: 'google.dataflow.v1beta3.MetricsV1Beta3.*'
+ deadline: 30.0
+ - selector: 'google.dataflow.v1beta3.SnapshotsV1Beta3.*'
+ deadline: 30.0
+ - selector: 'google.dataflow.v1beta3.TemplatesService.*'
+ deadline: 30.0
+
+authentication:
+ rules:
+ - selector: google.dataflow.v1beta3.FlexTemplatesService.LaunchFlexTemplate
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/compute,
+ https://www.googleapis.com/auth/compute.readonly,
+ https://www.googleapis.com/auth/userinfo.email
+ - selector: 'google.dataflow.v1beta3.JobsV1Beta3.*'
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/compute,
+ https://www.googleapis.com/auth/compute.readonly,
+ https://www.googleapis.com/auth/userinfo.email
+ - selector: google.dataflow.v1beta3.MessagesV1Beta3.ListJobMessages
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/compute,
+ https://www.googleapis.com/auth/compute.readonly,
+ https://www.googleapis.com/auth/userinfo.email
+ - selector: 'google.dataflow.v1beta3.MetricsV1Beta3.*'
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/compute,
+ https://www.googleapis.com/auth/compute.readonly,
+ https://www.googleapis.com/auth/userinfo.email
+ - selector: 'google.dataflow.v1beta3.SnapshotsV1Beta3.*'
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/compute,
+ https://www.googleapis.com/auth/compute.readonly,
+ https://www.googleapis.com/auth/userinfo.email
+ - selector: 'google.dataflow.v1beta3.TemplatesService.*'
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/compute,
+ https://www.googleapis.com/auth/compute.readonly,
+ https://www.googleapis.com/auth/userinfo.email
diff --git a/third_party/googleapis/google/dataflow/v1beta3/environment.proto b/third_party/googleapis/google/dataflow/v1beta3/environment.proto
new file mode 100644
index 0000000..04ad7d7
--- /dev/null
+++ b/third_party/googleapis/google/dataflow/v1beta3/environment.proto
@@ -0,0 +1,554 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.dataflow.v1beta3;
+
+import "google/api/field_behavior.proto";
+import "google/protobuf/any.proto";
+import "google/protobuf/struct.proto";
+
+option csharp_namespace = "Google.Cloud.Dataflow.V1Beta3";
+option go_package = "google.golang.org/genproto/googleapis/dataflow/v1beta3;dataflow";
+option java_multiple_files = true;
+option java_outer_classname = "EnvironmentProto";
+option java_package = "com.google.dataflow.v1beta3";
+option php_namespace = "Google\\Cloud\\Dataflow\\V1beta3";
+option ruby_package = "Google::Cloud::Dataflow::V1beta3";
+
+// Describes the environment in which a Dataflow Job runs.
+message Environment {
+ // The prefix of the resources the system should use for temporary
+ // storage. The system will append the suffix "/temp-{JOBNAME} to
+ // this resource prefix, where {JOBNAME} is the value of the
+ // job_name field. The resulting bucket and object prefix is used
+ // as the prefix of the resources used to store temporary data
+ // needed during the job execution. NOTE: This will override the
+ // value in taskrunner_settings.
+ // The supported resource type is:
+ //
+ // Google Cloud Storage:
+ //
+ // storage.googleapis.com/{bucket}/{object}
+ // bucket.storage.googleapis.com/{object}
+ string temp_storage_prefix = 1;
+
+ // The type of cluster manager API to use. If unknown or
+ // unspecified, the service will attempt to choose a reasonable
+ // default. This should be in the form of the API service name,
+ // e.g. "compute.googleapis.com".
+ string cluster_manager_api_service = 2;
+
+ // The list of experiments to enable. This field should be used for SDK
+ // related experiments and not for service related experiments. The proper
+ // field for service related experiments is service_options.
+ repeated string experiments = 3;
+
+ // The list of service options to enable. This field should be used for
+ // service related experiments only. These experiments, when graduating to GA,
+ // should be replaced by dedicated fields or become default (i.e. always on).
+ repeated string service_options = 16;
+
+ // If set, contains the Cloud KMS key identifier used to encrypt data
+ // at rest, AKA a Customer Managed Encryption Key (CMEK).
+ //
+ // Format:
+ // projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY
+ string service_kms_key_name = 12;
+
+ // The worker pools. At least one "harness" worker pool must be
+ // specified in order for the job to have workers.
+ repeated WorkerPool worker_pools = 4;
+
+ // A description of the process that generated the request.
+ google.protobuf.Struct user_agent = 5;
+
+ // A structure describing which components and their versions of the service
+ // are required in order to run the job.
+ google.protobuf.Struct version = 6;
+
+ // The dataset for the current project where various workflow
+ // related tables are stored.
+ //
+ // The supported resource type is:
+ //
+ // Google BigQuery:
+ // bigquery.googleapis.com/{dataset}
+ string dataset = 7;
+
+ // The Cloud Dataflow SDK pipeline options specified by the user. These
+ // options are passed through the service and are used to recreate the
+ // SDK pipeline options on the worker in a language agnostic and platform
+ // independent way.
+ google.protobuf.Struct sdk_pipeline_options = 8;
+
+ // Experimental settings.
+ google.protobuf.Any internal_experiments = 9;
+
+ // Identity to run virtual machines as. Defaults to the default account.
+ string service_account_email = 10;
+
+ // Which Flexible Resource Scheduling mode to run in.
+ FlexResourceSchedulingGoal flex_resource_scheduling_goal = 11;
+
+ // The Compute Engine region
+ // (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in
+ // which worker processing should occur, e.g. "us-west1". Mutually exclusive
+ // with worker_zone. If neither worker_region nor worker_zone is specified,
+ // default to the control plane's region.
+ string worker_region = 13;
+
+ // The Compute Engine zone
+ // (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in
+ // which worker processing should occur, e.g. "us-west1-a". Mutually exclusive
+ // with worker_region. If neither worker_region nor worker_zone is specified,
+ // a zone in the control plane's region is chosen based on available capacity.
+ string worker_zone = 14;
+
+ // Output only. The shuffle mode used for the job.
+ ShuffleMode shuffle_mode = 15 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Any debugging options to be supplied to the job.
+ DebugOptions debug_options = 17;
+}
+
+// The packages that must be installed in order for a worker to run the
+// steps of the Cloud Dataflow job that will be assigned to its worker
+// pool.
+//
+// This is the mechanism by which the Cloud Dataflow SDK causes code to
+// be loaded onto the workers. For example, the Cloud Dataflow Java SDK
+// might use this to install jars containing the user's code and all of the
+// various dependencies (libraries, data files, etc.) required in order
+// for that code to run.
+message Package {
+ // The name of the package.
+ string name = 1;
+
+ // The resource to read the package from. The supported resource type is:
+ //
+ // Google Cloud Storage:
+ //
+ // storage.googleapis.com/{bucket}
+ // bucket.storage.googleapis.com/
+ string location = 2;
+}
+
+// Specifies the processing model used by a
+// [google.dataflow.v1beta3.Job], which determines the way the Job is
+// managed by the Cloud Dataflow service (how workers are scheduled, how
+// inputs are sharded, etc).
+enum JobType {
+ // The type of the job is unspecified, or unknown.
+ JOB_TYPE_UNKNOWN = 0;
+
+ // A batch job with a well-defined end point: data is read, data is
+ // processed, data is written, and the job is done.
+ JOB_TYPE_BATCH = 1;
+
+ // A continuously streaming job with no end: data is read,
+ // processed, and written continuously.
+ JOB_TYPE_STREAMING = 2;
+}
+
+// Specifies the resource to optimize for in Flexible Resource Scheduling.
+enum FlexResourceSchedulingGoal {
+ // Run in the default mode.
+ FLEXRS_UNSPECIFIED = 0;
+
+ // Optimize for lower execution time.
+ FLEXRS_SPEED_OPTIMIZED = 1;
+
+ // Optimize for lower cost.
+ FLEXRS_COST_OPTIMIZED = 2;
+}
+
+// Describes the data disk used by a workflow job.
+message Disk {
+ // Size of disk in GB. If zero or unspecified, the service will
+ // attempt to choose a reasonable default.
+ int32 size_gb = 1;
+
+ // Disk storage type, as defined by Google Compute Engine. This
+ // must be a disk type appropriate to the project and zone in which
+ // the workers will run. If unknown or unspecified, the service
+ // will attempt to choose a reasonable default.
+ //
+ // For example, the standard persistent disk type is a resource name
+ // typically ending in "pd-standard". If SSD persistent disks are
+ // available, the resource name typically ends with "pd-ssd". The
+ // actual valid values are defined the Google Compute Engine API,
+ // not by the Cloud Dataflow API; consult the Google Compute Engine
+ // documentation for more information about determining the set of
+ // available disk types for a particular project and zone.
+ //
+ // Google Compute Engine Disk types are local to a particular
+ // project in a particular zone, and so the resource name will
+ // typically look something like this:
+ //
+ // compute.googleapis.com/projects/project-id/zones/zone/diskTypes/pd-standard
+ string disk_type = 2;
+
+ // Directory in a VM where disk is mounted.
+ string mount_point = 3;
+}
+
+// Provides data to pass through to the worker harness.
+message WorkerSettings {
+ // The base URL for accessing Google Cloud APIs.
+ //
+ // When workers access Google Cloud APIs, they logically do so via
+ // relative URLs. If this field is specified, it supplies the base
+ // URL to use for resolving these relative URLs. The normative
+ // algorithm used is defined by RFC 1808, "Relative Uniform Resource
+ // Locators".
+ //
+ // If not specified, the default value is "http://www.googleapis.com/"
+ string base_url = 1;
+
+ // Whether to send work progress updates to the service.
+ bool reporting_enabled = 2;
+
+ // The Cloud Dataflow service path relative to the root URL, for example,
+ // "dataflow/v1b3/projects".
+ string service_path = 3;
+
+ // The Shuffle service path relative to the root URL, for example,
+ // "shuffle/v1beta1".
+ string shuffle_service_path = 4;
+
+ // The ID of the worker running this pipeline.
+ string worker_id = 5;
+
+ // The prefix of the resources the system should use for temporary
+ // storage.
+ //
+ // The supported resource type is:
+ //
+ // Google Cloud Storage:
+ //
+ // storage.googleapis.com/{bucket}/{object}
+ // bucket.storage.googleapis.com/{object}
+ string temp_storage_prefix = 6;
+}
+
+// Taskrunner configuration settings.
+message TaskRunnerSettings {
+ // The UNIX user ID on the worker VM to use for tasks launched by
+ // taskrunner; e.g. "root".
+ string task_user = 1;
+
+ // The UNIX group ID on the worker VM to use for tasks launched by
+ // taskrunner; e.g. "wheel".
+ string task_group = 2;
+
+ // The OAuth2 scopes to be requested by the taskrunner in order to
+ // access the Cloud Dataflow API.
+ repeated string oauth_scopes = 3;
+
+ // The base URL for the taskrunner to use when accessing Google Cloud APIs.
+ //
+ // When workers access Google Cloud APIs, they logically do so via
+ // relative URLs. If this field is specified, it supplies the base
+ // URL to use for resolving these relative URLs. The normative
+ // algorithm used is defined by RFC 1808, "Relative Uniform Resource
+ // Locators".
+ //
+ // If not specified, the default value is "http://www.googleapis.com/"
+ string base_url = 4;
+
+ // The API version of endpoint, e.g. "v1b3"
+ string dataflow_api_version = 5;
+
+ // The settings to pass to the parallel worker harness.
+ WorkerSettings parallel_worker_settings = 6;
+
+ // The location on the worker for task-specific subdirectories.
+ string base_task_dir = 7;
+
+ // Whether to continue taskrunner if an exception is hit.
+ bool continue_on_exception = 8;
+
+ // Whether to send taskrunner log info to Google Compute Engine VM serial
+ // console.
+ bool log_to_serialconsole = 9;
+
+ // Whether to also send taskrunner log info to stderr.
+ bool alsologtostderr = 10;
+
+ // Indicates where to put logs. If this is not specified, the logs
+ // will not be uploaded.
+ //
+ // The supported resource type is:
+ //
+ // Google Cloud Storage:
+ // storage.googleapis.com/{bucket}/{object}
+ // bucket.storage.googleapis.com/{object}
+ string log_upload_location = 11;
+
+ // The directory on the VM to store logs.
+ string log_dir = 12;
+
+ // The prefix of the resources the taskrunner should use for
+ // temporary storage.
+ //
+ // The supported resource type is:
+ //
+ // Google Cloud Storage:
+ // storage.googleapis.com/{bucket}/{object}
+ // bucket.storage.googleapis.com/{object}
+ string temp_storage_prefix = 13;
+
+ // The command to launch the worker harness.
+ string harness_command = 14;
+
+ // The file to store the workflow in.
+ string workflow_file_name = 15;
+
+ // The file to store preprocessing commands in.
+ string commandlines_file_name = 16;
+
+ // The ID string of the VM.
+ string vm_id = 17;
+
+ // The suggested backend language.
+ string language_hint = 18;
+
+ // The streaming worker main class name.
+ string streaming_worker_main_class = 19;
+}
+
+// Specifies what happens to a resource when a Cloud Dataflow
+// [google.dataflow.v1beta3.Job][google.dataflow.v1beta3.Job] has completed.
+enum TeardownPolicy {
+ // The teardown policy isn't specified, or is unknown.
+ TEARDOWN_POLICY_UNKNOWN = 0;
+
+ // Always teardown the resource.
+ TEARDOWN_ALWAYS = 1;
+
+ // Teardown the resource on success. This is useful for debugging
+ // failures.
+ TEARDOWN_ON_SUCCESS = 2;
+
+ // Never teardown the resource. This is useful for debugging and
+ // development.
+ TEARDOWN_NEVER = 3;
+}
+
+// The default set of packages to be staged on a pool of workers.
+enum DefaultPackageSet {
+ // The default set of packages to stage is unknown, or unspecified.
+ DEFAULT_PACKAGE_SET_UNKNOWN = 0;
+
+ // Indicates that no packages should be staged at the worker unless
+ // explicitly specified by the job.
+ DEFAULT_PACKAGE_SET_NONE = 1;
+
+ // Stage packages typically useful to workers written in Java.
+ DEFAULT_PACKAGE_SET_JAVA = 2;
+
+ // Stage packages typically useful to workers written in Python.
+ DEFAULT_PACKAGE_SET_PYTHON = 3;
+}
+
+// Specifies the algorithm used to determine the number of worker
+// processes to run at any given point in time, based on the amount of
+// data left to process, the number of workers, and how quickly
+// existing workers are processing data.
+enum AutoscalingAlgorithm {
+ // The algorithm is unknown, or unspecified.
+ AUTOSCALING_ALGORITHM_UNKNOWN = 0;
+
+ // Disable autoscaling.
+ AUTOSCALING_ALGORITHM_NONE = 1;
+
+ // Increase worker count over time to reduce job execution time.
+ AUTOSCALING_ALGORITHM_BASIC = 2;
+}
+
+// Settings for WorkerPool autoscaling.
+message AutoscalingSettings {
+ // The algorithm to use for autoscaling.
+ AutoscalingAlgorithm algorithm = 1;
+
+ // The maximum number of workers to cap scaling at.
+ int32 max_num_workers = 2;
+}
+
+// Specifies how IP addresses should be allocated to the worker machines.
+enum WorkerIPAddressConfiguration {
+ // The configuration is unknown, or unspecified.
+ WORKER_IP_UNSPECIFIED = 0;
+
+ // Workers should have public IP addresses.
+ WORKER_IP_PUBLIC = 1;
+
+ // Workers should have private IP addresses.
+ WORKER_IP_PRIVATE = 2;
+}
+
+// Defines a SDK harness container for executing Dataflow pipelines.
+message SdkHarnessContainerImage {
+ // A docker container image that resides in Google Container Registry.
+ string container_image = 1;
+
+ // If true, recommends the Dataflow service to use only one core per SDK
+ // container instance with this image. If false (or unset) recommends using
+ // more than one core per SDK container instance with this image for
+ // efficiency. Note that Dataflow service may choose to override this property
+ // if needed.
+ bool use_single_core_per_container = 2;
+
+ // Environment ID for the Beam runner API proto Environment that corresponds
+ // to the current SDK Harness.
+ string environment_id = 3;
+
+ // The set of capabilities enumerated in the above Environment proto. See also
+ // https://github.com/apache/beam/blob/master/model/pipeline/src/main/proto/beam_runner_api.proto
+ repeated string capabilities = 4;
+}
+
+// Describes one particular pool of Cloud Dataflow workers to be
+// instantiated by the Cloud Dataflow service in order to perform the
+// computations required by a job. Note that a workflow job may use
+// multiple pools, in order to match the various computational
+// requirements of the various stages of the job.
+message WorkerPool {
+ // The kind of the worker pool; currently only `harness` and `shuffle`
+ // are supported.
+ string kind = 1;
+
+ // Number of Google Compute Engine workers in this pool needed to
+ // execute the job. If zero or unspecified, the service will
+ // attempt to choose a reasonable default.
+ int32 num_workers = 2;
+
+ // Packages to be installed on workers.
+ repeated Package packages = 3;
+
+ // The default package set to install. This allows the service to
+ // select a default set of packages which are useful to worker
+ // harnesses written in a particular language.
+ DefaultPackageSet default_package_set = 4;
+
+ // Machine type (e.g. "n1-standard-1"). If empty or unspecified, the
+ // service will attempt to choose a reasonable default.
+ string machine_type = 5;
+
+ // Sets the policy for determining when to turndown worker pool.
+ // Allowed values are: `TEARDOWN_ALWAYS`, `TEARDOWN_ON_SUCCESS`, and
+ // `TEARDOWN_NEVER`.
+ // `TEARDOWN_ALWAYS` means workers are always torn down regardless of whether
+ // the job succeeds. `TEARDOWN_ON_SUCCESS` means workers are torn down
+ // if the job succeeds. `TEARDOWN_NEVER` means the workers are never torn
+ // down.
+ //
+ // If the workers are not torn down by the service, they will
+ // continue to run and use Google Compute Engine VM resources in the
+ // user's project until they are explicitly terminated by the user.
+ // Because of this, Google recommends using the `TEARDOWN_ALWAYS`
+ // policy except for small, manually supervised test jobs.
+ //
+ // If unknown or unspecified, the service will attempt to choose a reasonable
+ // default.
+ TeardownPolicy teardown_policy = 6;
+
+ // Size of root disk for VMs, in GB. If zero or unspecified, the service will
+ // attempt to choose a reasonable default.
+ int32 disk_size_gb = 7;
+
+ // Type of root disk for VMs. If empty or unspecified, the service will
+ // attempt to choose a reasonable default.
+ string disk_type = 16;
+
+ // Fully qualified source image for disks.
+ string disk_source_image = 8;
+
+ // Zone to run the worker pools in. If empty or unspecified, the service
+ // will attempt to choose a reasonable default.
+ string zone = 9;
+
+ // Settings passed through to Google Compute Engine workers when
+ // using the standard Dataflow task runner. Users should ignore
+ // this field.
+ TaskRunnerSettings taskrunner_settings = 10;
+
+ // The action to take on host maintenance, as defined by the Google
+ // Compute Engine API.
+ string on_host_maintenance = 11;
+
+ // Data disks that are used by a VM in this workflow.
+ repeated Disk data_disks = 12;
+
+ // Metadata to set on the Google Compute Engine VMs.
+ map<string, string> metadata = 13;
+
+ // Settings for autoscaling of this WorkerPool.
+ AutoscalingSettings autoscaling_settings = 14;
+
+ // Extra arguments for this worker pool.
+ google.protobuf.Any pool_args = 15;
+
+ // Network to which VMs will be assigned. If empty or unspecified,
+ // the service will use the network "default".
+ string network = 17;
+
+ // Subnetwork to which VMs will be assigned, if desired. Expected to be of
+ // the form "regions/REGION/subnetworks/SUBNETWORK".
+ string subnetwork = 19;
+
+ // Required. Docker container image that executes the Cloud Dataflow worker
+ // harness, residing in Google Container Registry.
+ //
+ // Deprecated for the Fn API path. Use sdk_harness_container_images instead.
+ string worker_harness_container_image = 18;
+
+ // The number of threads per worker harness. If empty or unspecified, the
+ // service will choose a number of threads (according to the number of cores
+ // on the selected machine type for batch, or 1 by convention for streaming).
+ int32 num_threads_per_worker = 20;
+
+ // Configuration for VM IPs.
+ WorkerIPAddressConfiguration ip_configuration = 21;
+
+ // Set of SDK harness containers needed to execute this pipeline. This will
+ // only be set in the Fn API path. For non-cross-language pipelines this
+ // should have only one entry. Cross-language pipelines will have two or more
+ // entries.
+ repeated SdkHarnessContainerImage sdk_harness_container_images = 22;
+}
+
+// Specifies the shuffle mode used by a
+// [google.dataflow.v1beta3.Job], which determines the approach data is shuffled
+// during processing. More details in:
+// https://cloud.google.com/dataflow/docs/guides/deploying-a-pipeline#dataflow-shuffle
+enum ShuffleMode {
+ // Shuffle mode information is not available.
+ SHUFFLE_MODE_UNSPECIFIED = 0;
+
+ // Shuffle is done on the worker VMs.
+ VM_BASED = 1;
+
+ // Shuffle is done on the service side.
+ SERVICE_BASED = 2;
+}
+
+// Describes any options that have an effect on the debugging of pipelines.
+message DebugOptions {
+ // When true, enables the logging of the literal hot key to the user's Cloud
+ // Logging.
+ bool enable_hot_key_logging = 1;
+}
diff --git a/third_party/googleapis/google/dataflow/v1beta3/jobs.proto b/third_party/googleapis/google/dataflow/v1beta3/jobs.proto
new file mode 100644
index 0000000..359b787
--- /dev/null
+++ b/third_party/googleapis/google/dataflow/v1beta3/jobs.proto
@@ -0,0 +1,926 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.dataflow.v1beta3;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/dataflow/v1beta3/environment.proto";
+import "google/dataflow/v1beta3/snapshots.proto";
+import "google/protobuf/duration.proto";
+import "google/protobuf/struct.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.Dataflow.V1Beta3";
+option go_package = "google.golang.org/genproto/googleapis/dataflow/v1beta3;dataflow";
+option java_multiple_files = true;
+option java_outer_classname = "JobsProto";
+option java_package = "com.google.dataflow.v1beta3";
+option php_namespace = "Google\\Cloud\\Dataflow\\V1beta3";
+option ruby_package = "Google::Cloud::Dataflow::V1beta3";
+
+// Provides a method to create and modify Google Cloud Dataflow jobs.
+// A Job is a multi-stage computation graph run by the Cloud Dataflow service.
+service JobsV1Beta3 {
+ option (google.api.default_host) = "dataflow.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/compute,"
+ "https://www.googleapis.com/auth/compute.readonly,"
+ "https://www.googleapis.com/auth/userinfo.email";
+
+ // Creates a Cloud Dataflow job.
+ //
+ // To create a job, we recommend using `projects.locations.jobs.create` with a
+ // [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using
+ // `projects.jobs.create` is not recommended, as your job will always start
+ // in `us-central1`.
+ rpc CreateJob(CreateJobRequest) returns (Job) {
+ option (google.api.http) = {
+ post: "/v1b3/projects/{project_id}/locations/{location}/jobs"
+ body: "job"
+ additional_bindings {
+ post: "/v1b3/projects/{project_id}/jobs"
+ body: "job"
+ }
+ };
+ }
+
+ // Gets the state of the specified Cloud Dataflow job.
+ //
+ // To get the state of a job, we recommend using `projects.locations.jobs.get`
+ // with a [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using
+ // `projects.jobs.get` is not recommended, as you can only get the state of
+ // jobs that are running in `us-central1`.
+ rpc GetJob(GetJobRequest) returns (Job) {
+ option (google.api.http) = {
+ get: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}"
+ additional_bindings {
+ get: "/v1b3/projects/{project_id}/jobs/{job_id}"
+ }
+ };
+ }
+
+ // Updates the state of an existing Cloud Dataflow job.
+ //
+ // To update the state of an existing job, we recommend using
+ // `projects.locations.jobs.update` with a [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using
+ // `projects.jobs.update` is not recommended, as you can only update the state
+ // of jobs that are running in `us-central1`.
+ rpc UpdateJob(UpdateJobRequest) returns (Job) {
+ option (google.api.http) = {
+ put: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}"
+ body: "job"
+ additional_bindings {
+ put: "/v1b3/projects/{project_id}/jobs/{job_id}"
+ body: "job"
+ }
+ };
+ }
+
+ // List the jobs of a project.
+ //
+ // To list the jobs of a project in a region, we recommend using
+ // `projects.locations.jobs.list` with a [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). To
+ // list the all jobs across all regions, use `projects.jobs.aggregated`. Using
+ // `projects.jobs.list` is not recommended, as you can only get the list of
+ // jobs that are running in `us-central1`.
+ rpc ListJobs(ListJobsRequest) returns (ListJobsResponse) {
+ option (google.api.http) = {
+ get: "/v1b3/projects/{project_id}/locations/{location}/jobs"
+ additional_bindings {
+ get: "/v1b3/projects/{project_id}/jobs"
+ }
+ };
+ }
+
+ // List the jobs of a project across all regions.
+ rpc AggregatedListJobs(ListJobsRequest) returns (ListJobsResponse) {
+ option (google.api.http) = {
+ get: "/v1b3/projects/{project_id}/jobs:aggregated"
+ };
+ }
+
+ // Check for existence of active jobs in the given project across all regions.
+ rpc CheckActiveJobs(CheckActiveJobsRequest) returns (CheckActiveJobsResponse) {
+ }
+
+ // Snapshot the state of a streaming job.
+ rpc SnapshotJob(SnapshotJobRequest) returns (Snapshot) {
+ option (google.api.http) = {
+ post: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}:snapshot"
+ body: "*"
+ additional_bindings {
+ post: "/v1b3/projects/{project_id}/jobs/{job_id}:snapshot"
+ body: "*"
+ }
+ };
+ }
+}
+
+// Defines a job to be run by the Cloud Dataflow service.
+message Job {
+ // The unique ID of this job.
+ //
+ // This field is set by the Cloud Dataflow service when the Job is
+ // created, and is immutable for the life of the job.
+ string id = 1;
+
+ // The ID of the Cloud Platform project that the job belongs to.
+ string project_id = 2;
+
+ // The user-specified Cloud Dataflow job name.
+ //
+ // Only one Job with a given name may exist in a project at any
+ // given time. If a caller attempts to create a Job with the same
+ // name as an already-existing Job, the attempt returns the
+ // existing Job.
+ //
+ // The name must match the regular expression
+ // `[a-z]([-a-z0-9]{0,1022}[a-z0-9])?`
+ string name = 3;
+
+ // The type of Cloud Dataflow job.
+ JobType type = 4;
+
+ // The environment for the job.
+ Environment environment = 5;
+
+ // Exactly one of step or steps_location should be specified.
+ //
+ // The top-level steps that constitute the entire job. Only retrieved with
+ // JOB_VIEW_ALL.
+ repeated Step steps = 6;
+
+ // The Cloud Storage location where the steps are stored.
+ string steps_location = 24;
+
+ // The current state of the job.
+ //
+ // Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise
+ // specified.
+ //
+ // A job in the `JOB_STATE_RUNNING` state may asynchronously enter a
+ // terminal state. After a job has reached a terminal state, no
+ // further state updates may be made.
+ //
+ // This field may be mutated by the Cloud Dataflow service;
+ // callers cannot mutate it.
+ JobState current_state = 7;
+
+ // The timestamp associated with the current state.
+ google.protobuf.Timestamp current_state_time = 8;
+
+ // The job's requested state.
+ //
+ // `UpdateJob` may be used to switch between the `JOB_STATE_STOPPED` and
+ // `JOB_STATE_RUNNING` states, by setting requested_state. `UpdateJob` may
+ // also be used to directly set a job's requested state to
+ // `JOB_STATE_CANCELLED` or `JOB_STATE_DONE`, irrevocably terminating the
+ // job if it has not already reached a terminal state.
+ JobState requested_state = 9;
+
+ // Deprecated.
+ JobExecutionInfo execution_info = 10;
+
+ // The timestamp when the job was initially created. Immutable and set by the
+ // Cloud Dataflow service.
+ google.protobuf.Timestamp create_time = 11;
+
+ // If this job is an update of an existing job, this field is the job ID
+ // of the job it replaced.
+ //
+ // When sending a `CreateJobRequest`, you can update a job by specifying it
+ // here. The job named here is stopped, and its intermediate state is
+ // transferred to this job.
+ string replace_job_id = 12;
+
+ // The map of transform name prefixes of the job to be replaced to the
+ // corresponding name prefixes of the new job.
+ map<string, string> transform_name_mapping = 13;
+
+ // The client's unique identifier of the job, re-used across retried attempts.
+ // If this field is set, the service will ensure its uniqueness.
+ // The request to create a job will fail if the service has knowledge of a
+ // previously submitted job with the same client's ID and job name.
+ // The caller may use this field to ensure idempotence of job
+ // creation across retried attempts to create a job.
+ // By default, the field is empty and, in that case, the service ignores it.
+ string client_request_id = 14;
+
+ // If another job is an update of this job (and thus, this job is in
+ // `JOB_STATE_UPDATED`), this field contains the ID of that job.
+ string replaced_by_job_id = 15;
+
+ // A set of files the system should be aware of that are used
+ // for temporary storage. These temporary files will be
+ // removed on job completion.
+ // No duplicates are allowed.
+ // No file patterns are supported.
+ //
+ // The supported files are:
+ //
+ // Google Cloud Storage:
+ //
+ // storage.googleapis.com/{bucket}/{object}
+ // bucket.storage.googleapis.com/{object}
+ repeated string temp_files = 16;
+
+ // User-defined labels for this job.
+ //
+ // The labels map can contain no more than 64 entries. Entries of the labels
+ // map are UTF8 strings that comply with the following restrictions:
+ //
+ // * Keys must conform to regexp: [\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62}
+ // * Values must conform to regexp: [\p{Ll}\p{Lo}\p{N}_-]{0,63}
+ // * Both keys and values are additionally constrained to be <= 128 bytes in
+ // size.
+ map<string, string> labels = 17;
+
+ // The [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
+ // contains this job.
+ string location = 18;
+
+ // Preliminary field: The format of this data may change at any time.
+ // A description of the user pipeline and stages through which it is executed.
+ // Created by Cloud Dataflow service. Only retrieved with
+ // JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL.
+ PipelineDescription pipeline_description = 19;
+
+ // This field may be mutated by the Cloud Dataflow service;
+ // callers cannot mutate it.
+ repeated ExecutionStageState stage_states = 20;
+
+ // This field is populated by the Dataflow service to support filtering jobs
+ // by the metadata values provided here. Populated for ListJobs and all GetJob
+ // views SUMMARY and higher.
+ JobMetadata job_metadata = 21;
+
+ // The timestamp when the job was started (transitioned to JOB_STATE_PENDING).
+ // Flexible resource scheduling jobs are started with some delay after job
+ // creation, so start_time is unset before start and is updated when the
+ // job is started by the Cloud Dataflow service. For other jobs, start_time
+ // always equals to create_time and is immutable and set by the Cloud Dataflow
+ // service.
+ google.protobuf.Timestamp start_time = 22;
+
+ // If this is specified, the job's initial state is populated from the given
+ // snapshot.
+ string created_from_snapshot_id = 23;
+
+ // Reserved for future use. This field is set only in responses from the
+ // server; it is ignored if it is set in any requests.
+ bool satisfies_pzs = 25;
+}
+
+// Metadata for a Datastore connector used by the job.
+message DatastoreIODetails {
+ // Namespace used in the connection.
+ string namespace = 1;
+
+ // ProjectId accessed in the connection.
+ string project_id = 2;
+}
+
+// Metadata for a Pub/Sub connector used by the job.
+message PubSubIODetails {
+ // Topic accessed in the connection.
+ string topic = 1;
+
+ // Subscription used in the connection.
+ string subscription = 2;
+}
+
+// Metadata for a File connector used by the job.
+message FileIODetails {
+ // File Pattern used to access files by the connector.
+ string file_pattern = 1;
+}
+
+// Metadata for a Cloud Bigtable connector used by the job.
+message BigTableIODetails {
+ // ProjectId accessed in the connection.
+ string project_id = 1;
+
+ // InstanceId accessed in the connection.
+ string instance_id = 2;
+
+ // TableId accessed in the connection.
+ string table_id = 3;
+}
+
+// Metadata for a BigQuery connector used by the job.
+message BigQueryIODetails {
+ // Table accessed in the connection.
+ string table = 1;
+
+ // Dataset accessed in the connection.
+ string dataset = 2;
+
+ // Project accessed in the connection.
+ string project_id = 3;
+
+ // Query used to access data in the connection.
+ string query = 4;
+}
+
+// Metadata for a Spanner connector used by the job.
+message SpannerIODetails {
+ // ProjectId accessed in the connection.
+ string project_id = 1;
+
+ // InstanceId accessed in the connection.
+ string instance_id = 2;
+
+ // DatabaseId accessed in the connection.
+ string database_id = 3;
+}
+
+// The version of the SDK used to run the job.
+message SdkVersion {
+ // The support status of the SDK used to run the job.
+ enum SdkSupportStatus {
+ // Cloud Dataflow is unaware of this version.
+ UNKNOWN = 0;
+
+ // This is a known version of an SDK, and is supported.
+ SUPPORTED = 1;
+
+ // A newer version of the SDK family exists, and an update is recommended.
+ STALE = 2;
+
+ // This version of the SDK is deprecated and will eventually be
+ // unsupported.
+ DEPRECATED = 3;
+
+ // Support for this SDK version has ended and it should no longer be used.
+ UNSUPPORTED = 4;
+ }
+
+ // The version of the SDK used to run the job.
+ string version = 1;
+
+ // A readable string describing the version of the SDK.
+ string version_display_name = 2;
+
+ // The support status for this SDK version.
+ SdkSupportStatus sdk_support_status = 3;
+}
+
+// Metadata available primarily for filtering jobs. Will be included in the
+// ListJob response and Job SUMMARY view.
+message JobMetadata {
+ // The SDK version used to run the job.
+ SdkVersion sdk_version = 1;
+
+ // Identification of a Spanner source used in the Dataflow job.
+ repeated SpannerIODetails spanner_details = 2;
+
+ // Identification of a BigQuery source used in the Dataflow job.
+ repeated BigQueryIODetails bigquery_details = 3;
+
+ // Identification of a Cloud Bigtable source used in the Dataflow job.
+ repeated BigTableIODetails big_table_details = 4;
+
+ // Identification of a Pub/Sub source used in the Dataflow job.
+ repeated PubSubIODetails pubsub_details = 5;
+
+ // Identification of a File source used in the Dataflow job.
+ repeated FileIODetails file_details = 6;
+
+ // Identification of a Datastore source used in the Dataflow job.
+ repeated DatastoreIODetails datastore_details = 7;
+}
+
+// A message describing the state of a particular execution stage.
+message ExecutionStageState {
+ // The name of the execution stage.
+ string execution_stage_name = 1;
+
+ // Executions stage states allow the same set of values as JobState.
+ JobState execution_stage_state = 2;
+
+ // The time at which the stage transitioned to this state.
+ google.protobuf.Timestamp current_state_time = 3;
+}
+
+// A descriptive representation of submitted pipeline as well as the executed
+// form. This data is provided by the Dataflow service for ease of visualizing
+// the pipeline and interpreting Dataflow provided metrics.
+message PipelineDescription {
+ // Description of each transform in the pipeline and collections between them.
+ repeated TransformSummary original_pipeline_transform = 1;
+
+ // Description of each stage of execution of the pipeline.
+ repeated ExecutionStageSummary execution_pipeline_stage = 2;
+
+ // Pipeline level display data.
+ repeated DisplayData display_data = 3;
+}
+
+// Type of transform or stage operation.
+enum KindType {
+ // Unrecognized transform type.
+ UNKNOWN_KIND = 0;
+
+ // ParDo transform.
+ PAR_DO_KIND = 1;
+
+ // Group By Key transform.
+ GROUP_BY_KEY_KIND = 2;
+
+ // Flatten transform.
+ FLATTEN_KIND = 3;
+
+ // Read transform.
+ READ_KIND = 4;
+
+ // Write transform.
+ WRITE_KIND = 5;
+
+ // Constructs from a constant value, such as with Create.of.
+ CONSTANT_KIND = 6;
+
+ // Creates a Singleton view of a collection.
+ SINGLETON_KIND = 7;
+
+ // Opening or closing a shuffle session, often as part of a GroupByKey.
+ SHUFFLE_KIND = 8;
+}
+
+// Description of the type, names/ids, and input/outputs for a transform.
+message TransformSummary {
+ // Type of transform.
+ KindType kind = 1;
+
+ // SDK generated id of this transform instance.
+ string id = 2;
+
+ // User provided name for this transform instance.
+ string name = 3;
+
+ // Transform-specific display data.
+ repeated DisplayData display_data = 4;
+
+ // User names for all collection outputs to this transform.
+ repeated string output_collection_name = 5;
+
+ // User names for all collection inputs to this transform.
+ repeated string input_collection_name = 6;
+}
+
+// Description of the composing transforms, names/ids, and input/outputs of a
+// stage of execution. Some composing transforms and sources may have been
+// generated by the Dataflow service during execution planning.
+message ExecutionStageSummary {
+ // Description of an input or output of an execution stage.
+ message StageSource {
+ // Human-readable name for this source; may be user or system generated.
+ string user_name = 1;
+
+ // Dataflow service generated name for this source.
+ string name = 2;
+
+ // User name for the original user transform or collection with which this
+ // source is most closely associated.
+ string original_transform_or_collection = 3;
+
+ // Size of the source, if measurable.
+ int64 size_bytes = 4;
+ }
+
+ // Description of a transform executed as part of an execution stage.
+ message ComponentTransform {
+ // Human-readable name for this transform; may be user or system generated.
+ string user_name = 1;
+
+ // Dataflow service generated name for this source.
+ string name = 2;
+
+ // User name for the original user transform with which this transform is
+ // most closely associated.
+ string original_transform = 3;
+ }
+
+ // Description of an interstitial value between transforms in an execution
+ // stage.
+ message ComponentSource {
+ // Human-readable name for this transform; may be user or system generated.
+ string user_name = 1;
+
+ // Dataflow service generated name for this source.
+ string name = 2;
+
+ // User name for the original user transform or collection with which this
+ // source is most closely associated.
+ string original_transform_or_collection = 3;
+ }
+
+ // Dataflow service generated name for this stage.
+ string name = 1;
+
+ // Dataflow service generated id for this stage.
+ string id = 2;
+
+ // Type of transform this stage is executing.
+ KindType kind = 3;
+
+ // Input sources for this stage.
+ repeated StageSource input_source = 4;
+
+ // Output sources for this stage.
+ repeated StageSource output_source = 5;
+
+ // Other stages that must complete before this stage can run.
+ repeated string prerequisite_stage = 8;
+
+ // Transforms that comprise this execution stage.
+ repeated ComponentTransform component_transform = 6;
+
+ // Collections produced and consumed by component transforms of this stage.
+ repeated ComponentSource component_source = 7;
+}
+
+// Data provided with a pipeline or transform to provide descriptive info.
+message DisplayData {
+ // The key identifying the display data.
+ // This is intended to be used as a label for the display data
+ // when viewed in a dax monitoring system.
+ string key = 1;
+
+ // The namespace for the key. This is usually a class name or programming
+ // language namespace (i.e. python module) which defines the display data.
+ // This allows a dax monitoring system to specially handle the data
+ // and perform custom rendering.
+ string namespace = 2;
+
+ // Various value types which can be used for display data. Only one will be
+ // set.
+ oneof Value {
+ // Contains value if the data is of string type.
+ string str_value = 4;
+
+ // Contains value if the data is of int64 type.
+ int64 int64_value = 5;
+
+ // Contains value if the data is of float type.
+ float float_value = 6;
+
+ // Contains value if the data is of java class type.
+ string java_class_value = 7;
+
+ // Contains value if the data is of timestamp type.
+ google.protobuf.Timestamp timestamp_value = 8;
+
+ // Contains value if the data is of duration type.
+ google.protobuf.Duration duration_value = 9;
+
+ // Contains value if the data is of a boolean type.
+ bool bool_value = 10;
+ }
+
+ // A possible additional shorter value to display.
+ // For example a java_class_name_value of com.mypackage.MyDoFn
+ // will be stored with MyDoFn as the short_str_value and
+ // com.mypackage.MyDoFn as the java_class_name value.
+ // short_str_value can be displayed and java_class_name_value
+ // will be displayed as a tooltip.
+ string short_str_value = 11;
+
+ // An optional full URL.
+ string url = 12;
+
+ // An optional label to display in a dax UI for the element.
+ string label = 13;
+}
+
+// Defines a particular step within a Cloud Dataflow job.
+//
+// A job consists of multiple steps, each of which performs some
+// specific operation as part of the overall job. Data is typically
+// passed from one step to another as part of the job.
+//
+// Here's an example of a sequence of steps which together implement a
+// Map-Reduce job:
+//
+// * Read a collection of data from some source, parsing the
+// collection's elements.
+//
+// * Validate the elements.
+//
+// * Apply a user-defined function to map each element to some value
+// and extract an element-specific key value.
+//
+// * Group elements with the same key into a single element with
+// that key, transforming a multiply-keyed collection into a
+// uniquely-keyed collection.
+//
+// * Write the elements out to some data sink.
+//
+// Note that the Cloud Dataflow service may be used to run many different
+// types of jobs, not just Map-Reduce.
+message Step {
+ // The kind of step in the Cloud Dataflow job.
+ string kind = 1;
+
+ // The name that identifies the step. This must be unique for each
+ // step with respect to all other steps in the Cloud Dataflow job.
+ string name = 2;
+
+ // Named properties associated with the step. Each kind of
+ // predefined step has its own required set of properties.
+ // Must be provided on Create. Only retrieved with JOB_VIEW_ALL.
+ google.protobuf.Struct properties = 3;
+}
+
+// Describes the overall state of a [google.dataflow.v1beta3.Job][google.dataflow.v1beta3.Job].
+enum JobState {
+ // The job's run state isn't specified.
+ JOB_STATE_UNKNOWN = 0;
+
+ // `JOB_STATE_STOPPED` indicates that the job has not
+ // yet started to run.
+ JOB_STATE_STOPPED = 1;
+
+ // `JOB_STATE_RUNNING` indicates that the job is currently running.
+ JOB_STATE_RUNNING = 2;
+
+ // `JOB_STATE_DONE` indicates that the job has successfully completed.
+ // This is a terminal job state. This state may be set by the Cloud Dataflow
+ // service, as a transition from `JOB_STATE_RUNNING`. It may also be set via a
+ // Cloud Dataflow `UpdateJob` call, if the job has not yet reached a terminal
+ // state.
+ JOB_STATE_DONE = 3;
+
+ // `JOB_STATE_FAILED` indicates that the job has failed. This is a
+ // terminal job state. This state may only be set by the Cloud Dataflow
+ // service, and only as a transition from `JOB_STATE_RUNNING`.
+ JOB_STATE_FAILED = 4;
+
+ // `JOB_STATE_CANCELLED` indicates that the job has been explicitly
+ // cancelled. This is a terminal job state. This state may only be
+ // set via a Cloud Dataflow `UpdateJob` call, and only if the job has not
+ // yet reached another terminal state.
+ JOB_STATE_CANCELLED = 5;
+
+ // `JOB_STATE_UPDATED` indicates that the job was successfully updated,
+ // meaning that this job was stopped and another job was started, inheriting
+ // state from this one. This is a terminal job state. This state may only be
+ // set by the Cloud Dataflow service, and only as a transition from
+ // `JOB_STATE_RUNNING`.
+ JOB_STATE_UPDATED = 6;
+
+ // `JOB_STATE_DRAINING` indicates that the job is in the process of draining.
+ // A draining job has stopped pulling from its input sources and is processing
+ // any data that remains in-flight. This state may be set via a Cloud Dataflow
+ // `UpdateJob` call, but only as a transition from `JOB_STATE_RUNNING`. Jobs
+ // that are draining may only transition to `JOB_STATE_DRAINED`,
+ // `JOB_STATE_CANCELLED`, or `JOB_STATE_FAILED`.
+ JOB_STATE_DRAINING = 7;
+
+ // `JOB_STATE_DRAINED` indicates that the job has been drained.
+ // A drained job terminated by stopping pulling from its input sources and
+ // processing any data that remained in-flight when draining was requested.
+ // This state is a terminal state, may only be set by the Cloud Dataflow
+ // service, and only as a transition from `JOB_STATE_DRAINING`.
+ JOB_STATE_DRAINED = 8;
+
+ // `JOB_STATE_PENDING` indicates that the job has been created but is not yet
+ // running. Jobs that are pending may only transition to `JOB_STATE_RUNNING`,
+ // or `JOB_STATE_FAILED`.
+ JOB_STATE_PENDING = 9;
+
+ // `JOB_STATE_CANCELLING` indicates that the job has been explicitly cancelled
+ // and is in the process of stopping. Jobs that are cancelling may only
+ // transition to `JOB_STATE_CANCELLED` or `JOB_STATE_FAILED`.
+ JOB_STATE_CANCELLING = 10;
+
+ // `JOB_STATE_QUEUED` indicates that the job has been created but is being
+ // delayed until launch. Jobs that are queued may only transition to
+ // `JOB_STATE_PENDING` or `JOB_STATE_CANCELLED`.
+ JOB_STATE_QUEUED = 11;
+
+ // `JOB_STATE_RESOURCE_CLEANING_UP` indicates that the batch job's associated
+ // resources are currently being cleaned up after a successful run.
+ // Currently, this is an opt-in feature, please reach out to Cloud support
+ // team if you are interested.
+ JOB_STATE_RESOURCE_CLEANING_UP = 12;
+}
+
+// Additional information about how a Cloud Dataflow job will be executed that
+// isn't contained in the submitted job.
+message JobExecutionInfo {
+ // A mapping from each stage to the information about that stage.
+ map<string, JobExecutionStageInfo> stages = 1;
+}
+
+// Contains information about how a particular
+// [google.dataflow.v1beta3.Step][google.dataflow.v1beta3.Step] will be executed.
+message JobExecutionStageInfo {
+ // The steps associated with the execution stage.
+ // Note that stages may have several steps, and that a given step
+ // might be run by more than one stage.
+ repeated string step_name = 1;
+}
+
+// Selector for how much information is returned in Job responses.
+enum JobView {
+ // The job view to return isn't specified, or is unknown.
+ // Responses will contain at least the `JOB_VIEW_SUMMARY` information,
+ // and may contain additional information.
+ JOB_VIEW_UNKNOWN = 0;
+
+ // Request summary information only:
+ // Project ID, Job ID, job name, job type, job status, start/end time,
+ // and Cloud SDK version details.
+ JOB_VIEW_SUMMARY = 1;
+
+ // Request all information available for this job.
+ JOB_VIEW_ALL = 2;
+
+ // Request summary info and limited job description data for steps, labels and
+ // environment.
+ JOB_VIEW_DESCRIPTION = 3;
+}
+
+// Request to create a Cloud Dataflow job.
+message CreateJobRequest {
+ // The ID of the Cloud Platform project that the job belongs to.
+ string project_id = 1;
+
+ // The job to create.
+ Job job = 2;
+
+ // The level of information requested in response.
+ JobView view = 3;
+
+ // Deprecated. This field is now in the Job message.
+ string replace_job_id = 4;
+
+ // The [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
+ // contains this job.
+ string location = 5;
+}
+
+// Request to get the state of a Cloud Dataflow job.
+message GetJobRequest {
+ // The ID of the Cloud Platform project that the job belongs to.
+ string project_id = 1;
+
+ // The job ID.
+ string job_id = 2;
+
+ // The level of information requested in response.
+ JobView view = 3;
+
+ // The [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
+ // contains this job.
+ string location = 4;
+}
+
+// Request to update a Cloud Dataflow job.
+message UpdateJobRequest {
+ // The ID of the Cloud Platform project that the job belongs to.
+ string project_id = 1;
+
+ // The job ID.
+ string job_id = 2;
+
+ // The updated job.
+ // Only the job state is updatable; other fields will be ignored.
+ Job job = 3;
+
+ // The [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
+ // contains this job.
+ string location = 4;
+}
+
+// Request to list Cloud Dataflow jobs.
+message ListJobsRequest {
+ // This field filters out and returns jobs in the specified job state. The
+ // order of data returned is determined by the filter used, and is subject to
+ // change.
+ enum Filter {
+ // The filter isn't specified, or is unknown. This returns all jobs ordered
+ // on descending `JobUuid`.
+ UNKNOWN = 0;
+
+ // Returns all running jobs first ordered on creation timestamp, then
+ // returns all terminated jobs ordered on the termination timestamp.
+ ALL = 1;
+
+ // Filters the jobs that have a terminated state, ordered on the
+ // termination timestamp. Example terminated states: `JOB_STATE_STOPPED`,
+ // `JOB_STATE_UPDATED`, `JOB_STATE_DRAINED`, etc.
+ TERMINATED = 2;
+
+ // Filters the jobs that are running ordered on the creation timestamp.
+ ACTIVE = 3;
+ }
+
+ // The kind of filter to use.
+ Filter filter = 5;
+
+ // The project which owns the jobs.
+ string project_id = 1;
+
+ // Deprecated. ListJobs always returns summaries now.
+ // Use GetJob for other JobViews.
+ JobView view = 2 [deprecated = true];
+
+ // If there are many jobs, limit response to at most this many.
+ // The actual number of jobs returned will be the lesser of max_responses
+ // and an unspecified server-defined limit.
+ int32 page_size = 3;
+
+ // Set this to the 'next_page_token' field of a previous response
+ // to request additional results in a long list.
+ string page_token = 4;
+
+ // The [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
+ // contains this job.
+ string location = 17;
+}
+
+// Indicates which [regional endpoint]
+// (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) failed
+// to respond to a request for data.
+message FailedLocation {
+ // The name of the [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
+ // failed to respond.
+ string name = 1;
+}
+
+// Response to a request to list Cloud Dataflow jobs in a project. This might
+// be a partial response, depending on the page size in the ListJobsRequest.
+// However, if the project does not have any jobs, an instance of
+// ListJobsResponse is not returned and the requests's response
+// body is empty {}.
+message ListJobsResponse {
+ // A subset of the requested job information.
+ repeated Job jobs = 1;
+
+ // Set if there may be more results than fit in this response.
+ string next_page_token = 2;
+
+ // Zero or more messages describing the [regional endpoints]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
+ // failed to respond.
+ repeated FailedLocation failed_location = 3;
+}
+
+// Request to create a snapshot of a job.
+message SnapshotJobRequest {
+ // The project which owns the job to be snapshotted.
+ string project_id = 1;
+
+ // The job to be snapshotted.
+ string job_id = 2;
+
+ // TTL for the snapshot.
+ google.protobuf.Duration ttl = 3;
+
+ // The location that contains this job.
+ string location = 4;
+
+ // If true, perform snapshots for sources which support this.
+ bool snapshot_sources = 5;
+
+ // User specified description of the snapshot. Maybe empty.
+ string description = 6;
+}
+
+// Request to check is active jobs exists for a project
+message CheckActiveJobsRequest {
+ // The project which owns the jobs.
+ string project_id = 1;
+}
+
+// Response for CheckActiveJobsRequest.
+message CheckActiveJobsResponse {
+ // If True, active jobs exists for project. False otherwise.
+ bool active_jobs_exist = 1;
+}
diff --git a/third_party/googleapis/google/dataflow/v1beta3/messages.proto b/third_party/googleapis/google/dataflow/v1beta3/messages.proto
new file mode 100644
index 0000000..f8d151e
--- /dev/null
+++ b/third_party/googleapis/google/dataflow/v1beta3/messages.proto
@@ -0,0 +1,238 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.dataflow.v1beta3;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/protobuf/struct.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.Dataflow.V1Beta3";
+option go_package = "google.golang.org/genproto/googleapis/dataflow/v1beta3;dataflow";
+option java_multiple_files = true;
+option java_outer_classname = "MessagesProto";
+option java_package = "com.google.dataflow.v1beta3";
+option php_namespace = "Google\\Cloud\\Dataflow\\V1beta3";
+option ruby_package = "Google::Cloud::Dataflow::V1beta3";
+
+// The Dataflow Messages API is used for monitoring the progress of
+// Dataflow jobs.
+service MessagesV1Beta3 {
+ option (google.api.default_host) = "dataflow.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/compute,"
+ "https://www.googleapis.com/auth/compute.readonly,"
+ "https://www.googleapis.com/auth/userinfo.email";
+
+ // Request the job status.
+ //
+ // To request the status of a job, we recommend using
+ // `projects.locations.jobs.messages.list` with a [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using
+ // `projects.jobs.messages.list` is not recommended, as you can only request
+ // the status of jobs that are running in `us-central1`.
+ rpc ListJobMessages(ListJobMessagesRequest) returns (ListJobMessagesResponse) {
+ option (google.api.http) = {
+ get: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}/messages"
+ additional_bindings {
+ get: "/v1b3/projects/{project_id}/jobs/{job_id}/messages"
+ }
+ };
+ }
+}
+
+// A particular message pertaining to a Dataflow job.
+message JobMessage {
+ // Deprecated.
+ string id = 1;
+
+ // The timestamp of the message.
+ google.protobuf.Timestamp time = 2;
+
+ // The text of the message.
+ string message_text = 3;
+
+ // Importance level of the message.
+ JobMessageImportance message_importance = 4;
+}
+
+// Indicates the importance of the message.
+enum JobMessageImportance {
+ // The message importance isn't specified, or is unknown.
+ JOB_MESSAGE_IMPORTANCE_UNKNOWN = 0;
+
+ // The message is at the 'debug' level: typically only useful for
+ // software engineers working on the code the job is running.
+ // Typically, Dataflow pipeline runners do not display log messages
+ // at this level by default.
+ JOB_MESSAGE_DEBUG = 1;
+
+ // The message is at the 'detailed' level: somewhat verbose, but
+ // potentially useful to users. Typically, Dataflow pipeline
+ // runners do not display log messages at this level by default.
+ // These messages are displayed by default in the Dataflow
+ // monitoring UI.
+ JOB_MESSAGE_DETAILED = 2;
+
+ // The message is at the 'basic' level: useful for keeping
+ // track of the execution of a Dataflow pipeline. Typically,
+ // Dataflow pipeline runners display log messages at this level by
+ // default, and these messages are displayed by default in the
+ // Dataflow monitoring UI.
+ JOB_MESSAGE_BASIC = 5;
+
+ // The message is at the 'warning' level: indicating a condition
+ // pertaining to a job which may require human intervention.
+ // Typically, Dataflow pipeline runners display log messages at this
+ // level by default, and these messages are displayed by default in
+ // the Dataflow monitoring UI.
+ JOB_MESSAGE_WARNING = 3;
+
+ // The message is at the 'error' level: indicating a condition
+ // preventing a job from succeeding. Typically, Dataflow pipeline
+ // runners display log messages at this level by default, and these
+ // messages are displayed by default in the Dataflow monitoring UI.
+ JOB_MESSAGE_ERROR = 4;
+}
+
+// A rich message format, including a human readable string, a key for
+// identifying the message, and structured data associated with the message for
+// programmatic consumption.
+message StructuredMessage {
+ // Structured data associated with this message.
+ message Parameter {
+ // Key or name for this parameter.
+ string key = 1;
+
+ // Value for this parameter.
+ google.protobuf.Value value = 2;
+ }
+
+ // Human-readable version of message.
+ string message_text = 1;
+
+ // Identifier for this message type. Used by external systems to
+ // internationalize or personalize message.
+ string message_key = 2;
+
+ // The structured data associated with this message.
+ repeated Parameter parameters = 3;
+}
+
+// A structured message reporting an autoscaling decision made by the Dataflow
+// service.
+message AutoscalingEvent {
+ // Indicates the type of autoscaling event.
+ enum AutoscalingEventType {
+ // Default type for the enum. Value should never be returned.
+ TYPE_UNKNOWN = 0;
+
+ // The TARGET_NUM_WORKERS_CHANGED type should be used when the target
+ // worker pool size has changed at the start of an actuation. An event
+ // should always be specified as TARGET_NUM_WORKERS_CHANGED if it reflects
+ // a change in the target_num_workers.
+ TARGET_NUM_WORKERS_CHANGED = 1;
+
+ // The CURRENT_NUM_WORKERS_CHANGED type should be used when actual worker
+ // pool size has been changed, but the target_num_workers has not changed.
+ CURRENT_NUM_WORKERS_CHANGED = 2;
+
+ // The ACTUATION_FAILURE type should be used when we want to report
+ // an error to the user indicating why the current number of workers
+ // in the pool could not be changed.
+ // Displayed in the current status and history widgets.
+ ACTUATION_FAILURE = 3;
+
+ // Used when we want to report to the user a reason why we are
+ // not currently adjusting the number of workers.
+ // Should specify both target_num_workers, current_num_workers and a
+ // decision_message.
+ NO_CHANGE = 4;
+ }
+
+ // The current number of workers the job has.
+ int64 current_num_workers = 1;
+
+ // The target number of workers the worker pool wants to resize to use.
+ int64 target_num_workers = 2;
+
+ // The type of autoscaling event to report.
+ AutoscalingEventType event_type = 3;
+
+ // A message describing why the system decided to adjust the current
+ // number of workers, why it failed, or why the system decided to
+ // not make any changes to the number of workers.
+ StructuredMessage description = 4;
+
+ // The time this event was emitted to indicate a new target or current
+ // num_workers value.
+ google.protobuf.Timestamp time = 5;
+
+ // A short and friendly name for the worker pool this event refers to.
+ string worker_pool = 7;
+}
+
+// Request to list job messages.
+// Up to max_results messages will be returned in the time range specified
+// starting with the oldest messages first. If no time range is specified
+// the results with start with the oldest message.
+message ListJobMessagesRequest {
+ // A project id.
+ string project_id = 1;
+
+ // The job to get messages about.
+ string job_id = 2;
+
+ // Filter to only get messages with importance >= level
+ JobMessageImportance minimum_importance = 3;
+
+ // If specified, determines the maximum number of messages to
+ // return. If unspecified, the service may choose an appropriate
+ // default, or may return an arbitrarily large number of results.
+ int32 page_size = 4;
+
+ // If supplied, this should be the value of next_page_token returned
+ // by an earlier call. This will cause the next page of results to
+ // be returned.
+ string page_token = 5;
+
+ // If specified, return only messages with timestamps >= start_time.
+ // The default is the job creation time (i.e. beginning of messages).
+ google.protobuf.Timestamp start_time = 6;
+
+ // Return only messages with timestamps < end_time. The default is now
+ // (i.e. return up to the latest messages available).
+ google.protobuf.Timestamp end_time = 7;
+
+ // The [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
+ // contains the job specified by job_id.
+ string location = 8;
+}
+
+// Response to a request to list job messages.
+message ListJobMessagesResponse {
+ // Messages in ascending timestamp order.
+ repeated JobMessage job_messages = 1;
+
+ // The token to obtain the next page of results if there are more.
+ string next_page_token = 2;
+
+ // Autoscaling events in ascending timestamp order.
+ repeated AutoscalingEvent autoscaling_events = 3;
+}
diff --git a/third_party/googleapis/google/dataflow/v1beta3/metrics.proto b/third_party/googleapis/google/dataflow/v1beta3/metrics.proto
new file mode 100644
index 0000000..823eeb7
--- /dev/null
+++ b/third_party/googleapis/google/dataflow/v1beta3/metrics.proto
@@ -0,0 +1,369 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.dataflow.v1beta3;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/protobuf/struct.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.Dataflow.V1Beta3";
+option go_package = "google.golang.org/genproto/googleapis/dataflow/v1beta3;dataflow";
+option java_multiple_files = true;
+option java_outer_classname = "MetricsProto";
+option java_package = "com.google.dataflow.v1beta3";
+option php_namespace = "Google\\Cloud\\Dataflow\\V1beta3";
+option ruby_package = "Google::Cloud::Dataflow::V1beta3";
+
+// The Dataflow Metrics API lets you monitor the progress of Dataflow
+// jobs.
+service MetricsV1Beta3 {
+ option (google.api.default_host) = "dataflow.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/compute,"
+ "https://www.googleapis.com/auth/compute.readonly,"
+ "https://www.googleapis.com/auth/userinfo.email";
+
+ // Request the job status.
+ //
+ // To request the status of a job, we recommend using
+ // `projects.locations.jobs.getMetrics` with a [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using
+ // `projects.jobs.getMetrics` is not recommended, as you can only request the
+ // status of jobs that are running in `us-central1`.
+ rpc GetJobMetrics(GetJobMetricsRequest) returns (JobMetrics) {
+ option (google.api.http) = {
+ get: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}/metrics"
+ additional_bindings {
+ get: "/v1b3/projects/{project_id}/jobs/{job_id}/metrics"
+ }
+ };
+ }
+
+ // Request detailed information about the execution status of the job.
+ //
+ // EXPERIMENTAL. This API is subject to change or removal without notice.
+ rpc GetJobExecutionDetails(GetJobExecutionDetailsRequest) returns (JobExecutionDetails) {
+ option (google.api.http) = {
+ get: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}/executionDetails"
+ };
+ }
+
+ // Request detailed information about the execution status of a stage of the
+ // job.
+ //
+ // EXPERIMENTAL. This API is subject to change or removal without notice.
+ rpc GetStageExecutionDetails(GetStageExecutionDetailsRequest) returns (StageExecutionDetails) {
+ option (google.api.http) = {
+ get: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}/stages/{stage_id}/executionDetails"
+ };
+ }
+}
+
+// Identifies a metric, by describing the source which generated the
+// metric.
+message MetricStructuredName {
+ // Origin (namespace) of metric name. May be blank for user-define metrics;
+ // will be "dataflow" for metrics defined by the Dataflow service or SDK.
+ string origin = 1;
+
+ // Worker-defined metric name.
+ string name = 2;
+
+ // Zero or more labeled fields which identify the part of the job this
+ // metric is associated with, such as the name of a step or collection.
+ //
+ // For example, built-in counters associated with steps will have
+ // context['step'] = <step-name>. Counters associated with PCollections
+ // in the SDK will have context['pcollection'] = <pcollection-name>.
+ map<string, string> context = 3;
+}
+
+// Describes the state of a metric.
+message MetricUpdate {
+ // Name of the metric.
+ MetricStructuredName name = 1;
+
+ // Metric aggregation kind. The possible metric aggregation kinds are
+ // "Sum", "Max", "Min", "Mean", "Set", "And", "Or", and "Distribution".
+ // The specified aggregation kind is case-insensitive.
+ //
+ // If omitted, this is not an aggregated value but instead
+ // a single metric sample value.
+ string kind = 2;
+
+ // True if this metric is reported as the total cumulative aggregate
+ // value accumulated since the worker started working on this WorkItem.
+ // By default this is false, indicating that this metric is reported
+ // as a delta that is not associated with any WorkItem.
+ bool cumulative = 3;
+
+ // Worker-computed aggregate value for aggregation kinds "Sum", "Max", "Min",
+ // "And", and "Or". The possible value types are Long, Double, and Boolean.
+ google.protobuf.Value scalar = 4;
+
+ // Worker-computed aggregate value for the "Mean" aggregation kind.
+ // This holds the sum of the aggregated values and is used in combination
+ // with mean_count below to obtain the actual mean aggregate value.
+ // The only possible value types are Long and Double.
+ google.protobuf.Value mean_sum = 5;
+
+ // Worker-computed aggregate value for the "Mean" aggregation kind.
+ // This holds the count of the aggregated values and is used in combination
+ // with mean_sum above to obtain the actual mean aggregate value.
+ // The only possible value type is Long.
+ google.protobuf.Value mean_count = 6;
+
+ // Worker-computed aggregate value for the "Set" aggregation kind. The only
+ // possible value type is a list of Values whose type can be Long, Double,
+ // or String, according to the metric's type. All Values in the list must
+ // be of the same type.
+ google.protobuf.Value set = 7;
+
+ // A struct value describing properties of a distribution of numeric values.
+ google.protobuf.Value distribution = 11;
+
+ // A struct value describing properties of a Gauge.
+ // Metrics of gauge type show the value of a metric across time, and is
+ // aggregated based on the newest value.
+ google.protobuf.Value gauge = 12;
+
+ // Worker-computed aggregate value for internal use by the Dataflow
+ // service.
+ google.protobuf.Value internal = 8;
+
+ // Timestamp associated with the metric value. Optional when workers are
+ // reporting work progress; it will be filled in responses from the
+ // metrics API.
+ google.protobuf.Timestamp update_time = 9;
+}
+
+// Request to get job metrics.
+message GetJobMetricsRequest {
+ // A project id.
+ string project_id = 1;
+
+ // The job to get metrics for.
+ string job_id = 2;
+
+ // Return only metric data that has changed since this time.
+ // Default is to return all information about all metrics for the job.
+ google.protobuf.Timestamp start_time = 3;
+
+ // The [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
+ // contains the job specified by job_id.
+ string location = 4;
+}
+
+// JobMetrics contains a collection of metrics describing the detailed progress
+// of a Dataflow job. Metrics correspond to user-defined and system-defined
+// metrics in the job.
+//
+// This resource captures only the most recent values of each metric;
+// time-series data can be queried for them (under the same metric names)
+// from Cloud Monitoring.
+message JobMetrics {
+ // Timestamp as of which metric values are current.
+ google.protobuf.Timestamp metric_time = 1;
+
+ // All metrics for this job.
+ repeated MetricUpdate metrics = 2;
+}
+
+// Request to get job execution details.
+message GetJobExecutionDetailsRequest {
+ // A project id.
+ string project_id = 1;
+
+ // The job to get execution details for.
+ string job_id = 2;
+
+ // The [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
+ // contains the job specified by job_id.
+ string location = 3;
+
+ // If specified, determines the maximum number of stages to
+ // return. If unspecified, the service may choose an appropriate
+ // default, or may return an arbitrarily large number of results.
+ int32 page_size = 4;
+
+ // If supplied, this should be the value of next_page_token returned
+ // by an earlier call. This will cause the next page of results to
+ // be returned.
+ string page_token = 5;
+}
+
+// Information about the progress of some component of job execution.
+message ProgressTimeseries {
+ // A point in the timeseries.
+ message Point {
+ // The timestamp of the point.
+ google.protobuf.Timestamp time = 1;
+
+ // The value of the point.
+ double value = 2;
+ }
+
+ // The current progress of the component, in the range [0,1].
+ double current_progress = 1;
+
+ // History of progress for the component.
+ //
+ // Points are sorted by time.
+ repeated Point data_points = 2;
+}
+
+// The state of some component of job execution.
+enum ExecutionState {
+ // The component state is unknown or unspecified.
+ EXECUTION_STATE_UNKNOWN = 0;
+
+ // The component is not yet running.
+ EXECUTION_STATE_NOT_STARTED = 1;
+
+ // The component is currently running.
+ EXECUTION_STATE_RUNNING = 2;
+
+ // The component succeeded.
+ EXECUTION_STATE_SUCCEEDED = 3;
+
+ // The component failed.
+ EXECUTION_STATE_FAILED = 4;
+
+ // Execution of the component was cancelled.
+ EXECUTION_STATE_CANCELLED = 5;
+}
+
+// Information about a particular execution stage of a job.
+message StageSummary {
+ // ID of this stage
+ string stage_id = 1;
+
+ // State of this stage.
+ ExecutionState state = 2;
+
+ // Start time of this stage.
+ google.protobuf.Timestamp start_time = 3;
+
+ // End time of this stage.
+ //
+ // If the work item is completed, this is the actual end time of the stage.
+ // Otherwise, it is the predicted end time.
+ google.protobuf.Timestamp end_time = 4;
+
+ // Progress for this stage.
+ // Only applicable to Batch jobs.
+ ProgressTimeseries progress = 5;
+
+ // Metrics for this stage.
+ repeated MetricUpdate metrics = 6;
+}
+
+// Information about the execution of a job.
+message JobExecutionDetails {
+ // The stages of the job execution.
+ repeated StageSummary stages = 1;
+
+ // If present, this response does not contain all requested tasks. To obtain
+ // the next page of results, repeat the request with page_token set to this
+ // value.
+ string next_page_token = 2;
+}
+
+// Request to get information about a particular execution stage of a job.
+// Currently only tracked for Batch jobs.
+message GetStageExecutionDetailsRequest {
+ // A project id.
+ string project_id = 1;
+
+ // The job to get execution details for.
+ string job_id = 2;
+
+ // The [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
+ // contains the job specified by job_id.
+ string location = 3;
+
+ // The stage for which to fetch information.
+ string stage_id = 4;
+
+ // If specified, determines the maximum number of work items to
+ // return. If unspecified, the service may choose an appropriate
+ // default, or may return an arbitrarily large number of results.
+ int32 page_size = 5;
+
+ // If supplied, this should be the value of next_page_token returned
+ // by an earlier call. This will cause the next page of results to
+ // be returned.
+ string page_token = 6;
+
+ // Lower time bound of work items to include, by start time.
+ google.protobuf.Timestamp start_time = 7;
+
+ // Upper time bound of work items to include, by start time.
+ google.protobuf.Timestamp end_time = 8;
+}
+
+// Information about an individual work item execution.
+message WorkItemDetails {
+ // Name of this work item.
+ string task_id = 1;
+
+ // Attempt ID of this work item
+ string attempt_id = 2;
+
+ // Start time of this work item attempt.
+ google.protobuf.Timestamp start_time = 3;
+
+ // End time of this work item attempt.
+ //
+ // If the work item is completed, this is the actual end time of the work
+ // item. Otherwise, it is the predicted end time.
+ google.protobuf.Timestamp end_time = 4;
+
+ // State of this work item.
+ ExecutionState state = 5;
+
+ // Progress of this work item.
+ ProgressTimeseries progress = 6;
+
+ // Metrics for this work item.
+ repeated MetricUpdate metrics = 7;
+}
+
+// Information about a worker
+message WorkerDetails {
+ // Name of this worker
+ string worker_name = 1;
+
+ // Work items processed by this worker, sorted by time.
+ repeated WorkItemDetails work_items = 2;
+}
+
+// Information about the workers and work items within a stage.
+message StageExecutionDetails {
+ // Workers that have done work on the stage.
+ repeated WorkerDetails workers = 1;
+
+ // If present, this response does not contain all requested tasks. To obtain
+ // the next page of results, repeat the request with page_token set to this
+ // value.
+ string next_page_token = 2;
+}
diff --git a/third_party/googleapis/google/dataflow/v1beta3/snapshots.proto b/third_party/googleapis/google/dataflow/v1beta3/snapshots.proto
new file mode 100644
index 0000000..0868db8
--- /dev/null
+++ b/third_party/googleapis/google/dataflow/v1beta3/snapshots.proto
@@ -0,0 +1,188 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.dataflow.v1beta3;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/protobuf/duration.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.Dataflow.V1Beta3";
+option go_package = "google.golang.org/genproto/googleapis/dataflow/v1beta3;dataflow";
+option java_multiple_files = true;
+option java_outer_classname = "SnapshotsProto";
+option java_package = "com.google.dataflow.v1beta3";
+option php_namespace = "Google\\Cloud\\Dataflow\\V1beta3";
+option ruby_package = "Google::Cloud::Dataflow::V1beta3";
+
+// Provides methods to manage snapshots of Google Cloud Dataflow jobs.
+service SnapshotsV1Beta3 {
+ option (google.api.default_host) = "dataflow.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/compute,"
+ "https://www.googleapis.com/auth/compute.readonly,"
+ "https://www.googleapis.com/auth/userinfo.email";
+
+ // Gets information about a snapshot.
+ rpc GetSnapshot(GetSnapshotRequest) returns (Snapshot) {
+ option (google.api.http) = {
+ get: "/v1b3/projects/{project_id}/locations/{location}/snapshots/{snapshot_id}"
+ additional_bindings {
+ get: "/v1b3/projects/{project_id}/snapshots/{snapshot_id}"
+ }
+ };
+ }
+
+ // Deletes a snapshot.
+ rpc DeleteSnapshot(DeleteSnapshotRequest) returns (DeleteSnapshotResponse) {
+ option (google.api.http) = {
+ delete: "/v1b3/projects/{project_id}/locations/{location}/snapshots/{snapshot_id}"
+ additional_bindings {
+ delete: "/v1b3/projects/{project_id}/snapshots"
+ }
+ };
+ }
+
+ // Lists snapshots.
+ rpc ListSnapshots(ListSnapshotsRequest) returns (ListSnapshotsResponse) {
+ option (google.api.http) = {
+ get: "/v1b3/projects/{project_id}/locations/{location}/jobs/{job_id}/snapshots"
+ additional_bindings {
+ get: "/v1b3/projects/{project_id}/locations/{location}/snapshots"
+ }
+ additional_bindings {
+ get: "/v1b3/projects/{project_id}/snapshots"
+ }
+ };
+ }
+}
+
+// Snapshot state.
+enum SnapshotState {
+ // Unknown state.
+ UNKNOWN_SNAPSHOT_STATE = 0;
+
+ // Snapshot intent to create has been persisted, snapshotting of state has not
+ // yet started.
+ PENDING = 1;
+
+ // Snapshotting is being performed.
+ RUNNING = 2;
+
+ // Snapshot has been created and is ready to be used.
+ READY = 3;
+
+ // Snapshot failed to be created.
+ FAILED = 4;
+
+ // Snapshot has been deleted.
+ DELETED = 5;
+}
+
+// Represents a Pubsub snapshot.
+message PubsubSnapshotMetadata {
+ // The name of the Pubsub topic.
+ string topic_name = 1;
+
+ // The name of the Pubsub snapshot.
+ string snapshot_name = 2;
+
+ // The expire time of the Pubsub snapshot.
+ google.protobuf.Timestamp expire_time = 3;
+}
+
+// Represents a snapshot of a job.
+message Snapshot {
+ // The unique ID of this snapshot.
+ string id = 1;
+
+ // The project this snapshot belongs to.
+ string project_id = 2;
+
+ // The job this snapshot was created from.
+ string source_job_id = 3;
+
+ // The time this snapshot was created.
+ google.protobuf.Timestamp creation_time = 4;
+
+ // The time after which this snapshot will be automatically deleted.
+ google.protobuf.Duration ttl = 5;
+
+ // State of the snapshot.
+ SnapshotState state = 6;
+
+ // Pub/Sub snapshot metadata.
+ repeated PubsubSnapshotMetadata pubsub_metadata = 7;
+
+ // User specified description of the snapshot. Maybe empty.
+ string description = 8;
+
+ // The disk byte size of the snapshot. Only available for snapshots in READY
+ // state.
+ int64 disk_size_bytes = 9;
+
+ // Cloud region where this snapshot lives in, e.g., "us-central1".
+ string region = 10;
+}
+
+// Request to get information about a snapshot
+message GetSnapshotRequest {
+ // The ID of the Cloud Platform project that the snapshot belongs to.
+ string project_id = 1;
+
+ // The ID of the snapshot.
+ string snapshot_id = 2;
+
+ // The location that contains this snapshot.
+ string location = 3;
+}
+
+// Request to delete a snapshot.
+message DeleteSnapshotRequest {
+ // The ID of the Cloud Platform project that the snapshot belongs to.
+ string project_id = 1;
+
+ // The ID of the snapshot.
+ string snapshot_id = 2;
+
+ // The location that contains this snapshot.
+ string location = 3;
+}
+
+// Response from deleting a snapshot.
+message DeleteSnapshotResponse {
+
+}
+
+// Request to list snapshots.
+message ListSnapshotsRequest {
+ // The project ID to list snapshots for.
+ string project_id = 1;
+
+ // If specified, list snapshots created from this job.
+ string job_id = 3;
+
+ // The location to list snapshots in.
+ string location = 2;
+}
+
+// List of snapshots.
+message ListSnapshotsResponse {
+ // Returned snapshots.
+ repeated Snapshot snapshots = 1;
+}
diff --git a/third_party/googleapis/google/dataflow/v1beta3/streaming.proto b/third_party/googleapis/google/dataflow/v1beta3/streaming.proto
new file mode 100644
index 0000000..77577ca
--- /dev/null
+++ b/third_party/googleapis/google/dataflow/v1beta3/streaming.proto
@@ -0,0 +1,231 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.dataflow.v1beta3;
+
+option csharp_namespace = "Google.Cloud.Dataflow.V1Beta3";
+option go_package = "google.golang.org/genproto/googleapis/dataflow/v1beta3;dataflow";
+option java_multiple_files = true;
+option java_outer_classname = "StreamingProto";
+option java_package = "com.google.dataflow.v1beta3";
+option php_namespace = "Google\\Cloud\\Dataflow\\V1beta3";
+option ruby_package = "Google::Cloud::Dataflow::V1beta3";
+
+// Global topology of the streaming Dataflow job, including all
+// computations and their sharded locations.
+message TopologyConfig {
+ // The computations associated with a streaming Dataflow job.
+ repeated ComputationTopology computations = 1;
+
+ // The disks assigned to a streaming Dataflow job.
+ repeated DataDiskAssignment data_disk_assignments = 2;
+
+ // Maps user stage names to stable computation names.
+ map<string, string> user_stage_to_computation_name_map = 3;
+
+ // The size (in bits) of keys that will be assigned to source messages.
+ int32 forwarding_key_bits = 4;
+
+ // Version number for persistent state.
+ int32 persistent_state_version = 5;
+}
+
+// Identifies a pubsub location to use for transferring data into or
+// out of a streaming Dataflow job.
+message PubsubLocation {
+ // A pubsub topic, in the form of
+ // "pubsub.googleapis.com/topics/<project-id>/<topic-name>"
+ string topic = 1;
+
+ // A pubsub subscription, in the form of
+ // "pubsub.googleapis.com/subscriptions/<project-id>/<subscription-name>"
+ string subscription = 2;
+
+ // If set, contains a pubsub label from which to extract record timestamps.
+ // If left empty, record timestamps will be generated upon arrival.
+ string timestamp_label = 3;
+
+ // If set, contains a pubsub label from which to extract record ids.
+ // If left empty, record deduplication will be strictly best effort.
+ string id_label = 4;
+
+ // Indicates whether the pipeline allows late-arriving data.
+ bool drop_late_data = 5;
+
+ // If set, specifies the pubsub subscription that will be used for tracking
+ // custom time timestamps for watermark estimation.
+ string tracking_subscription = 6;
+
+ // If true, then the client has requested to get pubsub attributes.
+ bool with_attributes = 7;
+}
+
+// Identifies the location of a streaming computation stage, for
+// stage-to-stage communication.
+message StreamingStageLocation {
+ // Identifies the particular stream within the streaming Dataflow
+ // job.
+ string stream_id = 1;
+}
+
+// Identifies the location of a streaming side input.
+message StreamingSideInputLocation {
+ // Identifies the particular side input within the streaming Dataflow job.
+ string tag = 1;
+
+ // Identifies the state family where this side input is stored.
+ string state_family = 2;
+}
+
+// Identifies the location of a custom souce.
+message CustomSourceLocation {
+ // Whether this source is stateful.
+ bool stateful = 1;
+}
+
+// Describes a stream of data, either as input to be processed or as
+// output of a streaming Dataflow job.
+message StreamLocation {
+ // A specification of a stream's location.
+ oneof location {
+ // The stream is part of another computation within the current
+ // streaming Dataflow job.
+ StreamingStageLocation streaming_stage_location = 1;
+
+ // The stream is a pubsub stream.
+ PubsubLocation pubsub_location = 2;
+
+ // The stream is a streaming side input.
+ StreamingSideInputLocation side_input_location = 3;
+
+ // The stream is a custom source.
+ CustomSourceLocation custom_source_location = 4;
+ }
+}
+
+// State family configuration.
+message StateFamilyConfig {
+ // The state family value.
+ string state_family = 1;
+
+ // If true, this family corresponds to a read operation.
+ bool is_read = 2;
+}
+
+// All configuration data for a particular Computation.
+message ComputationTopology {
+ // The system stage name.
+ string system_stage_name = 1;
+
+ // The ID of the computation.
+ string computation_id = 5;
+
+ // The key ranges processed by the computation.
+ repeated KeyRangeLocation key_ranges = 2;
+
+ // The inputs to the computation.
+ repeated StreamLocation inputs = 3;
+
+ // The outputs from the computation.
+ repeated StreamLocation outputs = 4;
+
+ // The state family values.
+ repeated StateFamilyConfig state_families = 7;
+}
+
+// Location information for a specific key-range of a sharded computation.
+// Currently we only support UTF-8 character splits to simplify encoding into
+// JSON.
+message KeyRangeLocation {
+ // The start (inclusive) of the key range.
+ string start = 1;
+
+ // The end (exclusive) of the key range.
+ string end = 2;
+
+ // The physical location of this range assignment to be used for
+ // streaming computation cross-worker message delivery.
+ string delivery_endpoint = 3;
+
+ // The name of the data disk where data for this range is stored.
+ // This name is local to the Google Cloud Platform project and uniquely
+ // identifies the disk within that project, for example
+ // "myproject-1014-104817-4c2-harness-0-disk-1".
+ string data_disk = 5;
+
+ // DEPRECATED. The location of the persistent state for this range, as a
+ // persistent directory in the worker local filesystem.
+ string deprecated_persistent_directory = 4 [deprecated = true];
+}
+
+// Describes mounted data disk.
+message MountedDataDisk {
+ // The name of the data disk.
+ // This name is local to the Google Cloud Platform project and uniquely
+ // identifies the disk within that project, for example
+ // "myproject-1014-104817-4c2-harness-0-disk-1".
+ string data_disk = 1;
+}
+
+// Data disk assignment for a given VM instance.
+message DataDiskAssignment {
+ // VM instance name the data disks mounted to, for example
+ // "myproject-1014-104817-4c2-harness-0".
+ string vm_instance = 1;
+
+ // Mounted data disks. The order is important a data disk's 0-based index in
+ // this list defines which persistent directory the disk is mounted to, for
+ // example the list of { "myproject-1014-104817-4c2-harness-0-disk-0" },
+ // { "myproject-1014-104817-4c2-harness-0-disk-1" }.
+ repeated string data_disks = 2;
+}
+
+// Data disk assignment information for a specific key-range of a sharded
+// computation.
+// Currently we only support UTF-8 character splits to simplify encoding into
+// JSON.
+message KeyRangeDataDiskAssignment {
+ // The start (inclusive) of the key range.
+ string start = 1;
+
+ // The end (exclusive) of the key range.
+ string end = 2;
+
+ // The name of the data disk where data for this range is stored.
+ // This name is local to the Google Cloud Platform project and uniquely
+ // identifies the disk within that project, for example
+ // "myproject-1014-104817-4c2-harness-0-disk-1".
+ string data_disk = 3;
+}
+
+// Describes full or partial data disk assignment information of the computation
+// ranges.
+message StreamingComputationRanges {
+ // The ID of the computation.
+ string computation_id = 1;
+
+ // Data disk assignments for ranges from this computation.
+ repeated KeyRangeDataDiskAssignment range_assignments = 2;
+}
+
+// Streaming appliance snapshot configuration.
+message StreamingApplianceSnapshotConfig {
+ // If set, indicates the snapshot id for the snapshot being performed.
+ string snapshot_id = 1;
+
+ // Indicates which endpoint is used to import appliance state.
+ string import_state_endpoint = 2;
+}
diff --git a/third_party/googleapis/google/dataflow/v1beta3/templates.proto b/third_party/googleapis/google/dataflow/v1beta3/templates.proto
new file mode 100644
index 0000000..064e3a8
--- /dev/null
+++ b/third_party/googleapis/google/dataflow/v1beta3/templates.proto
@@ -0,0 +1,632 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.dataflow.v1beta3;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/dataflow/v1beta3/environment.proto";
+import "google/dataflow/v1beta3/jobs.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Cloud.Dataflow.V1Beta3";
+option go_package = "google.golang.org/genproto/googleapis/dataflow/v1beta3;dataflow";
+option java_multiple_files = true;
+option java_outer_classname = "TemplatesProto";
+option java_package = "com.google.dataflow.v1beta3";
+option php_namespace = "Google\\Cloud\\Dataflow\\V1beta3";
+option ruby_package = "Google::Cloud::Dataflow::V1beta3";
+
+// Provides a method to create Cloud Dataflow jobs from templates.
+service TemplatesService {
+ option (google.api.default_host) = "dataflow.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/compute,"
+ "https://www.googleapis.com/auth/compute.readonly,"
+ "https://www.googleapis.com/auth/userinfo.email";
+
+ // Creates a Cloud Dataflow job from a template.
+ rpc CreateJobFromTemplate(CreateJobFromTemplateRequest) returns (Job) {
+ option (google.api.http) = {
+ post: "/v1b3/projects/{project_id}/locations/{location}/templates"
+ body: "*"
+ additional_bindings {
+ post: "/v1b3/projects/{project_id}/templates"
+ body: "*"
+ }
+ };
+ }
+
+ // Launch a template.
+ rpc LaunchTemplate(LaunchTemplateRequest) returns (LaunchTemplateResponse) {
+ option (google.api.http) = {
+ post: "/v1b3/projects/{project_id}/locations/{location}/templates:launch"
+ body: "launch_parameters"
+ additional_bindings {
+ post: "/v1b3/projects/{project_id}/templates:launch"
+ body: "launch_parameters"
+ }
+ };
+ }
+
+ // Get the template associated with a template.
+ rpc GetTemplate(GetTemplateRequest) returns (GetTemplateResponse) {
+ option (google.api.http) = {
+ get: "/v1b3/projects/{project_id}/locations/{location}/templates:get"
+ additional_bindings {
+ get: "/v1b3/projects/{project_id}/templates:get"
+ }
+ };
+ }
+}
+
+// Provides a service for Flex templates. This feature is not ready yet.
+service FlexTemplatesService {
+ option (google.api.default_host) = "dataflow.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/compute,"
+ "https://www.googleapis.com/auth/compute.readonly,"
+ "https://www.googleapis.com/auth/userinfo.email";
+
+ // Launch a job with a FlexTemplate.
+ rpc LaunchFlexTemplate(LaunchFlexTemplateRequest) returns (LaunchFlexTemplateResponse) {
+ option (google.api.http) = {
+ post: "/v1b3/projects/{project_id}/locations/{location}/flexTemplates:launch"
+ body: "*"
+ };
+ }
+}
+
+// Response to the request to launch a job from Flex Template.
+message LaunchFlexTemplateResponse {
+ // The job that was launched, if the request was not a dry run and
+ // the job was successfully launched.
+ Job job = 1;
+}
+
+// Container Spec.
+message ContainerSpec {
+ // Name of the docker container image. E.g., gcr.io/project/some-image
+ string image = 1;
+
+ // Metadata describing a template including description and validation rules.
+ TemplateMetadata metadata = 2;
+
+ // Required. SDK info of the Flex Template.
+ SDKInfo sdk_info = 3;
+
+ // Default runtime environment for the job.
+ FlexTemplateRuntimeEnvironment default_environment = 4;
+}
+
+// Launch FlexTemplate Parameter.
+message LaunchFlexTemplateParameter {
+ // Required. The job name to use for the created job. For update job request,
+ // job name should be same as the existing running job.
+ string job_name = 1;
+
+ // Launch Mechanism.
+ oneof template {
+ // Spec about the container image to launch.
+ ContainerSpec container_spec = 4;
+
+ // Cloud Storage path to a file with json serialized ContainerSpec as
+ // content.
+ string container_spec_gcs_path = 5;
+ }
+
+ // The parameters for FlexTemplate.
+ // Ex. {"num_workers":"5"}
+ map<string, string> parameters = 2;
+
+ // Launch options for this flex template job. This is a common set of options
+ // across languages and templates. This should not be used to pass job
+ // parameters.
+ map<string, string> launch_options = 6;
+
+ // The runtime environment for the FlexTemplate job
+ FlexTemplateRuntimeEnvironment environment = 7;
+
+ // Set this to true if you are sending a request to update a running
+ // streaming job. When set, the job name should be the same as the
+ // running job.
+ bool update = 8;
+
+ // Use this to pass transform_name_mappings for streaming update jobs.
+ // Ex:{"oldTransformName":"newTransformName",...}'
+ map<string, string> transform_name_mappings = 9;
+}
+
+// The environment values to be set at runtime for flex template.
+message FlexTemplateRuntimeEnvironment {
+ // The initial number of Google Compute Engine instances for the job.
+ int32 num_workers = 1;
+
+ // The maximum number of Google Compute Engine instances to be made
+ // available to your pipeline during execution, from 1 to 1000.
+ int32 max_workers = 2;
+
+ // The Compute Engine [availability
+ // zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones)
+ // for launching worker instances to run your pipeline.
+ // In the future, worker_zone will take precedence.
+ string zone = 3;
+
+ // The email address of the service account to run the job as.
+ string service_account_email = 4;
+
+ // The Cloud Storage path to use for temporary files.
+ // Must be a valid Cloud Storage URL, beginning with `gs://`.
+ string temp_location = 5;
+
+ // The machine type to use for the job. Defaults to the value from the
+ // template if not specified.
+ string machine_type = 6;
+
+ // Additional experiment flags for the job.
+ repeated string additional_experiments = 7;
+
+ // Network to which VMs will be assigned. If empty or unspecified,
+ // the service will use the network "default".
+ string network = 8;
+
+ // Subnetwork to which VMs will be assigned, if desired. You can specify a
+ // subnetwork using either a complete URL or an abbreviated path. Expected to
+ // be of the form
+ // "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK"
+ // or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is located in
+ // a Shared VPC network, you must use the complete URL.
+ string subnetwork = 9;
+
+ // Additional user labels to be specified for the job.
+ // Keys and values must follow the restrictions specified in the [labeling
+ // restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions)
+ // page.
+ // An object containing a list of "key": value pairs.
+ // Example: { "name": "wrench", "mass": "1kg", "count": "3" }.
+ map<string, string> additional_user_labels = 10;
+
+ // Name for the Cloud KMS key for the job.
+ // Key format is:
+ // projects/<project>/locations/<location>/keyRings/<keyring>/cryptoKeys/<key>
+ string kms_key_name = 11;
+
+ // Configuration for VM IPs.
+ WorkerIPAddressConfiguration ip_configuration = 12;
+
+ // The Compute Engine region
+ // (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in
+ // which worker processing should occur, e.g. "us-west1". Mutually exclusive
+ // with worker_zone. If neither worker_region nor worker_zone is specified,
+ // default to the control plane's region.
+ string worker_region = 13;
+
+ // The Compute Engine zone
+ // (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in
+ // which worker processing should occur, e.g. "us-west1-a". Mutually exclusive
+ // with worker_region. If neither worker_region nor worker_zone is specified,
+ // a zone in the control plane's region is chosen based on available capacity.
+ // If both `worker_zone` and `zone` are set, `worker_zone` takes precedence.
+ string worker_zone = 14;
+
+ // Whether to enable Streaming Engine for the job.
+ bool enable_streaming_engine = 15;
+
+ // Set FlexRS goal for the job.
+ // https://cloud.google.com/dataflow/docs/guides/flexrs
+ FlexResourceSchedulingGoal flexrs_goal = 16;
+
+ // The Cloud Storage path for staging local files.
+ // Must be a valid Cloud Storage URL, beginning with `gs://`.
+ string staging_location = 17;
+
+ // Docker registry location of container image to use for the 'worker harness.
+ // Default is the container for the version of the SDK. Note this field is
+ // only valid for portable pipelines.
+ string sdk_container_image = 18;
+
+ // Worker disk size, in gigabytes.
+ int32 disk_size_gb = 20;
+
+ // The algorithm to use for autoscaling
+ AutoscalingAlgorithm autoscaling_algorithm = 21;
+
+ // If true, save a heap dump before killing a thread or process which is GC
+ // thrashing or out of memory. The location of the heap file will either be
+ // echoed back to the user, or the user will be given the opportunity to
+ // download the heap file.
+ bool dump_heap_on_oom = 22;
+
+ // Cloud Storage bucket (directory) to upload heap dumps to the given
+ // location. Enabling this implies that heap dumps should be generated on OOM
+ // (dump_heap_on_oom is set to true).
+ string save_heap_dumps_to_gcs_path = 23;
+
+ // The machine type to use for launching the job. The default is
+ // n1-standard-1.
+ string launcher_machine_type = 24;
+}
+
+// A request to launch a Cloud Dataflow job from a FlexTemplate.
+message LaunchFlexTemplateRequest {
+ // Required. The ID of the Cloud Platform project that the job belongs to.
+ string project_id = 1;
+
+ // Required. Parameter to launch a job form Flex Template.
+ LaunchFlexTemplateParameter launch_parameter = 2;
+
+ // Required. The [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to
+ // which to direct the request. E.g., us-central1, us-west1.
+ string location = 3;
+
+ // If true, the request is validated but not actually executed.
+ // Defaults to false.
+ bool validate_only = 4;
+}
+
+// The environment values to set at runtime.
+message RuntimeEnvironment {
+ // The initial number of Google Compute Engine instnaces for the job.
+ int32 num_workers = 11;
+
+ // The maximum number of Google Compute Engine instances to be made
+ // available to your pipeline during execution, from 1 to 1000.
+ int32 max_workers = 1;
+
+ // The Compute Engine [availability
+ // zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones)
+ // for launching worker instances to run your pipeline.
+ // In the future, worker_zone will take precedence.
+ string zone = 2;
+
+ // The email address of the service account to run the job as.
+ string service_account_email = 3;
+
+ // The Cloud Storage path to use for temporary files.
+ // Must be a valid Cloud Storage URL, beginning with `gs://`.
+ string temp_location = 4;
+
+ // Whether to bypass the safety checks for the job's temporary directory.
+ // Use with caution.
+ bool bypass_temp_dir_validation = 5;
+
+ // The machine type to use for the job. Defaults to the value from the
+ // template if not specified.
+ string machine_type = 6;
+
+ // Additional experiment flags for the job, specified with the
+ // `--experiments` option.
+ repeated string additional_experiments = 7;
+
+ // Network to which VMs will be assigned. If empty or unspecified,
+ // the service will use the network "default".
+ string network = 8;
+
+ // Subnetwork to which VMs will be assigned, if desired. You can specify a
+ // subnetwork using either a complete URL or an abbreviated path. Expected to
+ // be of the form
+ // "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK"
+ // or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is located in
+ // a Shared VPC network, you must use the complete URL.
+ string subnetwork = 9;
+
+ // Additional user labels to be specified for the job.
+ // Keys and values should follow the restrictions specified in the [labeling
+ // restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions)
+ // page.
+ // An object containing a list of "key": value pairs.
+ // Example: { "name": "wrench", "mass": "1kg", "count": "3" }.
+ map<string, string> additional_user_labels = 10;
+
+ // Name for the Cloud KMS key for the job.
+ // Key format is:
+ // projects/<project>/locations/<location>/keyRings/<keyring>/cryptoKeys/<key>
+ string kms_key_name = 12;
+
+ // Configuration for VM IPs.
+ WorkerIPAddressConfiguration ip_configuration = 14;
+
+ // The Compute Engine region
+ // (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in
+ // which worker processing should occur, e.g. "us-west1". Mutually exclusive
+ // with worker_zone. If neither worker_region nor worker_zone is specified,
+ // default to the control plane's region.
+ string worker_region = 15;
+
+ // The Compute Engine zone
+ // (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in
+ // which worker processing should occur, e.g. "us-west1-a". Mutually exclusive
+ // with worker_region. If neither worker_region nor worker_zone is specified,
+ // a zone in the control plane's region is chosen based on available capacity.
+ // If both `worker_zone` and `zone` are set, `worker_zone` takes precedence.
+ string worker_zone = 16;
+
+ // Whether to enable Streaming Engine for the job.
+ bool enable_streaming_engine = 17;
+}
+
+// Metadata for a specific parameter.
+message ParameterMetadata {
+ // Required. The name of the parameter.
+ string name = 1;
+
+ // Required. The label to display for the parameter.
+ string label = 2;
+
+ // Required. The help text to display for the parameter.
+ string help_text = 3;
+
+ // Optional. Whether the parameter is optional. Defaults to false.
+ bool is_optional = 4;
+
+ // Optional. Regexes that the parameter must match.
+ repeated string regexes = 5;
+
+ // Optional. The type of the parameter.
+ // Used for selecting input picker.
+ ParameterType param_type = 6;
+
+ // Optional. Additional metadata for describing this parameter.
+ map<string, string> custom_metadata = 7;
+}
+
+// ParameterType specifies what kind of input we need for this parameter.
+enum ParameterType {
+ // Default input type.
+ DEFAULT = 0;
+
+ // The parameter specifies generic text input.
+ TEXT = 1;
+
+ // The parameter specifies a Cloud Storage Bucket to read from.
+ GCS_READ_BUCKET = 2;
+
+ // The parameter specifies a Cloud Storage Bucket to write to.
+ GCS_WRITE_BUCKET = 3;
+
+ // The parameter specifies a Cloud Storage file path to read from.
+ GCS_READ_FILE = 4;
+
+ // The parameter specifies a Cloud Storage file path to write to.
+ GCS_WRITE_FILE = 5;
+
+ // The parameter specifies a Cloud Storage folder path to read from.
+ GCS_READ_FOLDER = 6;
+
+ // The parameter specifies a Cloud Storage folder to write to.
+ GCS_WRITE_FOLDER = 7;
+
+ // The parameter specifies a Pub/Sub Topic.
+ PUBSUB_TOPIC = 8;
+
+ // The parameter specifies a Pub/Sub Subscription.
+ PUBSUB_SUBSCRIPTION = 9;
+}
+
+// Metadata describing a template.
+message TemplateMetadata {
+ // Required. The name of the template.
+ string name = 1;
+
+ // Optional. A description of the template.
+ string description = 2;
+
+ // The parameters for the template.
+ repeated ParameterMetadata parameters = 3;
+}
+
+// SDK Information.
+message SDKInfo {
+ // SDK Language.
+ enum Language {
+ // UNKNOWN Language.
+ UNKNOWN = 0;
+
+ // Java.
+ JAVA = 1;
+
+ // Python.
+ PYTHON = 2;
+ }
+
+ // Required. The SDK Language.
+ Language language = 1;
+
+ // Optional. The SDK version.
+ string version = 2;
+}
+
+// RuntimeMetadata describing a runtime environment.
+message RuntimeMetadata {
+ // SDK Info for the template.
+ SDKInfo sdk_info = 1;
+
+ // The parameters for the template.
+ repeated ParameterMetadata parameters = 2;
+}
+
+// A request to create a Cloud Dataflow job from a template.
+message CreateJobFromTemplateRequest {
+ // Required. The ID of the Cloud Platform project that the job belongs to.
+ string project_id = 1;
+
+ // Required. The job name to use for the created job.
+ string job_name = 4;
+
+ // The template from which to create the job.
+ oneof template {
+ // Required. A Cloud Storage path to the template from which to
+ // create the job.
+ // Must be a valid Cloud Storage URL, beginning with `gs://`.
+ string gcs_path = 2;
+ }
+
+ // The runtime parameters to pass to the job.
+ map<string, string> parameters = 3;
+
+ // The runtime environment for the job.
+ RuntimeEnvironment environment = 5;
+
+ // The [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to
+ // which to direct the request.
+ string location = 6;
+}
+
+// A request to retrieve a Cloud Dataflow job template.
+message GetTemplateRequest {
+ // The various views of a template that may be retrieved.
+ enum TemplateView {
+ // Template view that retrieves only the metadata associated with the
+ // template.
+ METADATA_ONLY = 0;
+ }
+
+ // Required. The ID of the Cloud Platform project that the job belongs to.
+ string project_id = 1;
+
+ // The template from which to create the job.
+ oneof template {
+ // Required. A Cloud Storage path to the template from which to
+ // create the job.
+ // Must be valid Cloud Storage URL, beginning with 'gs://'.
+ string gcs_path = 2;
+ }
+
+ // The view to retrieve. Defaults to METADATA_ONLY.
+ TemplateView view = 3;
+
+ // The [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to
+ // which to direct the request.
+ string location = 4;
+}
+
+// The response to a GetTemplate request.
+message GetTemplateResponse {
+ // Template Type.
+ enum TemplateType {
+ // Unknown Template Type.
+ UNKNOWN = 0;
+
+ // Legacy Template.
+ LEGACY = 1;
+
+ // Flex Template.
+ FLEX = 2;
+ }
+
+ // The status of the get template request. Any problems with the
+ // request will be indicated in the error_details.
+ google.rpc.Status status = 1;
+
+ // The template metadata describing the template name, available
+ // parameters, etc.
+ TemplateMetadata metadata = 2;
+
+ // Template Type.
+ TemplateType template_type = 3;
+
+ // Describes the runtime metadata with SDKInfo and available parameters.
+ RuntimeMetadata runtime_metadata = 4;
+}
+
+// Parameters to provide to the template being launched.
+message LaunchTemplateParameters {
+ // Required. The job name to use for the created job.
+ string job_name = 1;
+
+ // The runtime parameters to pass to the job.
+ map<string, string> parameters = 2;
+
+ // The runtime environment for the job.
+ RuntimeEnvironment environment = 3;
+
+ // If set, replace the existing pipeline with the name specified by jobName
+ // with this pipeline, preserving state.
+ bool update = 4;
+
+ // Only applicable when updating a pipeline. Map of transform name prefixes of
+ // the job to be replaced to the corresponding name prefixes of the new job.
+ map<string, string> transform_name_mapping = 5;
+}
+
+// A request to launch a template.
+message LaunchTemplateRequest {
+ // Required. The ID of the Cloud Platform project that the job belongs to.
+ string project_id = 1;
+
+ // If true, the request is validated but not actually executed.
+ // Defaults to false.
+ bool validate_only = 2;
+
+ // The template from which to create the job.
+ oneof template {
+ // A Cloud Storage path to the template from which to create
+ // the job.
+ // Must be valid Cloud Storage URL, beginning with 'gs://'.
+ string gcs_path = 3;
+
+ // Params for launching a dynamic template.
+ DynamicTemplateLaunchParams dynamic_template = 6;
+ }
+
+ // The parameters of the template to launch. This should be part of the
+ // body of the POST request.
+ LaunchTemplateParameters launch_parameters = 4;
+
+ // The [regional endpoint]
+ // (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to
+ // which to direct the request.
+ string location = 5;
+}
+
+// Response to the request to launch a template.
+message LaunchTemplateResponse {
+ // The job that was launched, if the request was not a dry run and
+ // the job was successfully launched.
+ Job job = 1;
+}
+
+// Used in the error_details field of a google.rpc.Status message, this
+// indicates problems with the template parameter.
+message InvalidTemplateParameters {
+ // A specific template-parameter violation.
+ message ParameterViolation {
+ // The parameter that failed to validate.
+ string parameter = 1;
+
+ // A description of why the parameter failed to validate.
+ string description = 2;
+ }
+
+ // Describes all parameter violations in a template request.
+ repeated ParameterViolation parameter_violations = 1;
+}
+
+// Params which should be passed when launching a dynamic template.
+message DynamicTemplateLaunchParams {
+ // Path to dynamic template spec file on Cloud Storage.
+ // The file must be a Json serialized DynamicTemplateFieSpec object.
+ string gcs_path = 1;
+
+ // Cloud Storage path for staging dependencies.
+ // Must be a valid Cloud Storage URL, beginning with `gs://`.
+ string staging_location = 2;
+}