chore: add resource_definitions for Cluster and Service

Committer: @miraleung
PiperOrigin-RevId: 347029491
This commit is contained in:
Google APIs 2020-12-11 10:43:21 -08:00 committed by Copybara-Service
parent ffae23ed5e
commit bddb3d7479
1 changed files with 108 additions and 63 deletions

View File

@ -30,17 +30,27 @@ option go_package = "google.golang.org/genproto/googleapis/cloud/dataproc/v1beta
option java_multiple_files = true;
option java_outer_classname = "ClustersProto";
option java_package = "com.google.cloud.dataproc.v1beta2";
option (google.api.resource_definition) = {
type: "container.googleapis.com/Cluster"
pattern: "projects/{project}/locations/{location}/clusters/{cluster}"
};
option (google.api.resource_definition) = {
type: "metastore.googleapis.com/Service"
pattern: "projects/{project}/locations/{location}/services/{service}"
};
// The ClusterControllerService provides methods to manage clusters
// 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.v1beta2#clusteroperationmetadata).
rpc CreateCluster(CreateClusterRequest) returns (google.longrunning.Operation) {
rpc CreateCluster(CreateClusterRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta2/projects/{project_id}/regions/{region}/clusters"
body: "cluster"
@ -55,12 +65,14 @@ 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.v1beta2#clusteroperationmetadata).
rpc UpdateCluster(UpdateClusterRequest) returns (google.longrunning.Operation) {
rpc UpdateCluster(UpdateClusterRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
patch: "/v1beta2/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.v1beta2.ClusterOperationMetadata"
@ -70,7 +82,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.v1beta2#clusteroperationmetadata).
rpc DeleteCluster(DeleteClusterRequest) returns (google.longrunning.Operation) {
rpc DeleteCluster(DeleteClusterRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1beta2/projects/{project_id}/regions/{region}/clusters/{cluster_name}"
};
@ -105,7 +118,8 @@ service ClusterController {
// [Operation.response][google.longrunning.Operation.response]
// contains
// [Empty][google.protobuf.Empty].
rpc DiagnoseCluster(DiagnoseClusterRequest) returns (google.longrunning.Operation) {
rpc DiagnoseCluster(DiagnoseClusterRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta2/projects/{project_id}/regions/{region}/clusters/{cluster_name}:diagnose"
body: "*"
@ -145,7 +159,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.
@ -171,38 +186,41 @@ message ClusterConfig {
// bucket](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-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.
// 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.
string temp_bucket = 2 [(google.api.field_behavior) = OPTIONAL];
// 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 master instance in a cluster.
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
// worker instances in a cluster.
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
// additional worker instances in a cluster.
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 software inside the cluster.
SoftwareConfig software_config = 13 [(google.api.field_behavior) = OPTIONAL];
// Optional. The config setting for auto delete cluster schedule.
LifecycleConfig lifecycle_config = 14 [(google.api.field_behavior) = OPTIONAL];
LifecycleConfig lifecycle_config = 14
[(google.api.field_behavior) = OPTIONAL];
// Optional. Commands to execute on each node after config is
// completed. By default, executables are run on master and all worker nodes.
@ -217,14 +235,17 @@ 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 = 16 [(google.api.field_behavior) = OPTIONAL];
AutoscalingConfig autoscaling_config = 16
[(google.api.field_behavior) = OPTIONAL];
// Optional. Port/endpoint configuration for this cluster
EndpointConfig endpoint_config = 17 [(google.api.field_behavior) = OPTIONAL];
@ -232,11 +253,12 @@ message ClusterConfig {
// Optional. Security related configuration.
SecurityConfig security_config = 18 [(google.api.field_behavior) = OPTIONAL];
// Optional. The Kubernetes Engine config for Dataproc clusters deployed to Kubernetes.
// Setting this is considered mutually exclusive with Compute Engine-based
// options such as `gce_cluster_config`, `master_config`, `worker_config`,
// `secondary_worker_config`, and `autoscaling_config`.
GkeClusterConfig gke_cluster_config = 19 [(google.api.field_behavior) = OPTIONAL];
// Optional. The Kubernetes Engine config for Dataproc clusters deployed to
// Kubernetes. Setting this is considered mutually exclusive with Compute
// Engine-based options such as `gce_cluster_config`, `master_config`,
// `worker_config`, `secondary_worker_config`, and `autoscaling_config`.
GkeClusterConfig gke_cluster_config = 19
[(google.api.field_behavior) = OPTIONAL];
}
// The GKE config for this cluster.
@ -257,14 +279,16 @@ message GkeClusterConfig {
}
// Optional. A target for the deployment.
NamespacedGkeDeploymentTarget namespaced_gke_deployment_target = 1 [(google.api.field_behavior) = OPTIONAL];
NamespacedGkeDeploymentTarget namespaced_gke_deployment_target = 1
[(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.
@ -367,7 +391,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)).
@ -379,7 +404,8 @@ 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];
}
// The config settings for Compute Engine resources in
@ -412,7 +438,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.
//
@ -468,11 +495,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];
// Specifies the minimum cpu platform for the Instance Group.
// See [Dataproc -> Minimum CPU
@ -487,7 +516,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
@ -541,27 +571,32 @@ message LifecycleConfig {
// deleted. 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 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];
}
// Security related configuration, including encryption, Kerberos, etc.
@ -572,13 +607,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];
// Required. The Cloud Storage URI of a KMS encrypted file containing the root
// principal password.
string root_principal_password_uri = 2 [(google.api.field_behavior) = REQUIRED];
string root_principal_password_uri = 2
[(google.api.field_behavior) = REQUIRED];
// Required. The uri of the KMS key used to encrypt various sensitive
// files.
@ -619,12 +655,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.
@ -653,7 +691,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.
@ -715,7 +754,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.
@ -782,10 +822,11 @@ message CreateClusterRequest {
Cluster cluster = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. A unique id used to identify the request. If the server
// receives two [CreateClusterRequest][google.cloud.dataproc.v1beta2.CreateClusterRequest] requests 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.
// receives two
// [CreateClusterRequest][google.cloud.dataproc.v1beta2.CreateClusterRequest]
// requests 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.
//
// It is recommended to always set this value to a
// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
@ -819,7 +860,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
@ -881,13 +923,15 @@ message UpdateClusterRequest {
// autoscaling policies</td>
// </tr>
// </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][google.cloud.dataproc.v1beta2.UpdateClusterRequest] requests 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.
// receives two
// [UpdateClusterRequest][google.cloud.dataproc.v1beta2.UpdateClusterRequest]
// requests 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.
//
// It is recommended to always set this value to a
// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
@ -914,10 +958,11 @@ message DeleteClusterRequest {
string cluster_uuid = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. A unique id used to identify the request. If the server
// receives two [DeleteClusterRequest][google.cloud.dataproc.v1beta2.DeleteClusterRequest] requests 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.
// receives two
// [DeleteClusterRequest][google.cloud.dataproc.v1beta2.DeleteClusterRequest]
// requests 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.
//
// It is recommended to always set this value to a
// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).