feat: added node groups API protos

PiperOrigin-RevId: 494840237
pull/761/head
Google APIs 2 years ago committed by Copybara-Service
parent e8356fefc5
commit 28449ecb37
  1. 3
      google/cloud/dataproc/v1/BUILD.bazel
  2. 304
      google/cloud/dataproc/v1/clusters.proto
  3. 6
      google/cloud/dataproc/v1/dataproc_v1.yaml
  4. 93
      google/cloud/dataproc/v1/jobs.proto
  5. 174
      google/cloud/dataproc/v1/node_groups.proto
  6. 54
      google/cloud/dataproc/v1/operations.proto

@ -19,6 +19,7 @@ proto_library(
"operations.proto",
"shared.proto",
"workflow_templates.proto",
"node_groups.proto",
],
deps = [
"//google/api:annotations_proto",
@ -91,6 +92,8 @@ java_gapic_test(
"com.google.cloud.dataproc.v1.JobControllerClientTest",
"com.google.cloud.dataproc.v1.WorkflowTemplateServiceClientHttpJsonTest",
"com.google.cloud.dataproc.v1.WorkflowTemplateServiceClientTest",
"com.google.cloud.dataproc.v1.NodeGroupControllerClientHttpJsonTest",
"com.google.cloud.dataproc.v1.NodeGroupControllerClientTest",
],
runtime_deps = [":dataproc_java_gapic_test"],
)

@ -43,12 +43,14 @@ option (google.api.resource_definition) = {
// of Compute Engine instances.
service ClusterController {
option (google.api.default_host) = "dataproc.googleapis.com";
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform";
// Creates a cluster in a project. The returned
// [Operation.metadata][google.longrunning.Operation.metadata] will be
// [ClusterOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#clusteroperationmetadata).
rpc CreateCluster(CreateClusterRequest) returns (google.longrunning.Operation) {
rpc CreateCluster(CreateClusterRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/projects/{project_id}/regions/{region}/clusters"
body: "cluster"
@ -63,14 +65,17 @@ service ClusterController {
// Updates a cluster in a project. The returned
// [Operation.metadata][google.longrunning.Operation.metadata] will be
// [ClusterOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#clusteroperationmetadata).
// The cluster must be in a [`RUNNING`][google.cloud.dataproc.v1.ClusterStatus.State] state or an error
// The cluster must be in a
// [`RUNNING`][google.cloud.dataproc.v1.ClusterStatus.State] state or an error
// is returned.
rpc UpdateCluster(UpdateClusterRequest) returns (google.longrunning.Operation) {
rpc UpdateCluster(UpdateClusterRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
patch: "/v1/projects/{project_id}/regions/{region}/clusters/{cluster_name}"
body: "cluster"
};
option (google.api.method_signature) = "project_id,region,cluster_name,cluster,update_mask";
option (google.api.method_signature) =
"project_id,region,cluster_name,cluster,update_mask";
option (google.longrunning.operation_info) = {
response_type: "Cluster"
metadata_type: "google.cloud.dataproc.v1.ClusterOperationMetadata"
@ -104,7 +109,8 @@ service ClusterController {
// Deletes a cluster in a project. The returned
// [Operation.metadata][google.longrunning.Operation.metadata] will be
// [ClusterOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#clusteroperationmetadata).
rpc DeleteCluster(DeleteClusterRequest) returns (google.longrunning.Operation) {
rpc DeleteCluster(DeleteClusterRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1/projects/{project_id}/regions/{region}/clusters/{cluster_name}"
};
@ -139,7 +145,8 @@ service ClusterController {
// [Operation.response][google.longrunning.Operation.response]
// contains
// [DiagnoseClusterResults](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#diagnoseclusterresults).
rpc DiagnoseCluster(DiagnoseClusterRequest) returns (google.longrunning.Operation) {
rpc DiagnoseCluster(DiagnoseClusterRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/projects/{project_id}/regions/{region}/clusters/{cluster_name}:diagnose"
body: "*"
@ -158,8 +165,10 @@ message Cluster {
// Required. The Google Cloud Platform project ID that the cluster belongs to.
string project_id = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The cluster name. Cluster names within a project must be
// unique. Names of deleted clusters can be reused.
// Required. The cluster name, which must be unique within a project.
// The name must start with a lowercase letter, and can contain
// up to 51 lowercase letters, numbers, and hyphens. It cannot end
// with a hyphen. The name of a deleted cluster can be reused.
string cluster_name = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. The cluster config for a cluster of Compute Engine Instances.
@ -167,14 +176,17 @@ message Cluster {
// when clusters are updated.
ClusterConfig config = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. The virtual cluster config, used when creating a Dataproc cluster that
// does not directly control the underlying compute resources, for example,
// when creating a [Dataproc-on-GKE
// cluster](https://cloud.google.com/dataproc/docs/concepts/jobs/dataproc-gke#create-a-dataproc-on-gke-cluster).
// Note that Dataproc may set default values, and values may change when
// clusters are updated. Exactly one of config or virtualClusterConfig must be
// specified.
VirtualClusterConfig virtual_cluster_config = 10 [(google.api.field_behavior) = OPTIONAL];
// Optional. The virtual cluster config is used when creating a Dataproc
// cluster that does not directly control the underlying compute resources,
// for example, when creating a [Dataproc-on-GKE
// cluster](https://cloud.google.com/dataproc/docs/guides/dpgke/dataproc-gke).
// Dataproc may set default values, and values may change when
// clusters are updated. Exactly one of
// [config][google.cloud.dataproc.v1.Cluster.config] or
// [virtual_cluster_config][google.cloud.dataproc.v1.Cluster.virtual_cluster_config]
// must be specified.
VirtualClusterConfig virtual_cluster_config = 10
[(google.api.field_behavior) = OPTIONAL];
// Optional. The labels to associate with this cluster.
// Label **keys** must contain 1 to 63 characters, and must conform to
@ -189,7 +201,8 @@ message Cluster {
ClusterStatus status = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The previous cluster status.
repeated ClusterStatus status_history = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
repeated ClusterStatus status_history = 7
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. A cluster UUID (Unique Universal Identifier). Dataproc
// generates this value when it creates the cluster.
@ -217,15 +230,13 @@ message ClusterConfig {
// a Cloud Storage bucket.**
string config_bucket = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. A Cloud Storage bucket used to store ephemeral cluster and jobs data,
// such as Spark and MapReduce history files.
// If you do not specify a temp bucket,
// Dataproc will determine a Cloud Storage location (US,
// ASIA, or EU) for your cluster's temp bucket according to the
// Compute Engine zone where your cluster is deployed, and then create
// and manage this project-level, per-location bucket. The default bucket has
// a TTL of 90 days, but you can use any TTL (or none) if you specify a
// bucket (see
// Optional. A Cloud Storage bucket used to store ephemeral cluster and jobs
// data, such as Spark and MapReduce history files. If you do not specify a
// temp bucket, Dataproc will determine a Cloud Storage location (US, ASIA, or
// EU) for your cluster's temp bucket according to the Compute Engine zone
// where your cluster is deployed, and then create and manage this
// project-level, per-location bucket. The default bucket has a TTL of 90
// days, but you can use any TTL (or none) if you specify a bucket (see
// [Dataproc staging and temp
// buckets](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)).
// **This field requires a Cloud Storage bucket name, not a `gs://...` URI to
@ -234,19 +245,23 @@ message ClusterConfig {
// Optional. The shared Compute Engine config settings for
// all instances in a cluster.
GceClusterConfig gce_cluster_config = 8 [(google.api.field_behavior) = OPTIONAL];
GceClusterConfig gce_cluster_config = 8
[(google.api.field_behavior) = OPTIONAL];
// Optional. The Compute Engine config settings for
// the cluster's master instance.
InstanceGroupConfig master_config = 9 [(google.api.field_behavior) = OPTIONAL];
InstanceGroupConfig master_config = 9
[(google.api.field_behavior) = OPTIONAL];
// Optional. The Compute Engine config settings for
// the cluster's worker instances.
InstanceGroupConfig worker_config = 10 [(google.api.field_behavior) = OPTIONAL];
InstanceGroupConfig worker_config = 10
[(google.api.field_behavior) = OPTIONAL];
// Optional. The Compute Engine config settings for
// a cluster's secondary worker instances
InstanceGroupConfig secondary_worker_config = 12 [(google.api.field_behavior) = OPTIONAL];
InstanceGroupConfig secondary_worker_config = 12
[(google.api.field_behavior) = OPTIONAL];
// Optional. The config settings for cluster software.
SoftwareConfig software_config = 13 [(google.api.field_behavior) = OPTIONAL];
@ -264,36 +279,46 @@ message ClusterConfig {
// else
// ... worker specific actions ...
// fi
repeated NodeInitializationAction initialization_actions = 11 [(google.api.field_behavior) = OPTIONAL];
repeated NodeInitializationAction initialization_actions = 11
[(google.api.field_behavior) = OPTIONAL];
// Optional. Encryption settings for the cluster.
EncryptionConfig encryption_config = 15 [(google.api.field_behavior) = OPTIONAL];
EncryptionConfig encryption_config = 15
[(google.api.field_behavior) = OPTIONAL];
// Optional. Autoscaling config for the policy associated with the cluster.
// Cluster does not autoscale if this field is unset.
AutoscalingConfig autoscaling_config = 18 [(google.api.field_behavior) = OPTIONAL];
AutoscalingConfig autoscaling_config = 18
[(google.api.field_behavior) = OPTIONAL];
// Optional. Security settings for the cluster.
SecurityConfig security_config = 16 [(google.api.field_behavior) = OPTIONAL];
// Optional. Lifecycle setting for the cluster.
LifecycleConfig lifecycle_config = 17 [(google.api.field_behavior) = OPTIONAL];
LifecycleConfig lifecycle_config = 17
[(google.api.field_behavior) = OPTIONAL];
// Optional. Port/endpoint configuration for this cluster
EndpointConfig endpoint_config = 19 [(google.api.field_behavior) = OPTIONAL];
// Optional. Metastore configuration.
MetastoreConfig metastore_config = 20 [(google.api.field_behavior) = OPTIONAL];
MetastoreConfig metastore_config = 20
[(google.api.field_behavior) = OPTIONAL];
// Optional. The config for Dataproc metrics.
DataprocMetricConfig dataproc_metric_config = 23 [(google.api.field_behavior) = OPTIONAL];
DataprocMetricConfig dataproc_metric_config = 23
[(google.api.field_behavior) = OPTIONAL];
// Optional. The node group settings.
repeated AuxiliaryNodeGroup auxiliary_node_groups = 25
[(google.api.field_behavior) = OPTIONAL];
}
// Dataproc cluster config for a cluster that does not directly control the
// The Dataproc cluster config for a cluster that does not directly control the
// underlying compute resources, such as a [Dataproc-on-GKE
// cluster](https://cloud.google.com/dataproc/docs/concepts/jobs/dataproc-gke#create-a-dataproc-on-gke-cluster).
// cluster](https://cloud.google.com/dataproc/docs/guides/dpgke/dataproc-gke).
message VirtualClusterConfig {
// Optional. A Storage bucket used to stage job
// Optional. A Cloud Storage bucket used to stage job
// dependencies, config files, and job driver console output.
// If you do not specify a staging bucket, Cloud
// Dataproc will determine a Cloud Storage location (US,
@ -307,12 +332,15 @@ message VirtualClusterConfig {
string staging_bucket = 1 [(google.api.field_behavior) = OPTIONAL];
oneof infrastructure_config {
// Required. The configuration for running the Dataproc cluster on Kubernetes.
KubernetesClusterConfig kubernetes_cluster_config = 6 [(google.api.field_behavior) = REQUIRED];
// Required. The configuration for running the Dataproc cluster on
// Kubernetes.
KubernetesClusterConfig kubernetes_cluster_config = 6
[(google.api.field_behavior) = REQUIRED];
}
// Optional. Configuration of auxiliary services used by this cluster.
AuxiliaryServicesConfig auxiliary_services_config = 7 [(google.api.field_behavior) = OPTIONAL];
AuxiliaryServicesConfig auxiliary_services_config = 7
[(google.api.field_behavior) = OPTIONAL];
}
// Auxiliary services configuration for a Cluster.
@ -321,14 +349,16 @@ message AuxiliaryServicesConfig {
MetastoreConfig metastore_config = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. The Spark History Server configuration for the workload.
SparkHistoryServerConfig spark_history_server_config = 2 [(google.api.field_behavior) = OPTIONAL];
SparkHistoryServerConfig spark_history_server_config = 2
[(google.api.field_behavior) = OPTIONAL];
}
// Endpoint config for this cluster
message EndpointConfig {
// Output only. The map of port descriptions to URLs. Will only be populated
// if enable_http_port_access is true.
map<string, string> http_ports = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
map<string, string> http_ports = 1
[(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. If true, enable http access to specific ports on the cluster
// from external sources. Defaults to false.
@ -366,7 +396,8 @@ message GceClusterConfig {
// fields](https://cloud.google.com/compute/docs/reference/rest/v1/instances).
enum PrivateIpv6GoogleAccess {
// If unspecified, Compute Engine default behavior will apply, which
// is the same as [INHERIT_FROM_SUBNETWORK][google.cloud.dataproc.v1.GceClusterConfig.PrivateIpv6GoogleAccess.INHERIT_FROM_SUBNETWORK].
// is the same as
// [INHERIT_FROM_SUBNETWORK][google.cloud.dataproc.v1.GceClusterConfig.PrivateIpv6GoogleAccess.INHERIT_FROM_SUBNETWORK].
PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED = 0;
// Private access to and from Google Services configuration
@ -429,7 +460,8 @@ message GceClusterConfig {
bool internal_ip_only = 7 [(google.api.field_behavior) = OPTIONAL];
// Optional. The type of IPv6 access for a cluster.
PrivateIpv6GoogleAccess private_ipv6_google_access = 12 [(google.api.field_behavior) = OPTIONAL];
PrivateIpv6GoogleAccess private_ipv6_google_access = 12
[(google.api.field_behavior) = OPTIONAL];
// Optional. The [Dataproc service
// account](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/service-accounts#service_accounts_in_dataproc)
@ -458,7 +490,8 @@ message GceClusterConfig {
// * https://www.googleapis.com/auth/bigtable.admin.table
// * https://www.googleapis.com/auth/bigtable.data
// * https://www.googleapis.com/auth/devstorage.full_control
repeated string service_account_scopes = 3 [(google.api.field_behavior) = OPTIONAL];
repeated string service_account_scopes = 3
[(google.api.field_behavior) = OPTIONAL];
// The Compute Engine tags to add to all instances (see [Tagging
// instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
@ -470,21 +503,28 @@ message GceClusterConfig {
map<string, string> metadata = 5;
// Optional. Reservation Affinity for consuming Zonal reservation.
ReservationAffinity reservation_affinity = 11 [(google.api.field_behavior) = OPTIONAL];
ReservationAffinity reservation_affinity = 11
[(google.api.field_behavior) = OPTIONAL];
// Optional. Node Group Affinity for sole-tenant clusters.
NodeGroupAffinity node_group_affinity = 13 [(google.api.field_behavior) = OPTIONAL];
NodeGroupAffinity node_group_affinity = 13
[(google.api.field_behavior) = OPTIONAL];
// Optional. Shielded Instance Config for clusters using [Compute Engine Shielded
// Optional. Shielded Instance Config for clusters using [Compute Engine
// Shielded
// VMs](https://cloud.google.com/security/shielded-cloud/shielded-vm).
ShieldedInstanceConfig shielded_instance_config = 14 [(google.api.field_behavior) = OPTIONAL];
ShieldedInstanceConfig shielded_instance_config = 14
[(google.api.field_behavior) = OPTIONAL];
// Optional. Confidential Instance Config for clusters using [Confidential
// VMs](https://cloud.google.com/compute/confidential-vm/docs).
ConfidentialInstanceConfig confidential_instance_config = 15 [(google.api.field_behavior) = OPTIONAL];
ConfidentialInstanceConfig confidential_instance_config = 15
[(google.api.field_behavior) = OPTIONAL];
}
// Node Group Affinity for clusters using sole-tenant node groups.
// **The Dataproc `NodeGroupAffinity` resource is not related to the
// Dataproc [NodeGroup][google.cloud.dataproc.v1.NodeGroup] resource.**
message NodeGroupAffinity {
// Required. The URI of a
// sole-tenant [node group
@ -515,17 +555,15 @@ message ShieldedInstanceConfig {
// Confidential Instance Config for clusters using [Confidential
// VMs](https://cloud.google.com/compute/confidential-vm/docs)
message ConfidentialInstanceConfig {
// Optional. Defines whether the instance should have confidential compute enabled.
// Optional. Defines whether the instance should have confidential compute
// enabled.
bool enable_confidential_compute = 1 [(google.api.field_behavior) = OPTIONAL];
}
// The config settings for Compute Engine resources in
// an instance group, such as a master or worker group.
message InstanceGroupConfig {
// Controls the use of
// [preemptible instances]
// (https://cloud.google.com/compute/docs/instances/preemptible)
// within the group.
// Controls the use of preemptible instances within the group.
enum Preemptibility {
// Preemptibility is unspecified, the system will choose the
// appropriate setting for each instance group.
@ -537,9 +575,12 @@ message InstanceGroupConfig {
// value for Master and Worker instance groups.
NON_PREEMPTIBLE = 1;
// Instances are preemptible.
// Instances are [preemptible]
// (https://cloud.google.com/compute/docs/instances/preemptible).
//
// This option is allowed only for secondary worker groups.
// This option is allowed only for [secondary worker]
// (https://cloud.google.com/dataproc/docs/concepts/compute/secondary-vms)
// groups.
PREEMPTIBLE = 2;
}
@ -553,7 +594,8 @@ message InstanceGroupConfig {
// Output only. The list of instance names. Dataproc derives the names
// from `cluster_name`, `num_instances`, and the instance group.
repeated string instance_names = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
repeated string instance_names = 2
[(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. The Compute Engine image resource used for cluster instances.
//
@ -609,11 +651,13 @@ message InstanceGroupConfig {
// Output only. The config for Compute Engine Instance Group
// Manager that manages this group.
// This is only used for preemptible instance groups.
ManagedGroupConfig managed_group_config = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
ManagedGroupConfig managed_group_config = 7
[(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. The Compute Engine accelerator configuration for these
// instances.
repeated AcceleratorConfig accelerators = 8 [(google.api.field_behavior) = OPTIONAL];
repeated AcceleratorConfig accelerators = 8
[(google.api.field_behavior) = OPTIONAL];
// Optional. Specifies the minimum cpu platform for the Instance Group.
// See [Dataproc -> Minimum CPU
@ -628,7 +672,8 @@ message ManagedGroupConfig {
string instance_template_name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The name of the Instance Group Manager for this group.
string instance_group_manager_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
string instance_group_manager_name = 2
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// Specifies the type and number of accelerator cards attached to the instances
@ -669,7 +714,7 @@ message DiskConfig {
// Optional. Size in GB of the boot disk (default is 500GB).
int32 boot_disk_size_gb = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. Number of attached SSDs, from 0 to 4 (default is 0).
// Optional. Number of attached SSDs, from 0 to 8 (default is 0).
// If SSDs are not attached, the boot disk is used to store runtime logs and
// [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data.
// If one or more SSDs are attached, this runtime bulk
@ -685,6 +730,59 @@ message DiskConfig {
string local_ssd_interface = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Node group identification and configuration information.
message AuxiliaryNodeGroup {
// Required. Node group configuration.
NodeGroup node_group = 1 [(google.api.field_behavior) = REQUIRED];
// Optional. A node group ID. Generated if not specified.
//
// The ID must contain only letters (a-z, A-Z), numbers (0-9),
// underscores (_), and hyphens (-). Cannot begin or end with underscore
// or hyphen. Must consist of from 3 to 33 characters.
string node_group_id = 2 [(google.api.field_behavior) = OPTIONAL];
}
// Dataproc Node Group.
// **The Dataproc `NodeGroup` resource is not related to the
// Dataproc [NodeGroupAffinity][google.cloud.dataproc.v1.NodeGroupAffinity]
// resource.**
message NodeGroup {
option (google.api.resource) = {
type: "dataproc.googleapis.com/NodeGroup"
pattern: "projects/{project}/regions/{region}/clusters/{cluster}/nodeGroups/{node_group}"
};
// Node group roles.
enum Role {
// Required unspecified role.
ROLE_UNSPECIFIED = 0;
// Job drivers run on the node group.
DRIVER = 1;
}
// The Node group [resource name](https://aip.dev/122).
string name = 1;
// Required. Node group roles.
repeated Role roles = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. The node group instance group configuration.
InstanceGroupConfig node_group_config = 3
[(google.api.field_behavior) = OPTIONAL];
// Optional. Node group labels.
//
// * Label **keys** must consist of from 1 to 63 characters and conform to
// [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt).
// * Label **values** can be empty. If specified, they must consist of from
// 1 to 63 characters and conform to [RFC 1035]
// (https://www.ietf.org/rfc/rfc1035.txt).
// * The node group must have no more than 32 labels.
map<string, string> labels = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Specifies an executable to run on a fully configured node and a
// timeout period for executable completion.
message NodeInitializationAction {
@ -698,7 +796,8 @@ message NodeInitializationAction {
// Cluster creation fails with an explanatory error message (the
// name of the executable that caused the error and the exceeded timeout
// period) if the executable is not completed at end of the timeout period.
google.protobuf.Duration execution_timeout = 2 [(google.api.field_behavior) = OPTIONAL];
google.protobuf.Duration execution_timeout = 2
[(google.api.field_behavior) = OPTIONAL];
}
// The status of a cluster and its instances.
@ -771,7 +870,8 @@ message ClusterStatus {
// Output only. Time when this state was entered (see JSON representation of
// [Timestamp](https://developers.google.com/protocol-buffers/docs/proto3#json)).
google.protobuf.Timestamp state_start_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
google.protobuf.Timestamp state_start_time = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Additional state information that includes
// status reported by the agent.
@ -790,13 +890,14 @@ message SecurityConfig {
// Specifies Kerberos related configuration.
message KerberosConfig {
// Optional. Flag to indicate whether to Kerberize the cluster (default: false). Set
// this field to true to enable Kerberos on a cluster.
// Optional. Flag to indicate whether to Kerberize the cluster (default:
// false). Set this field to true to enable Kerberos on a cluster.
bool enable_kerberos = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. The Cloud Storage URI of a KMS encrypted file containing the root
// principal password.
string root_principal_password_uri = 2 [(google.api.field_behavior) = OPTIONAL];
string root_principal_password_uri = 2
[(google.api.field_behavior) = OPTIONAL];
// Optional. The uri of the KMS key used to encrypt various sensitive
// files.
@ -837,12 +938,14 @@ message KerberosConfig {
// Optional. The admin server (IP or hostname) for the remote trusted realm in
// a cross realm trust relationship.
string cross_realm_trust_admin_server = 11 [(google.api.field_behavior) = OPTIONAL];
string cross_realm_trust_admin_server = 11
[(google.api.field_behavior) = OPTIONAL];
// Optional. The Cloud Storage URI of a KMS encrypted file containing the
// shared password between the on-cluster Kerberos realm and the remote
// trusted realm, in a cross realm trust relationship.
string cross_realm_trust_shared_password_uri = 12 [(google.api.field_behavior) = OPTIONAL];
string cross_realm_trust_shared_password_uri = 12
[(google.api.field_behavior) = OPTIONAL];
// Optional. The Cloud Storage URI of a KMS encrypted file containing the
// master key of the KDC database.
@ -862,7 +965,8 @@ message KerberosConfig {
// secure multi-tenancy user mappings.
message IdentityConfig {
// Required. Map of user to service account.
map<string, string> user_service_account_mapping = 1 [(google.api.field_behavior) = REQUIRED];
map<string, string> user_service_account_mapping = 1
[(google.api.field_behavior) = REQUIRED];
}
// Specifies the selection and config of software inside the cluster.
@ -897,7 +1001,8 @@ message SoftwareConfig {
map<string, string> properties = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. The set of components to activate on the cluster.
repeated Component optional_components = 3 [(google.api.field_behavior) = OPTIONAL];
repeated Component optional_components = 3
[(google.api.field_behavior) = OPTIONAL];
}
// Specifies the cluster auto-delete schedule configuration.
@ -907,27 +1012,32 @@ message LifecycleConfig {
// deleted. Minimum value is 5 minutes; maximum value is 14 days (see JSON
// representation of
// [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)).
google.protobuf.Duration idle_delete_ttl = 1 [(google.api.field_behavior) = OPTIONAL];
google.protobuf.Duration idle_delete_ttl = 1
[(google.api.field_behavior) = OPTIONAL];
// Either the exact time the cluster should be deleted at or
// the cluster maximum age.
oneof ttl {
// Optional. The time when cluster will be auto-deleted (see JSON representation of
// Optional. The time when cluster will be auto-deleted (see JSON
// representation of
// [Timestamp](https://developers.google.com/protocol-buffers/docs/proto3#json)).
google.protobuf.Timestamp auto_delete_time = 2 [(google.api.field_behavior) = OPTIONAL];
google.protobuf.Timestamp auto_delete_time = 2
[(google.api.field_behavior) = OPTIONAL];
// Optional. The lifetime duration of cluster. The cluster will be
// auto-deleted at the end of this period. Minimum value is 10 minutes;
// maximum value is 14 days (see JSON representation of
// [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)).
google.protobuf.Duration auto_delete_ttl = 3 [(google.api.field_behavior) = OPTIONAL];
google.protobuf.Duration auto_delete_ttl = 3
[(google.api.field_behavior) = OPTIONAL];
}
// Output only. The time when cluster became idle (most recent job finished)
// and became eligible for deletion due to idleness (see JSON representation
// of
// [Timestamp](https://developers.google.com/protocol-buffers/docs/proto3#json)).
google.protobuf.Timestamp idle_start_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
google.protobuf.Timestamp idle_start_time = 4
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// Specifies a Metastore configuration.
@ -945,7 +1055,6 @@ message MetastoreConfig {
];
}
// Dataproc metric config.
message DataprocMetricConfig {
// A source for the collection of Dataproc OSS metrics (see [available OSS
@ -1014,7 +1123,8 @@ message DataprocMetricConfig {
// sources is unaffected. For example, if both `SPARK` andd `YARN` metric
// sources are enabled, and overrides are provided for Spark metrics only,
// all default YARN metrics will be collected.
repeated string metric_overrides = 2 [(google.api.field_behavior) = OPTIONAL];
repeated string metric_overrides = 2
[(google.api.field_behavior) = OPTIONAL];
}
// Required. Metrics sources to enable.
@ -1045,11 +1155,12 @@ message CreateClusterRequest {
// Required. The cluster to create.
Cluster cluster = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. A unique ID used to identify the request. If the server receives two
// Optional. A unique ID used to identify the request. If the server receives
// two
// [CreateClusterRequest](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.CreateClusterRequest)s
// with the same id, then the second request will be ignored and the
// first [google.longrunning.Operation][google.longrunning.Operation] created and stored in the backend
// is returned.
// first [google.longrunning.Operation][google.longrunning.Operation] created
// and stored in the backend is returned.
//
// It is recommended to always set this value to a
// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
@ -1059,7 +1170,8 @@ message CreateClusterRequest {
string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Failure action when primary worker creation fails.
FailureAction action_on_failed_primary_workers = 5 [(google.api.field_behavior) = OPTIONAL];
FailureAction action_on_failed_primary_workers = 5
[(google.api.field_behavior) = OPTIONAL];
}
// A request to update a cluster.
@ -1086,7 +1198,8 @@ message UpdateClusterRequest {
// [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)).
//
// Only supported on Dataproc image versions 1.2 and higher.
google.protobuf.Duration graceful_decommission_timeout = 6 [(google.api.field_behavior) = OPTIONAL];
google.protobuf.Duration graceful_decommission_timeout = 6
[(google.api.field_behavior) = OPTIONAL];
// Required. Specifies the path, relative to `Cluster`, of
// the field to update. For example, to change the number of workers
@ -1139,14 +1252,15 @@ message UpdateClusterRequest {
// </tr>
// </tbody>
// </table>
google.protobuf.FieldMask update_mask = 4 [(google.api.field_behavior) = REQUIRED];
google.protobuf.FieldMask update_mask = 4
[(google.api.field_behavior) = REQUIRED];
// Optional. A unique ID used to identify the request. If the server
// receives two
// [UpdateClusterRequest](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.UpdateClusterRequest)s
// with the same id, then the second request will be ignored and the
// first [google.longrunning.Operation][google.longrunning.Operation] created and stored in the
// backend is returned.
// first [google.longrunning.Operation][google.longrunning.Operation] created
// and stored in the backend is returned.
//
// It is recommended to always set this value to a
// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
@ -1176,8 +1290,8 @@ message StopClusterRequest {
// receives two
// [StopClusterRequest](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.StopClusterRequest)s
// with the same id, then the second request will be ignored and the
// first [google.longrunning.Operation][google.longrunning.Operation] created and stored in the
// backend is returned.
// first [google.longrunning.Operation][google.longrunning.Operation] created
// and stored in the backend is returned.
//
// Recommendation: Set this value to a
// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
@ -1207,8 +1321,8 @@ message StartClusterRequest {
// receives two
// [StartClusterRequest](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.StartClusterRequest)s
// with the same id, then the second request will be ignored and the
// first [google.longrunning.Operation][google.longrunning.Operation] created and stored in the
// backend is returned.
// first [google.longrunning.Operation][google.longrunning.Operation] created
// and stored in the backend is returned.
//
// Recommendation: Set this value to a
// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
@ -1238,8 +1352,8 @@ message DeleteClusterRequest {
// receives two
// [DeleteClusterRequest](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.DeleteClusterRequest)s
// with the same id, then the second request will be ignored and the
// first [google.longrunning.Operation][google.longrunning.Operation] created and stored in the
// backend is returned.
// first [google.longrunning.Operation][google.longrunning.Operation] created
// and stored in the backend is returned.
//
// It is recommended to always set this value to a
// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).

@ -8,6 +8,7 @@ apis:
- name: google.cloud.dataproc.v1.BatchController
- name: google.cloud.dataproc.v1.ClusterController
- name: google.cloud.dataproc.v1.JobController
- name: google.cloud.dataproc.v1.NodeGroupController
- name: google.cloud.dataproc.v1.WorkflowTemplateService
types:
@ -15,6 +16,7 @@ types:
- name: google.cloud.dataproc.v1.ClusterOperationMetadata
- name: google.cloud.dataproc.v1.DiagnoseClusterResults
- name: google.cloud.dataproc.v1.JobMetadata
- name: google.cloud.dataproc.v1.NodeGroupOperationMetadata
- name: google.cloud.dataproc.v1.WorkflowMetadata
documentation:
@ -120,6 +122,10 @@ authentication:
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.cloud.dataproc.v1.NodeGroupController.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.cloud.dataproc.v1.WorkflowTemplateService.*'
oauth:
canonical_scopes: |-

@ -1,4 +1,4 @@
// Copyright 2021 Google LLC
// 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.
@ -32,7 +32,8 @@ option java_package = "com.google.cloud.dataproc.v1";
// The JobController provides methods to manage jobs.
service JobController {
option (google.api.default_host) = "dataproc.googleapis.com";
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform";
// Submits a job to a cluster.
rpc SubmitJob(SubmitJobRequest) returns (Job) {
@ -44,7 +45,8 @@ service JobController {
}
// Submits job to a cluster.
rpc SubmitJobAsOperation(SubmitJobRequest) returns (google.longrunning.Operation) {
rpc SubmitJobAsOperation(SubmitJobRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/projects/{project_id}/regions/{region}/jobs:submitAsOperation"
body: "*"
@ -198,7 +200,7 @@ message HadoopJob {
LoggingConfig logging_config = 8 [(google.api.field_behavior) = OPTIONAL];
}
// A Dataproc job for running [Apache Spark](http://spark.apache.org/)
// A Dataproc job for running [Apache Spark](https://spark.apache.org/)
// applications on YARN.
message SparkJob {
// Required. The specification of the main method to call to drive the job.
@ -323,7 +325,8 @@ message HiveJob {
// Optional. Mapping of query variable names to values (equivalent to the
// Hive command: `SET name="value";`).
map<string, string> script_variables = 4 [(google.api.field_behavior) = OPTIONAL];
map<string, string> script_variables = 4
[(google.api.field_behavior) = OPTIONAL];
// Optional. A mapping of property names and values, used to configure Hive.
// Properties that conflict with values set by the Dataproc API may be
@ -338,7 +341,7 @@ message HiveJob {
}
// A Dataproc job for running [Apache Spark
// SQL](http://spark.apache.org/sql/) queries.
// SQL](https://spark.apache.org/sql/) queries.
message SparkSqlJob {
// Required. The sequence of Spark SQL queries to execute, specified as
// either an HCFS file URI or as a list of queries.
@ -352,7 +355,8 @@ message SparkSqlJob {
// Optional. Mapping of query variable names to values (equivalent to the
// Spark SQL command: SET `name="value";`).
map<string, string> script_variables = 3 [(google.api.field_behavior) = OPTIONAL];
map<string, string> script_variables = 3
[(google.api.field_behavior) = OPTIONAL];
// Optional. A mapping of property names to values, used to configure
// Spark SQL's SparkConf. Properties that conflict with values set by the
@ -386,7 +390,8 @@ message PigJob {
// Optional. Mapping of query variable names to values (equivalent to the Pig
// command: `name=[value]`).
map<string, string> script_variables = 4 [(google.api.field_behavior) = OPTIONAL];
map<string, string> script_variables = 4
[(google.api.field_behavior) = OPTIONAL];
// Optional. A mapping of property names to values, used to configure Pig.
// Properties that conflict with values set by the Dataproc API may be
@ -480,8 +485,10 @@ message JobPlacement {
// the job is submitted.
string cluster_uuid = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. Cluster labels to identify a cluster where the job will be submitted.
map<string, string> cluster_labels = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. Cluster labels to identify a cluster where the job will be
// submitted.
map<string, string> cluster_labels = 3
[(google.api.field_behavior) = OPTIONAL];
}
// Dataproc job status.
@ -560,7 +567,8 @@ message JobStatus {
];
// Output only. The time when this state was entered.
google.protobuf.Timestamp state_start_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
google.protobuf.Timestamp state_start_time = 6
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Additional state information, which includes
// status reported by the agent.
@ -569,8 +577,8 @@ message JobStatus {
// Encapsulates the full scoping used to reference a job.
message JobReference {
// Optional. The ID of the Google Cloud Platform project that the job belongs to. If
// specified, must match the request project ID.
// Optional. The ID of the Google Cloud Platform project that the job belongs
// to. If specified, must match the request project ID.
string project_id = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. The job ID, which must be unique within the project.
@ -680,22 +688,26 @@ message Job {
JobStatus status = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The previous job status.
repeated JobStatus status_history = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
repeated JobStatus status_history = 13
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The collection of YARN applications spun up by this job.
//
// **Beta** Feature: This report is available for testing purposes only. It
// may be changed before final release.
repeated YarnApplication yarn_applications = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
repeated YarnApplication yarn_applications = 9
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. A URI pointing to the location of the stdout of the job's
// driver program.
string driver_output_resource_uri = 17 [(google.api.field_behavior) = OUTPUT_ONLY];
string driver_output_resource_uri = 17
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. If present, the location of miscellaneous control files
// which may be used as part of job setup and handling. If not present,
// control files may be placed in the same location as `driver_output_uri`.
string driver_control_files_uri = 15 [(google.api.field_behavior) = OUTPUT_ONLY];
string driver_control_files_uri = 15
[(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. The labels to associate with this job.
// Label **keys** must contain 1 to 63 characters, and must conform to
@ -714,11 +726,24 @@ message Job {
// may be reused over time.
string job_uuid = 22 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Indicates whether the job is completed. If the value is `false`,
// the job is still in progress. If `true`, the job is completed, and
// Output only. Indicates whether the job is completed. If the value is
// `false`, the job is still in progress. If `true`, the job is completed, and
// `status.state` field will indicate if it was successful, failed,
// or cancelled.
bool done = 24 [(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. Driver scheduling configuration.
DriverSchedulingConfig driver_scheduling_config = 27
[(google.api.field_behavior) = OPTIONAL];
}
// Driver scheduling configuration.
message DriverSchedulingConfig {
// Required. The amount of memory in MB the driver is requesting.
int32 memory_mb = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The number of vCPUs the driver is requesting.
int32 vcores = 2 [(google.api.field_behavior) = REQUIRED];
}
// Job scheduling options.
@ -727,27 +752,26 @@ message JobScheduling {
// a result of driver exiting with non-zero code before job is
// reported failed.
//
// A job may be reported as thrashing if driver exits with non-zero code
// 4 times within 10 minute window.
// A job may be reported as thrashing if the driver exits with a non-zero code
// four times within a 10-minute window.
//
// Maximum value is 10.
//
// **Note:** Currently, this restartable job option is
// not supported in Dataproc
// [workflow
// template](https://cloud.google.com/dataproc/docs/concepts/workflows/using-workflows#adding_jobs_to_a_template)
// jobs.
// **Note:** This restartable job option is not supported in Dataproc
// [workflow templates]
// (https://cloud.google.com/dataproc/docs/concepts/workflows/using-workflows#adding_jobs_to_a_template).
int32 max_failures_per_hour = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. Maximum number of times in total a driver may be restarted as a result of
// driver exiting with non-zero code before job is reported failed.
// Optional. Maximum total number of times a driver may be restarted as a
// result of the driver exiting with a non-zero code. After the maximum number
// is reached, the job will be reported as failed.
//
// Maximum value is 240.
//
// **Note:** Currently, this restartable job option is
// not supported in Dataproc
// [workflow
// template](https://cloud.google.com/dataproc/docs/concepts/workflows/using-workflows#adding_jobs_to_a_template)
// jobs.
// templates](https://cloud.google.com/dataproc/docs/concepts/workflows/using-workflows#adding_jobs_to_a_template).
int32 max_failures_total = 2 [(google.api.field_behavior) = OPTIONAL];
}
@ -790,7 +814,8 @@ message JobMetadata {
string operation_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Job submission time.
google.protobuf.Timestamp start_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
google.protobuf.Timestamp start_time = 4
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// A request to get the resource representation for a job in a project.
@ -843,7 +868,8 @@ message ListJobsRequest {
// (default = match ALL jobs).
//
// If `filter` is provided, `jobStateMatcher` will be ignored.
JobStateMatcher job_state_matcher = 5 [(google.api.field_behavior) = OPTIONAL];
JobStateMatcher job_state_matcher = 5
[(google.api.field_behavior) = OPTIONAL];
// Optional. A filter constraining the jobs to list. Filters are
// case-sensitive and have the following syntax:
@ -883,7 +909,8 @@ message UpdateJobRequest {
// <code>labels</code>, and the `PATCH` request body would specify the new
// value. <strong>Note:</strong> Currently, <code>labels</code> is the only
// field that can be updated.
google.protobuf.FieldMask update_mask = 5 [(google.api.field_behavior) = REQUIRED];
google.protobuf.FieldMask update_mask = 5
[(google.api.field_behavior) = REQUIRED];
}
// A list of jobs in a project.

@ -0,0 +1,174 @@
// 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.cloud.dataproc.v1;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/dataproc/v1/clusters.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/duration.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/dataproc/v1;dataproc";
option java_multiple_files = true;
option java_outer_classname = "NodeGroupsProto";
option java_package = "com.google.cloud.dataproc.v1";
option (google.api.resource_definition) = {
type: "dataproc.googleapis.com/ClusterRegion"
pattern: "projects/{project}/regions/{region}/clusters/{cluster}"
};
// The `NodeGroupControllerService` provides methods to manage node groups
// of Compute Engine managed instances.
service NodeGroupController {
option (google.api.default_host) = "dataproc.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform";
// Creates a node group in a cluster. The returned
// [Operation.metadata][google.longrunning.Operation.metadata] is
// [NodeGroupOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#nodegroupoperationmetadata).
rpc CreateNodeGroup(CreateNodeGroupRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{parent=projects/*/regions/*/clusters/*}/nodeGroups"
body: "node_group"
};
option (google.api.method_signature) = "parent,node_group,node_group_id";
option (google.longrunning.operation_info) = {
response_type: "NodeGroup"
metadata_type: "google.cloud.dataproc.v1.NodeGroupOperationMetadata"
};
}
// Resizes a node group in a cluster. The returned
// [Operation.metadata][google.longrunning.Operation.metadata] is
// [NodeGroupOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#nodegroupoperationmetadata).
rpc ResizeNodeGroup(ResizeNodeGroupRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{name=projects/*/regions/*/clusters/*/nodeGroups/*}:resize"
body: "*"
};
option (google.api.method_signature) = "name,size";
option (google.longrunning.operation_info) = {
response_type: "NodeGroup"
metadata_type: "google.cloud.dataproc.v1.NodeGroupOperationMetadata"
};
}
// Gets the resource representation for a node group in a
// cluster.
rpc GetNodeGroup(GetNodeGroupRequest) returns (NodeGroup) {
option (google.api.http) = {
get: "/v1/{name=projects/*/regions/*/clusters/*/nodeGroups/*}"
};
option (google.api.method_signature) = "name";
}
}
// A request to create a node group.
message CreateNodeGroupRequest {
// Required. The parent resource where this node group will be created.
// Format: `projects/{project}/regions/{region}/clusters/{cluster}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "dataproc.googleapis.com/NodeGroup"
}
];
// Required. The node group to create.
NodeGroup node_group = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. An optional node group ID. Generated if not specified.
//
// The ID must contain only letters (a-z, A-Z), numbers (0-9),
// underscores (_), and hyphens (-). Cannot begin or end with underscore
// or hyphen. Must consist of from 3 to 33 characters.
string node_group_id = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. A unique ID used to identify the request. If the server receives
// two
// [CreateNodeGroupRequest](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.CreateNodeGroupRequests)
// with the same ID, the second request is ignored and the
// first [google.longrunning.Operation][google.longrunning.Operation] created
// and stored in the backend is returned.
//
// Recommendation: Set this value to a
// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
//
// The ID must contain only letters (a-z, A-Z), numbers (0-9),
// underscores (_), and hyphens (-). The maximum length is 40 characters.
string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
}
// A request to resize a node group.
message ResizeNodeGroupRequest {
// Required. The name of the node group to resize.
// Format:
// `projects/{project}/regions/{region}/clusters/{cluster}/nodeGroups/{nodeGroup}`
string name = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The number of running instances for the node group to maintain.
// The group adds or removes instances to maintain the number of instances
// specified by this parameter.
int32 size = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. A unique ID used to identify the request. If the server receives
// two
// [ResizeNodeGroupRequest](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.ResizeNodeGroupRequests)
// with the same ID, the second request is ignored and the
// first [google.longrunning.Operation][google.longrunning.Operation] created
// and stored in the backend is returned.
//
// Recommendation: Set this value to a
// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
//
// The ID must contain only letters (a-z, A-Z), numbers (0-9),
// underscores (_), and hyphens (-). The maximum length is 40 characters.
string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. Timeout for graceful YARN decommissioning. [Graceful
// decommissioning]
// (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/scaling-clusters#graceful_decommissioning)
// allows the removal of nodes from the Compute Engine node group
// without interrupting jobs in progress. This timeout specifies how long to
// wait for jobs in progress to finish before forcefully removing nodes (and
// potentially interrupting jobs). Default timeout is 0 (for forceful
// decommission), and the maximum allowed timeout is 1 day. (see JSON
// representation of
// [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)).
//
// Only supported on Dataproc image versions 1.2 and higher.
google.protobuf.Duration graceful_decommission_timeout = 4
[(google.api.field_behavior) = OPTIONAL];
}
// A request to get a node group .
message GetNodeGroupRequest {
// Required. The name of the node group to retrieve.
// Format:
// `projects/{project}/regions/{region}/clusters/{cluster}/nodeGroups/{nodeGroup}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "dataproc.googleapis.com/NodeGroup"
}
];
}

@ -1,4 +1,4 @@
// Copyright 2021 Google LLC
// 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.
@ -87,7 +87,8 @@ message ClusterOperationStatus {
string details = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The time this state was entered.
google.protobuf.Timestamp state_start_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
google.protobuf.Timestamp state_start_time = 4
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// Metadata describing the operation.
@ -102,7 +103,8 @@ message ClusterOperationMetadata {
ClusterOperationStatus status = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The previous operation status.
repeated ClusterOperationStatus status_history = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
repeated ClusterOperationStatus status_history = 10
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The operation type.
string operation_type = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
@ -116,3 +118,49 @@ message ClusterOperationMetadata {
// Output only. Errors encountered during operation execution.
repeated string warnings = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Metadata describing the node group operation.
message NodeGroupOperationMetadata {
// Operation type for node group resources.
enum NodeGroupOperationType {
// Node group operation type is unknown.
NODE_GROUP_OPERATION_TYPE_UNSPECIFIED = 0;
// Create node group operation type.
CREATE = 1;
// Update node group operation type.
UPDATE = 2;
// Delete node group operation type.
DELETE = 3;
// Resize node group operation type.
RESIZE = 4;
}
// Output only. Node group ID for the operation.
string node_group_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Cluster UUID associated with the node group operation.
string cluster_uuid = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Current operation status.
ClusterOperationStatus status = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The previous operation status.
repeated ClusterOperationStatus status_history = 4
[(google.api.field_behavior) = OUTPUT_ONLY];
// The operation type.
NodeGroupOperationType operation_type = 5;
// Output only. Short description of operation.
string description = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Labels associated with the operation.
map<string, string> labels = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Errors encountered during operation execution.
repeated string warnings = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
}

Loading…
Cancel
Save