google-cloud-dataproc-v1 0.3.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.md +188 -190
  3. data/README.md +66 -2
  4. data/lib/google/cloud/dataproc/v1.rb +3 -0
  5. data/lib/google/cloud/dataproc/v1/autoscaling_policies_services_pb.rb +5 -5
  6. data/lib/google/cloud/dataproc/v1/autoscaling_policy_service/client.rb +26 -20
  7. data/lib/google/cloud/dataproc/v1/autoscaling_policy_service/paths.rb +1 -1
  8. data/lib/google/cloud/dataproc/v1/cluster_controller.rb +1 -0
  9. data/lib/google/cloud/dataproc/v1/cluster_controller/client.rb +251 -47
  10. data/lib/google/cloud/dataproc/v1/cluster_controller/operations.rb +96 -11
  11. data/lib/google/cloud/dataproc/v1/cluster_controller/paths.rb +71 -0
  12. data/lib/google/cloud/dataproc/v1/clusters_pb.rb +60 -0
  13. data/lib/google/cloud/dataproc/v1/clusters_services_pb.rb +10 -6
  14. data/lib/google/cloud/dataproc/v1/job_controller/client.rb +57 -49
  15. data/lib/google/cloud/dataproc/v1/job_controller/operations.rb +96 -11
  16. data/lib/google/cloud/dataproc/v1/jobs_pb.rb +2 -0
  17. data/lib/google/cloud/dataproc/v1/jobs_services_pb.rb +7 -7
  18. data/lib/google/cloud/dataproc/v1/shared_pb.rb +7 -0
  19. data/lib/google/cloud/dataproc/v1/version.rb +1 -1
  20. data/lib/google/cloud/dataproc/v1/workflow_template_service/client.rb +43 -36
  21. data/lib/google/cloud/dataproc/v1/workflow_template_service/operations.rb +96 -11
  22. data/lib/google/cloud/dataproc/v1/workflow_template_service/paths.rb +39 -1
  23. data/lib/google/cloud/dataproc/v1/workflow_templates_pb.rb +5 -0
  24. data/lib/google/cloud/dataproc/v1/workflow_templates_services_pb.rb +9 -8
  25. data/proto_docs/google/api/field_behavior.rb +6 -0
  26. data/proto_docs/google/api/resource.rb +50 -14
  27. data/proto_docs/google/cloud/dataproc/v1/clusters.rb +240 -16
  28. data/proto_docs/google/cloud/dataproc/v1/jobs.rb +29 -10
  29. data/proto_docs/google/cloud/dataproc/v1/shared.rb +24 -1
  30. data/proto_docs/google/cloud/dataproc/v1/workflow_templates.rb +34 -7
  31. data/proto_docs/google/longrunning/operations.rb +17 -3
  32. data/proto_docs/google/protobuf/any.rb +5 -2
  33. data/proto_docs/google/protobuf/timestamp.rb +10 -1
  34. metadata +13 -9
@@ -24,6 +24,25 @@ module Google
24
24
  module WorkflowTemplateService
25
25
  # Path helper methods for the WorkflowTemplateService API.
26
26
  module Paths
27
+ ##
28
+ # Create a fully-qualified Cluster resource string.
29
+ #
30
+ # The resource will be in the following format:
31
+ #
32
+ # `projects/{project}/locations/{location}/clusters/{cluster}`
33
+ #
34
+ # @param project [String]
35
+ # @param location [String]
36
+ # @param cluster [String]
37
+ #
38
+ # @return [::String]
39
+ def cluster_path project:, location:, cluster:
40
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
41
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
42
+
43
+ "projects/#{project}/locations/#{location}/clusters/#{cluster}"
44
+ end
45
+
27
46
  ##
28
47
  # Create a fully-qualified Location resource string.
29
48
  #
@@ -58,6 +77,25 @@ module Google
58
77
  "projects/#{project}/regions/#{region}"
59
78
  end
60
79
 
80
+ ##
81
+ # Create a fully-qualified Service resource string.
82
+ #
83
+ # The resource will be in the following format:
84
+ #
85
+ # `projects/{project}/locations/{location}/services/{service}`
86
+ #
87
+ # @param project [String]
88
+ # @param location [String]
89
+ # @param service [String]
90
+ #
91
+ # @return [::String]
92
+ def service_path project:, location:, service:
93
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
94
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
95
+
96
+ "projects/#{project}/locations/#{location}/services/#{service}"
97
+ end
98
+
61
99
  ##
62
100
  # Create a fully-qualified WorkflowTemplate resource string.
63
101
  #
@@ -82,7 +120,7 @@ module Google
82
120
  # @return [::String]
83
121
  def workflow_template_path **args
84
122
  resources = {
85
- "project:region:workflow_template" => (proc do |project:, region:, workflow_template:|
123
+ "project:region:workflow_template" => (proc do |project:, region:, workflow_template:|
86
124
  raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
87
125
  raise ::ArgumentError, "region cannot contain /" if region.to_s.include? "/"
88
126
 
@@ -10,6 +10,7 @@ require 'google/api/resource_pb'
10
10
  require 'google/cloud/dataproc/v1/clusters_pb'
11
11
  require 'google/cloud/dataproc/v1/jobs_pb'
12
12
  require 'google/longrunning/operations_pb'
13
+ require 'google/protobuf/duration_pb'
13
14
  require 'google/protobuf/empty_pb'
14
15
  require 'google/protobuf/timestamp_pb'
15
16
  Google::Protobuf::DescriptorPool.generated_pool.build do
@@ -24,6 +25,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
24
25
  optional :placement, :message, 7, "google.cloud.dataproc.v1.WorkflowTemplatePlacement"
25
26
  repeated :jobs, :message, 8, "google.cloud.dataproc.v1.OrderedJob"
26
27
  repeated :parameters, :message, 9, "google.cloud.dataproc.v1.TemplateParameter"
28
+ optional :dag_timeout, :message, 10, "google.protobuf.Duration"
27
29
  end
28
30
  add_message "google.cloud.dataproc.v1.WorkflowTemplatePlacement" do
29
31
  oneof :placement do
@@ -86,6 +88,9 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
86
88
  optional :start_time, :message, 9, "google.protobuf.Timestamp"
87
89
  optional :end_time, :message, 10, "google.protobuf.Timestamp"
88
90
  optional :cluster_uuid, :string, 11
91
+ optional :dag_timeout, :message, 12, "google.protobuf.Duration"
92
+ optional :dag_start_time, :message, 13, "google.protobuf.Timestamp"
93
+ optional :dag_end_time, :message, 14, "google.protobuf.Timestamp"
89
94
  end
90
95
  add_enum "google.cloud.dataproc.v1.WorkflowMetadata.State" do
91
96
  value :UNKNOWN, 0
@@ -35,12 +35,12 @@ module Google
35
35
  self.service_name = 'google.cloud.dataproc.v1.WorkflowTemplateService'
36
36
 
37
37
  # Creates new workflow template.
38
- rpc :CreateWorkflowTemplate, Google::Cloud::Dataproc::V1::CreateWorkflowTemplateRequest, Google::Cloud::Dataproc::V1::WorkflowTemplate
38
+ rpc :CreateWorkflowTemplate, ::Google::Cloud::Dataproc::V1::CreateWorkflowTemplateRequest, ::Google::Cloud::Dataproc::V1::WorkflowTemplate
39
39
  # Retrieves the latest workflow template.
40
40
  #
41
41
  # Can retrieve previously instantiated template by specifying optional
42
42
  # version parameter.
43
- rpc :GetWorkflowTemplate, Google::Cloud::Dataproc::V1::GetWorkflowTemplateRequest, Google::Cloud::Dataproc::V1::WorkflowTemplate
43
+ rpc :GetWorkflowTemplate, ::Google::Cloud::Dataproc::V1::GetWorkflowTemplateRequest, ::Google::Cloud::Dataproc::V1::WorkflowTemplate
44
44
  # Instantiates a template and begins execution.
45
45
  #
46
46
  # The returned Operation can be used to track execution of
@@ -61,11 +61,12 @@ module Google
61
61
  # On successful completion,
62
62
  # [Operation.response][google.longrunning.Operation.response] will be
63
63
  # [Empty][google.protobuf.Empty].
64
- rpc :InstantiateWorkflowTemplate, Google::Cloud::Dataproc::V1::InstantiateWorkflowTemplateRequest, Google::Longrunning::Operation
64
+ rpc :InstantiateWorkflowTemplate, ::Google::Cloud::Dataproc::V1::InstantiateWorkflowTemplateRequest, ::Google::Longrunning::Operation
65
65
  # Instantiates a template and begins execution.
66
66
  #
67
67
  # This method is equivalent to executing the sequence
68
- # [CreateWorkflowTemplate][google.cloud.dataproc.v1.WorkflowTemplateService.CreateWorkflowTemplate], [InstantiateWorkflowTemplate][google.cloud.dataproc.v1.WorkflowTemplateService.InstantiateWorkflowTemplate],
68
+ # [CreateWorkflowTemplate][google.cloud.dataproc.v1.WorkflowTemplateService.CreateWorkflowTemplate],
69
+ # [InstantiateWorkflowTemplate][google.cloud.dataproc.v1.WorkflowTemplateService.InstantiateWorkflowTemplate],
69
70
  # [DeleteWorkflowTemplate][google.cloud.dataproc.v1.WorkflowTemplateService.DeleteWorkflowTemplate].
70
71
  #
71
72
  # The returned Operation can be used to track execution of
@@ -86,14 +87,14 @@ module Google
86
87
  # On successful completion,
87
88
  # [Operation.response][google.longrunning.Operation.response] will be
88
89
  # [Empty][google.protobuf.Empty].
89
- rpc :InstantiateInlineWorkflowTemplate, Google::Cloud::Dataproc::V1::InstantiateInlineWorkflowTemplateRequest, Google::Longrunning::Operation
90
+ rpc :InstantiateInlineWorkflowTemplate, ::Google::Cloud::Dataproc::V1::InstantiateInlineWorkflowTemplateRequest, ::Google::Longrunning::Operation
90
91
  # Updates (replaces) workflow template. The updated template
91
92
  # must contain version that matches the current server version.
92
- rpc :UpdateWorkflowTemplate, Google::Cloud::Dataproc::V1::UpdateWorkflowTemplateRequest, Google::Cloud::Dataproc::V1::WorkflowTemplate
93
+ rpc :UpdateWorkflowTemplate, ::Google::Cloud::Dataproc::V1::UpdateWorkflowTemplateRequest, ::Google::Cloud::Dataproc::V1::WorkflowTemplate
93
94
  # Lists workflows that match the specified filter in the request.
94
- rpc :ListWorkflowTemplates, Google::Cloud::Dataproc::V1::ListWorkflowTemplatesRequest, Google::Cloud::Dataproc::V1::ListWorkflowTemplatesResponse
95
+ rpc :ListWorkflowTemplates, ::Google::Cloud::Dataproc::V1::ListWorkflowTemplatesRequest, ::Google::Cloud::Dataproc::V1::ListWorkflowTemplatesResponse
95
96
  # Deletes a workflow template. It does not cancel in-progress workflows.
96
- rpc :DeleteWorkflowTemplate, Google::Cloud::Dataproc::V1::DeleteWorkflowTemplateRequest, Google::Protobuf::Empty
97
+ rpc :DeleteWorkflowTemplate, ::Google::Cloud::Dataproc::V1::DeleteWorkflowTemplateRequest, ::Google::Protobuf::Empty
97
98
  end
98
99
 
99
100
  Stub = Service.rpc_stub_class
@@ -54,6 +54,12 @@ module Google
54
54
  # This indicates that the field may be set once in a request to create a
55
55
  # resource, but may not be changed thereafter.
56
56
  IMMUTABLE = 5
57
+
58
+ # Denotes that a (repeated) field is an unordered list.
59
+ # This indicates that the service may provide the elements of the list
60
+ # in any arbitrary order, rather than the order the user originally
61
+ # provided. Additionally, the list's order may or may not be stable.
62
+ UNORDERED_LIST = 6
57
63
  end
58
64
  end
59
65
  end
@@ -43,12 +43,12 @@ module Google
43
43
  #
44
44
  # The ResourceDescriptor Yaml config will look like:
45
45
  #
46
- # resources:
47
- # - type: "pubsub.googleapis.com/Topic"
48
- # name_descriptor:
49
- # - pattern: "projects/\\{project}/topics/\\{topic}"
50
- # parent_type: "cloudresourcemanager.googleapis.com/Project"
51
- # parent_name_extractor: "projects/\\{project}"
46
+ # resources:
47
+ # - type: "pubsub.googleapis.com/Topic"
48
+ # name_descriptor:
49
+ # - pattern: "projects/{project}/topics/{topic}"
50
+ # parent_type: "cloudresourcemanager.googleapis.com/Project"
51
+ # parent_name_extractor: "projects/{project}"
52
52
  #
53
53
  # Sometimes, resources have multiple patterns, typically because they can
54
54
  # live under multiple parents.
@@ -183,15 +183,24 @@ module Google
183
183
  # }
184
184
  # @!attribute [rw] plural
185
185
  # @return [::String]
186
- # The plural name used in the resource name, such as 'projects' for
187
- # the name of 'projects/\\{project}'. It is the same concept of the `plural`
188
- # field in k8s CRD spec
186
+ # The plural name used in the resource name and permission names, such as
187
+ # 'projects' for the resource name of 'projects/\\{project}' and the permission
188
+ # name of 'cloudresourcemanager.googleapis.com/projects.get'. It is the same
189
+ # concept of the `plural` field in k8s CRD spec
189
190
  # https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/
191
+ #
192
+ # Note: The plural form is required even for singleton resources. See
193
+ # https://aip.dev/156
190
194
  # @!attribute [rw] singular
191
195
  # @return [::String]
192
196
  # The same concept of the `singular` field in k8s CRD spec
193
197
  # https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/
194
198
  # Such as "project" for the `resourcemanager.googleapis.com/Project` type.
199
+ # @!attribute [rw] style
200
+ # @return [::Array<::Google::Api::ResourceDescriptor::Style>]
201
+ # Style flag(s) for this resource.
202
+ # These indicate that a resource is expected to conform to a given
203
+ # style. See the specific style flags for additional information.
195
204
  class ResourceDescriptor
196
205
  include ::Google::Protobuf::MessageExts
197
206
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -211,6 +220,22 @@ module Google
211
220
  # that from being necessary once there are multiple patterns.)
212
221
  FUTURE_MULTI_PATTERN = 2
213
222
  end
223
+
224
+ # A flag representing a specific style that a resource claims to conform to.
225
+ module Style
226
+ # The unspecified value. Do not use.
227
+ STYLE_UNSPECIFIED = 0
228
+
229
+ # This resource is intended to be "declarative-friendly".
230
+ #
231
+ # Declarative-friendly resources must be more strictly consistent, and
232
+ # setting this to true communicates to tools that this resource should
233
+ # adhere to declarative-friendly expectations.
234
+ #
235
+ # Note: This is used by the API linter (linter.aip.dev) to enable
236
+ # additional checks.
237
+ DECLARATIVE_FRIENDLY = 1
238
+ end
214
239
  end
215
240
 
216
241
  # Defines a proto annotation that describes a string field that refers to
@@ -226,6 +251,17 @@ module Google
226
251
  # type: "pubsub.googleapis.com/Topic"
227
252
  # }];
228
253
  # }
254
+ #
255
+ # Occasionally, a field may reference an arbitrary resource. In this case,
256
+ # APIs use the special value * in their resource reference.
257
+ #
258
+ # Example:
259
+ #
260
+ # message GetIamPolicyRequest {
261
+ # string resource = 2 [(google.api.resource_reference) = {
262
+ # type: "*"
263
+ # }];
264
+ # }
229
265
  # @!attribute [rw] child_type
230
266
  # @return [::String]
231
267
  # The resource type of a child collection that the annotated field
@@ -234,11 +270,11 @@ module Google
234
270
  #
235
271
  # Example:
236
272
  #
237
- # message ListLogEntriesRequest {
238
- # string parent = 1 [(google.api.resource_reference) = {
239
- # child_type: "logging.googleapis.com/LogEntry"
240
- # };
241
- # }
273
+ # message ListLogEntriesRequest {
274
+ # string parent = 1 [(google.api.resource_reference) = {
275
+ # child_type: "logging.googleapis.com/LogEntry"
276
+ # };
277
+ # }
242
278
  class ResourceReference
243
279
  include ::Google::Protobuf::MessageExts
244
280
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -85,6 +85,8 @@ module Google
85
85
  # and manage this project-level, per-location bucket (see
86
86
  # [Dataproc staging
87
87
  # bucket](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)).
88
+ # **This field requires a Cloud Storage bucket name, not a URI to a Cloud
89
+ # Storage bucket.**
88
90
  # @!attribute [rw] temp_bucket
89
91
  # @return [::String]
90
92
  # Optional. A Cloud Storage bucket used to store ephemeral cluster and jobs data,
@@ -96,6 +98,8 @@ module Google
96
98
  # and manage this project-level, per-location bucket. The default bucket has
97
99
  # a TTL of 90 days, but you can use any TTL (or none) if you specify a
98
100
  # bucket.
101
+ # **This field requires a Cloud Storage bucket name, not a URI to a Cloud
102
+ # Storage bucket.**
99
103
  # @!attribute [rw] gce_cluster_config
100
104
  # @return [::Google::Cloud::Dataproc::V1::GceClusterConfig]
101
105
  # Optional. The shared Compute Engine config settings for
@@ -146,11 +150,42 @@ module Google
146
150
  # @!attribute [rw] endpoint_config
147
151
  # @return [::Google::Cloud::Dataproc::V1::EndpointConfig]
148
152
  # Optional. Port/endpoint configuration for this cluster
153
+ # @!attribute [rw] metastore_config
154
+ # @return [::Google::Cloud::Dataproc::V1::MetastoreConfig]
155
+ # Optional. Metastore configuration.
156
+ # @!attribute [rw] gke_cluster_config
157
+ # @return [::Google::Cloud::Dataproc::V1::GkeClusterConfig]
158
+ # Optional. BETA. The Kubernetes Engine config for Dataproc clusters deployed to
159
+ # Kubernetes. Setting this is considered mutually exclusive with Compute
160
+ # Engine-based options such as `gce_cluster_config`, `master_config`,
161
+ # `worker_config`, `secondary_worker_config`, and `autoscaling_config`.
149
162
  class ClusterConfig
150
163
  include ::Google::Protobuf::MessageExts
151
164
  extend ::Google::Protobuf::MessageExts::ClassMethods
152
165
  end
153
166
 
167
+ # The GKE config for this cluster.
168
+ # @!attribute [rw] namespaced_gke_deployment_target
169
+ # @return [::Google::Cloud::Dataproc::V1::GkeClusterConfig::NamespacedGkeDeploymentTarget]
170
+ # Optional. A target for the deployment.
171
+ class GkeClusterConfig
172
+ include ::Google::Protobuf::MessageExts
173
+ extend ::Google::Protobuf::MessageExts::ClassMethods
174
+
175
+ # A full, namespace-isolated deployment target for an existing GKE cluster.
176
+ # @!attribute [rw] target_gke_cluster
177
+ # @return [::String]
178
+ # Optional. The target GKE cluster to deploy to.
179
+ # Format: 'projects/\\{project}/locations/\\{location}/clusters/\\{cluster_id}'
180
+ # @!attribute [rw] cluster_namespace
181
+ # @return [::String]
182
+ # Optional. A namespace within the GKE cluster to deploy into.
183
+ class NamespacedGkeDeploymentTarget
184
+ include ::Google::Protobuf::MessageExts
185
+ extend ::Google::Protobuf::MessageExts::ClassMethods
186
+ end
187
+ end
188
+
154
189
  # Endpoint config for this cluster
155
190
  # @!attribute [r] http_ports
156
191
  # @return [::Google::Protobuf::Map{::String => ::String}]
@@ -248,6 +283,9 @@ module Google
248
283
  # instance. This `internal_ip_only` restriction can only be enabled for
249
284
  # subnetwork enabled networks, and all off-cluster dependencies must be
250
285
  # configured to be accessible without external IP addresses.
286
+ # @!attribute [rw] private_ipv6_google_access
287
+ # @return [::Google::Cloud::Dataproc::V1::GceClusterConfig::PrivateIpv6GoogleAccess]
288
+ # Optional. The type of IPv6 access for a cluster.
251
289
  # @!attribute [rw] service_account
252
290
  # @return [::String]
253
291
  # Optional. The [Dataproc service
@@ -289,6 +327,13 @@ module Google
289
327
  # @!attribute [rw] reservation_affinity
290
328
  # @return [::Google::Cloud::Dataproc::V1::ReservationAffinity]
291
329
  # Optional. Reservation Affinity for consuming Zonal reservation.
330
+ # @!attribute [rw] node_group_affinity
331
+ # @return [::Google::Cloud::Dataproc::V1::NodeGroupAffinity]
332
+ # Optional. Node Group Affinity for sole-tenant clusters.
333
+ # @!attribute [rw] shielded_instance_config
334
+ # @return [::Google::Cloud::Dataproc::V1::ShieldedInstanceConfig]
335
+ # Optional. Shielded Instance Config for clusters using [Compute Engine Shielded
336
+ # VMs](https://cloud.google.com/security/shielded-cloud/shielded-vm).
292
337
  class GceClusterConfig
293
338
  include ::Google::Protobuf::MessageExts
294
339
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -301,6 +346,64 @@ module Google
301
346
  include ::Google::Protobuf::MessageExts
302
347
  extend ::Google::Protobuf::MessageExts::ClassMethods
303
348
  end
349
+
350
+ # `PrivateIpv6GoogleAccess` controls whether and how Dataproc cluster nodes
351
+ # can communicate with Google Services through gRPC over IPv6.
352
+ # These values are directly mapped to corresponding values in the
353
+ # [Compute Engine Instance
354
+ # fields](https://cloud.google.com/compute/docs/reference/rest/v1/instances).
355
+ module PrivateIpv6GoogleAccess
356
+ # If unspecified, Compute Engine default behavior will apply, which
357
+ # is the same as {::Google::Cloud::Dataproc::V1::GceClusterConfig::PrivateIpv6GoogleAccess::INHERIT_FROM_SUBNETWORK INHERIT_FROM_SUBNETWORK}.
358
+ PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED = 0
359
+
360
+ # Private access to and from Google Services configuration
361
+ # inherited from the subnetwork configuration. This is the
362
+ # default Compute Engine behavior.
363
+ INHERIT_FROM_SUBNETWORK = 1
364
+
365
+ # Enables outbound private IPv6 access to Google Services from the Dataproc
366
+ # cluster.
367
+ OUTBOUND = 2
368
+
369
+ # Enables bidirectional private IPv6 access between Google Services and the
370
+ # Dataproc cluster.
371
+ BIDIRECTIONAL = 3
372
+ end
373
+ end
374
+
375
+ # Node Group Affinity for clusters using sole-tenant node groups.
376
+ # @!attribute [rw] node_group_uri
377
+ # @return [::String]
378
+ # Required. The URI of a
379
+ # sole-tenant [node group
380
+ # resource](https://cloud.google.com/compute/docs/reference/rest/v1/nodeGroups)
381
+ # that the cluster will be created on.
382
+ #
383
+ # A full URL, partial URI, or node group name are valid. Examples:
384
+ #
385
+ # * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1`
386
+ # * `projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1`
387
+ # * `node-group-1`
388
+ class NodeGroupAffinity
389
+ include ::Google::Protobuf::MessageExts
390
+ extend ::Google::Protobuf::MessageExts::ClassMethods
391
+ end
392
+
393
+ # Shielded Instance Config for clusters using [Compute Engine Shielded
394
+ # VMs](https://cloud.google.com/security/shielded-cloud/shielded-vm).
395
+ # @!attribute [rw] enable_secure_boot
396
+ # @return [::Boolean]
397
+ # Optional. Defines whether instances have Secure Boot enabled.
398
+ # @!attribute [rw] enable_vtpm
399
+ # @return [::Boolean]
400
+ # Optional. Defines whether instances have the vTPM enabled.
401
+ # @!attribute [rw] enable_integrity_monitoring
402
+ # @return [::Boolean]
403
+ # Optional. Defines whether instances have integrity monitoring enabled.
404
+ class ShieldedInstanceConfig
405
+ include ::Google::Protobuf::MessageExts
406
+ extend ::Google::Protobuf::MessageExts::ClassMethods
304
407
  end
305
408
 
306
409
  # The config settings for Compute Engine resources in
@@ -308,7 +411,11 @@ module Google
308
411
  # @!attribute [rw] num_instances
309
412
  # @return [::Integer]
310
413
  # Optional. The number of VM instances in the instance group.
311
- # For master instance groups, must be set to 1.
414
+ # For [HA
415
+ # cluster](/dataproc/docs/concepts/configuring-clusters/high-availability)
416
+ # [master_config](#FIELDS.master_config) groups, **must be set to 3**.
417
+ # For standard cluster [master_config](#FIELDS.master_config) groups,
418
+ # **must be set to 1**.
312
419
  # @!attribute [r] instance_names
313
420
  # @return [::Array<::String>]
314
421
  # Output only. The list of instance names. Dataproc derives the names
@@ -450,8 +557,10 @@ module Google
450
557
  # @!attribute [rw] boot_disk_type
451
558
  # @return [::String]
452
559
  # Optional. Type of the boot disk (default is "pd-standard").
453
- # Valid values: "pd-ssd" (Persistent Disk Solid State Drive) or
454
- # "pd-standard" (Persistent Disk Hard Disk Drive).
560
+ # Valid values: "pd-balanced" (Persistent Disk Balanced Solid State Drive),
561
+ # "pd-ssd" (Persistent Disk Solid State Drive),
562
+ # or "pd-standard" (Persistent Disk Hard Disk Drive).
563
+ # See [Disk types](https://cloud.google.com/compute/docs/disks#disk-types).
455
564
  # @!attribute [rw] boot_disk_size_gb
456
565
  # @return [::Integer]
457
566
  # Optional. Size in GB of the boot disk (default is 500GB).
@@ -525,6 +634,15 @@ module Google
525
634
 
526
635
  # The cluster is being updated. It continues to accept and process jobs.
527
636
  UPDATING = 5
637
+
638
+ # The cluster is being stopped. It cannot be used.
639
+ STOPPING = 6
640
+
641
+ # The cluster is currently stopped. It is not ready for use.
642
+ STOPPED = 7
643
+
644
+ # The cluster is being started. It is not ready for use.
645
+ STARTING = 8
528
646
  end
529
647
 
530
648
  # The cluster substate.
@@ -547,10 +665,14 @@ module Google
547
665
  end
548
666
  end
549
667
 
550
- # Security related configuration, including Kerberos.
668
+ # Security related configuration, including encryption, Kerberos, etc.
551
669
  # @!attribute [rw] kerberos_config
552
670
  # @return [::Google::Cloud::Dataproc::V1::KerberosConfig]
553
- # Kerberos related configuration.
671
+ # Optional. Kerberos related configuration.
672
+ # @!attribute [rw] identity_config
673
+ # @return [::Google::Cloud::Dataproc::V1::IdentityConfig]
674
+ # Optional. Identity related configuration, including service account based
675
+ # secure multi-tenancy user mappings.
554
676
  class SecurityConfig
555
677
  include ::Google::Protobuf::MessageExts
556
678
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -563,11 +685,11 @@ module Google
563
685
  # this field to true to enable Kerberos on a cluster.
564
686
  # @!attribute [rw] root_principal_password_uri
565
687
  # @return [::String]
566
- # Required. The Cloud Storage URI of a KMS encrypted file containing the root
688
+ # Optional. The Cloud Storage URI of a KMS encrypted file containing the root
567
689
  # principal password.
568
690
  # @!attribute [rw] kms_key_uri
569
691
  # @return [::String]
570
- # Required. The uri of the KMS key used to encrypt various sensitive
692
+ # Optional. The uri of the KMS key used to encrypt various sensitive
571
693
  # files.
572
694
  # @!attribute [rw] keystore_uri
573
695
  # @return [::String]
@@ -629,6 +751,25 @@ module Google
629
751
  extend ::Google::Protobuf::MessageExts::ClassMethods
630
752
  end
631
753
 
754
+ # Identity related configuration, including service account based
755
+ # secure multi-tenancy user mappings.
756
+ # @!attribute [rw] user_service_account_mapping
757
+ # @return [::Google::Protobuf::Map{::String => ::String}]
758
+ # Required. Map of user to service account.
759
+ class IdentityConfig
760
+ include ::Google::Protobuf::MessageExts
761
+ extend ::Google::Protobuf::MessageExts::ClassMethods
762
+
763
+ # @!attribute [rw] key
764
+ # @return [::String]
765
+ # @!attribute [rw] value
766
+ # @return [::String]
767
+ class UserServiceAccountMappingEntry
768
+ include ::Google::Protobuf::MessageExts
769
+ extend ::Google::Protobuf::MessageExts::ClassMethods
770
+ end
771
+ end
772
+
632
773
  # Specifies the selection and config of software inside the cluster.
633
774
  # @!attribute [rw] image_version
634
775
  # @return [::String]
@@ -681,9 +822,9 @@ module Google
681
822
  # @return [::Google::Protobuf::Duration]
682
823
  # Optional. The duration to keep the cluster alive while idling (when no jobs
683
824
  # are running). Passing this threshold will cause the cluster to be
684
- # deleted. Minimum value is 10 minutes; maximum value is 14 days (see JSON
825
+ # deleted. Minimum value is 5 minutes; maximum value is 14 days (see JSON
685
826
  # representation of
686
- # [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json).
827
+ # [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)).
687
828
  # @!attribute [rw] auto_delete_time
688
829
  # @return [::Google::Protobuf::Timestamp]
689
830
  # Optional. The time when cluster will be auto-deleted (see JSON representation of
@@ -705,6 +846,19 @@ module Google
705
846
  extend ::Google::Protobuf::MessageExts::ClassMethods
706
847
  end
707
848
 
849
+ # Specifies a Metastore configuration.
850
+ # @!attribute [rw] dataproc_metastore_service
851
+ # @return [::String]
852
+ # Required. Resource name of an existing Dataproc Metastore service.
853
+ #
854
+ # Example:
855
+ #
856
+ # * `projects/[project_id]/locations/[dataproc_region]/services/[service-name]`
857
+ class MetastoreConfig
858
+ include ::Google::Protobuf::MessageExts
859
+ extend ::Google::Protobuf::MessageExts::ClassMethods
860
+ end
861
+
708
862
  # Contains cluster daemon metrics, such as HDFS and YARN stats.
709
863
  #
710
864
  # **Beta Feature**: This report is available for testing purposes only. It may
@@ -751,9 +905,9 @@ module Google
751
905
  # Required. The cluster to create.
752
906
  # @!attribute [rw] request_id
753
907
  # @return [::String]
754
- # Optional. A unique id used to identify the request. If the server
755
- # receives two {::Google::Cloud::Dataproc::V1::CreateClusterRequest CreateClusterRequest} requests with the same
756
- # id, then the second request will be ignored and the
908
+ # Optional. A unique id used to identify the request. If the server receives two
909
+ # [CreateClusterRequest](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.CreateClusterRequest)s
910
+ # with the same id, then the second request will be ignored and the
757
911
  # first {::Google::Longrunning::Operation google.longrunning.Operation} created and stored in the backend
758
912
  # is returned.
759
913
  #
@@ -848,8 +1002,9 @@ module Google
848
1002
  # @!attribute [rw] request_id
849
1003
  # @return [::String]
850
1004
  # Optional. A unique id used to identify the request. If the server
851
- # receives two {::Google::Cloud::Dataproc::V1::UpdateClusterRequest UpdateClusterRequest} requests with the same
852
- # id, then the second request will be ignored and the
1005
+ # receives two
1006
+ # [UpdateClusterRequest](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.UpdateClusterRequest)s
1007
+ # with the same id, then the second request will be ignored and the
853
1008
  # first {::Google::Longrunning::Operation google.longrunning.Operation} created and stored in the
854
1009
  # backend is returned.
855
1010
  #
@@ -863,6 +1018,74 @@ module Google
863
1018
  extend ::Google::Protobuf::MessageExts::ClassMethods
864
1019
  end
865
1020
 
1021
+ # A request to stop a cluster.
1022
+ # @!attribute [rw] project_id
1023
+ # @return [::String]
1024
+ # Required. The ID of the Google Cloud Platform project the
1025
+ # cluster belongs to.
1026
+ # @!attribute [rw] region
1027
+ # @return [::String]
1028
+ # Required. The Dataproc region in which to handle the request.
1029
+ # @!attribute [rw] cluster_name
1030
+ # @return [::String]
1031
+ # Required. The cluster name.
1032
+ # @!attribute [rw] cluster_uuid
1033
+ # @return [::String]
1034
+ # Optional. Specifying the `cluster_uuid` means the RPC will fail
1035
+ # (with error NOT_FOUND) if a cluster with the specified UUID does not exist.
1036
+ # @!attribute [rw] request_id
1037
+ # @return [::String]
1038
+ # Optional. A unique id used to identify the request. If the server
1039
+ # receives two
1040
+ # [StopClusterRequest](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.StopClusterRequest)s
1041
+ # with the same id, then the second request will be ignored and the
1042
+ # first {::Google::Longrunning::Operation google.longrunning.Operation} created and stored in the
1043
+ # backend is returned.
1044
+ #
1045
+ # Recommendation: Set this value to a
1046
+ # [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
1047
+ #
1048
+ # The id must contain only letters (a-z, A-Z), numbers (0-9),
1049
+ # underscores (_), and hyphens (-). The maximum length is 40 characters.
1050
+ class StopClusterRequest
1051
+ include ::Google::Protobuf::MessageExts
1052
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1053
+ end
1054
+
1055
+ # A request to start a cluster.
1056
+ # @!attribute [rw] project_id
1057
+ # @return [::String]
1058
+ # Required. The ID of the Google Cloud Platform project the
1059
+ # cluster belongs to.
1060
+ # @!attribute [rw] region
1061
+ # @return [::String]
1062
+ # Required. The Dataproc region in which to handle the request.
1063
+ # @!attribute [rw] cluster_name
1064
+ # @return [::String]
1065
+ # Required. The cluster name.
1066
+ # @!attribute [rw] cluster_uuid
1067
+ # @return [::String]
1068
+ # Optional. Specifying the `cluster_uuid` means the RPC will fail
1069
+ # (with error NOT_FOUND) if a cluster with the specified UUID does not exist.
1070
+ # @!attribute [rw] request_id
1071
+ # @return [::String]
1072
+ # Optional. A unique id used to identify the request. If the server
1073
+ # receives two
1074
+ # [StartClusterRequest](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.StartClusterRequest)s
1075
+ # with the same id, then the second request will be ignored and the
1076
+ # first {::Google::Longrunning::Operation google.longrunning.Operation} created and stored in the
1077
+ # backend is returned.
1078
+ #
1079
+ # Recommendation: Set this value to a
1080
+ # [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).
1081
+ #
1082
+ # The id must contain only letters (a-z, A-Z), numbers (0-9),
1083
+ # underscores (_), and hyphens (-). The maximum length is 40 characters.
1084
+ class StartClusterRequest
1085
+ include ::Google::Protobuf::MessageExts
1086
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1087
+ end
1088
+
866
1089
  # A request to delete a cluster.
867
1090
  # @!attribute [rw] project_id
868
1091
  # @return [::String]
@@ -881,8 +1104,9 @@ module Google
881
1104
  # @!attribute [rw] request_id
882
1105
  # @return [::String]
883
1106
  # Optional. A unique id used to identify the request. If the server
884
- # receives two {::Google::Cloud::Dataproc::V1::DeleteClusterRequest DeleteClusterRequest} requests with the same
885
- # id, then the second request will be ignored and the
1107
+ # receives two
1108
+ # [DeleteClusterRequest](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.DeleteClusterRequest)s
1109
+ # with the same id, then the second request will be ignored and the
886
1110
  # first {::Google::Longrunning::Operation google.longrunning.Operation} created and stored in the
887
1111
  # backend is returned.
888
1112
  #