google-cloud-dataproc-v1 0.2.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (27) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +68 -0
  3. data/lib/google/cloud/dataproc/v1.rb +3 -0
  4. data/lib/google/cloud/dataproc/v1/autoscaling_policies_services_pb.rb +5 -5
  5. data/lib/google/cloud/dataproc/v1/autoscaling_policy_service/client.rb +12 -6
  6. data/lib/google/cloud/dataproc/v1/cluster_controller/client.rb +15 -9
  7. data/lib/google/cloud/dataproc/v1/cluster_controller/operations.rb +90 -5
  8. data/lib/google/cloud/dataproc/v1/clusters_pb.rb +14 -0
  9. data/lib/google/cloud/dataproc/v1/clusters_services_pb.rb +6 -6
  10. data/lib/google/cloud/dataproc/v1/job_controller/client.rb +16 -10
  11. data/lib/google/cloud/dataproc/v1/job_controller/operations.rb +90 -5
  12. data/lib/google/cloud/dataproc/v1/jobs_services_pb.rb +7 -7
  13. data/lib/google/cloud/dataproc/v1/version.rb +1 -1
  14. data/lib/google/cloud/dataproc/v1/workflow_template_service/client.rb +16 -10
  15. data/lib/google/cloud/dataproc/v1/workflow_template_service/operations.rb +90 -5
  16. data/lib/google/cloud/dataproc/v1/workflow_templates_services_pb.rb +7 -7
  17. data/proto_docs/google/api/field_behavior.rb +6 -0
  18. data/proto_docs/google/api/resource.rb +50 -14
  19. data/proto_docs/google/cloud/dataproc/v1/autoscaling_policies.rb +8 -2
  20. data/proto_docs/google/cloud/dataproc/v1/clusters.rb +69 -2
  21. data/proto_docs/google/cloud/dataproc/v1/jobs.rb +14 -13
  22. data/proto_docs/google/cloud/dataproc/v1/shared.rb +1 -1
  23. data/proto_docs/google/cloud/dataproc/v1/workflow_templates.rb +9 -3
  24. data/proto_docs/google/longrunning/operations.rb +17 -3
  25. data/proto_docs/google/protobuf/any.rb +5 -2
  26. data/proto_docs/google/protobuf/timestamp.rb +10 -1
  27. metadata +9 -6
@@ -37,19 +37,19 @@ module Google
37
37
  # Creates a cluster in a project. The returned
38
38
  # [Operation.metadata][google.longrunning.Operation.metadata] will be
39
39
  # [ClusterOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#clusteroperationmetadata).
40
- rpc :CreateCluster, CreateClusterRequest, Google::Longrunning::Operation
40
+ rpc :CreateCluster, ::Google::Cloud::Dataproc::V1::CreateClusterRequest, ::Google::Longrunning::Operation
41
41
  # Updates a cluster in a project. The returned
42
42
  # [Operation.metadata][google.longrunning.Operation.metadata] will be
43
43
  # [ClusterOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#clusteroperationmetadata).
44
- rpc :UpdateCluster, UpdateClusterRequest, Google::Longrunning::Operation
44
+ rpc :UpdateCluster, ::Google::Cloud::Dataproc::V1::UpdateClusterRequest, ::Google::Longrunning::Operation
45
45
  # Deletes a cluster in a project. The returned
46
46
  # [Operation.metadata][google.longrunning.Operation.metadata] will be
47
47
  # [ClusterOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#clusteroperationmetadata).
48
- rpc :DeleteCluster, DeleteClusterRequest, Google::Longrunning::Operation
48
+ rpc :DeleteCluster, ::Google::Cloud::Dataproc::V1::DeleteClusterRequest, ::Google::Longrunning::Operation
49
49
  # Gets the resource representation for a cluster in a project.
50
- rpc :GetCluster, GetClusterRequest, Cluster
50
+ rpc :GetCluster, ::Google::Cloud::Dataproc::V1::GetClusterRequest, ::Google::Cloud::Dataproc::V1::Cluster
51
51
  # Lists all regions/{region}/clusters in a project alphabetically.
52
- rpc :ListClusters, ListClustersRequest, ListClustersResponse
52
+ rpc :ListClusters, ::Google::Cloud::Dataproc::V1::ListClustersRequest, ::Google::Cloud::Dataproc::V1::ListClustersResponse
53
53
  # Gets cluster diagnostic information. The returned
54
54
  # [Operation.metadata][google.longrunning.Operation.metadata] will be
55
55
  # [ClusterOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#clusteroperationmetadata).
@@ -57,7 +57,7 @@ module Google
57
57
  # [Operation.response][google.longrunning.Operation.response]
58
58
  # contains
59
59
  # [DiagnoseClusterResults](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#diagnoseclusterresults).
60
- rpc :DiagnoseCluster, DiagnoseClusterRequest, Google::Longrunning::Operation
60
+ rpc :DiagnoseCluster, ::Google::Cloud::Dataproc::V1::DiagnoseClusterRequest, ::Google::Longrunning::Operation
61
61
  end
62
62
 
63
63
  Stub = Service.rpc_stub_class
@@ -68,7 +68,7 @@ module Google
68
68
  initial_delay: 0.1,
69
69
  max_delay: 60.0,
70
70
  multiplier: 1.3,
71
- retry_codes: ["UNAVAILABLE"]
71
+ retry_codes: [14]
72
72
  }
73
73
 
74
74
  default_config.rpcs.submit_job_as_operation.timeout = 900.0
@@ -76,7 +76,7 @@ module Google
76
76
  initial_delay: 0.1,
77
77
  max_delay: 60.0,
78
78
  multiplier: 1.3,
79
- retry_codes: ["UNAVAILABLE"]
79
+ retry_codes: [14]
80
80
  }
81
81
 
82
82
  default_config.rpcs.get_job.timeout = 900.0
@@ -84,7 +84,7 @@ module Google
84
84
  initial_delay: 0.1,
85
85
  max_delay: 60.0,
86
86
  multiplier: 1.3,
87
- retry_codes: ["DEADLINE_EXCEEDED", "INTERNAL", "UNAVAILABLE"]
87
+ retry_codes: [4, 13, 14]
88
88
  }
89
89
 
90
90
  default_config.rpcs.list_jobs.timeout = 900.0
@@ -92,7 +92,7 @@ module Google
92
92
  initial_delay: 0.1,
93
93
  max_delay: 60.0,
94
94
  multiplier: 1.3,
95
- retry_codes: ["DEADLINE_EXCEEDED", "INTERNAL", "UNAVAILABLE"]
95
+ retry_codes: [4, 13, 14]
96
96
  }
97
97
 
98
98
  default_config.rpcs.update_job.timeout = 900.0
@@ -100,7 +100,7 @@ module Google
100
100
  initial_delay: 0.1,
101
101
  max_delay: 60.0,
102
102
  multiplier: 1.3,
103
- retry_codes: ["UNAVAILABLE"]
103
+ retry_codes: [14]
104
104
  }
105
105
 
106
106
  default_config.rpcs.cancel_job.timeout = 900.0
@@ -108,7 +108,7 @@ module Google
108
108
  initial_delay: 0.1,
109
109
  max_delay: 60.0,
110
110
  multiplier: 1.3,
111
- retry_codes: ["DEADLINE_EXCEEDED", "INTERNAL", "UNAVAILABLE"]
111
+ retry_codes: [4, 13, 14]
112
112
  }
113
113
 
114
114
  default_config.rpcs.delete_job.timeout = 900.0
@@ -116,7 +116,7 @@ module Google
116
116
  initial_delay: 0.1,
117
117
  max_delay: 60.0,
118
118
  multiplier: 1.3,
119
- retry_codes: ["UNAVAILABLE"]
119
+ retry_codes: [14]
120
120
  }
121
121
 
122
122
  default_config
@@ -180,7 +180,13 @@ module Google
180
180
 
181
181
  # Create credentials
182
182
  credentials = @config.credentials
183
- credentials ||= Credentials.default scope: @config.scope
183
+ # Use self-signed JWT if the scope and endpoint are unchanged from default,
184
+ # but only if the default endpoint does not have a region prefix.
185
+ enable_self_signed_jwt = @config.scope == Client.configure.scope &&
186
+ @config.endpoint == Client.configure.endpoint &&
187
+ !@config.endpoint.split(".").first.include?("-")
188
+ credentials ||= Credentials.default scope: @config.scope,
189
+ enable_self_signed_jwt: enable_self_signed_jwt
184
190
  if credentials.is_a?(String) || credentials.is_a?(Hash)
185
191
  credentials = Credentials.new credentials, scope: @config.scope
186
192
  end
@@ -869,7 +875,7 @@ module Google
869
875
 
870
876
  config_attr :endpoint, "dataproc.googleapis.com", ::String
871
877
  config_attr :credentials, nil do |value|
872
- allowed = [::String, ::Hash, ::Proc, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
878
+ allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
873
879
  allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
874
880
  allowed.any? { |klass| klass === value }
875
881
  end
@@ -909,7 +915,7 @@ module Google
909
915
  # Each configuration object is of type `Gapic::Config::Method` and includes
910
916
  # the following configuration fields:
911
917
  #
912
- # * `timeout` (*type:* `Numeric`) - The call timeout in milliseconds
918
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
913
919
  # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers
914
920
  # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
915
921
  # include the following keys:
@@ -103,8 +103,13 @@ module Google
103
103
  # Lists operations that match the specified filter in the request. If the
104
104
  # server doesn't support this method, it returns `UNIMPLEMENTED`.
105
105
  #
106
- # NOTE: the `name` binding below allows API services to override the binding
107
- # to use different resource name schemes, such as `users/*/operations`.
106
+ # NOTE: the `name` binding allows API services to override the binding
107
+ # to use different resource name schemes, such as `users/*/operations`. To
108
+ # override the binding, API services can add a binding such as
109
+ # `"/v1/{name=users/*}/operations"` to their service configuration.
110
+ # For backwards compatibility, the default name includes the operations
111
+ # collection id, however overriding users must ensure the name binding
112
+ # is the parent resource, without the operations collection id.
108
113
  #
109
114
  # @overload list_operations(request, options = nil)
110
115
  # Pass arguments to `list_operations` via a request object, either of type
@@ -122,7 +127,7 @@ module Google
122
127
  # the default parameter values, pass an empty Hash as a request object (see above).
123
128
  #
124
129
  # @param name [::String]
125
- # The name of the operation collection.
130
+ # The name of the operation's parent resource.
126
131
  # @param filter [::String]
127
132
  # The standard list filter.
128
133
  # @param page_size [::Integer]
@@ -390,6 +395,79 @@ module Google
390
395
  raise ::Google::Cloud::Error.from_error(e)
391
396
  end
392
397
 
398
+ ##
399
+ # Waits for the specified long-running operation until it is done or reaches
400
+ # at most a specified timeout, returning the latest state. If the operation
401
+ # is already done, the latest state is immediately returned. If the timeout
402
+ # specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
403
+ # timeout is used. If the server does not support this method, it returns
404
+ # `google.rpc.Code.UNIMPLEMENTED`.
405
+ # Note that this method is on a best-effort basis. It may return the latest
406
+ # state before the specified timeout (including immediately), meaning even an
407
+ # immediate response is no guarantee that the operation is done.
408
+ #
409
+ # @overload wait_operation(request, options = nil)
410
+ # Pass arguments to `wait_operation` via a request object, either of type
411
+ # {::Google::Longrunning::WaitOperationRequest} or an equivalent Hash.
412
+ #
413
+ # @param request [::Google::Longrunning::WaitOperationRequest, ::Hash]
414
+ # A request object representing the call parameters. Required. To specify no
415
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
416
+ # @param options [::Gapic::CallOptions, ::Hash]
417
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
418
+ #
419
+ # @overload wait_operation(name: nil, timeout: nil)
420
+ # Pass arguments to `wait_operation` via keyword arguments. Note that at
421
+ # least one keyword argument is required. To specify no parameters, or to keep all
422
+ # the default parameter values, pass an empty Hash as a request object (see above).
423
+ #
424
+ # @param name [::String]
425
+ # The name of the operation resource to wait on.
426
+ # @param timeout [::Google::Protobuf::Duration, ::Hash]
427
+ # The maximum duration to wait before timing out. If left blank, the wait
428
+ # will be at most the time permitted by the underlying HTTP/RPC protocol.
429
+ # If RPC context deadline is also specified, the shorter one will be used.
430
+ #
431
+ # @yield [response, operation] Access the result along with the RPC operation
432
+ # @yieldparam response [::Gapic::Operation]
433
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
434
+ #
435
+ # @return [::Gapic::Operation]
436
+ #
437
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
438
+ #
439
+ def wait_operation request, options = nil
440
+ raise ::ArgumentError, "request must be provided" if request.nil?
441
+
442
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::WaitOperationRequest
443
+
444
+ # Converts hash and nil to an options object
445
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
446
+
447
+ # Customize the options with defaults
448
+ metadata = @config.rpcs.wait_operation.metadata.to_h
449
+
450
+ # Set x-goog-api-client and x-goog-user-project headers
451
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
452
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
453
+ gapic_version: ::Google::Cloud::Dataproc::V1::VERSION
454
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
455
+
456
+ options.apply_defaults timeout: @config.rpcs.wait_operation.timeout,
457
+ metadata: metadata,
458
+ retry_policy: @config.rpcs.wait_operation.retry_policy
459
+ options.apply_defaults metadata: @config.metadata,
460
+ retry_policy: @config.retry_policy
461
+
462
+ @operations_stub.call_rpc :wait_operation, request, options: options do |response, operation|
463
+ response = ::Gapic::Operation.new response, @operations_client, options: options
464
+ yield response, operation if block_given?
465
+ return response
466
+ end
467
+ rescue ::GRPC::BadStatus => e
468
+ raise ::Google::Cloud::Error.from_error(e)
469
+ end
470
+
393
471
  ##
394
472
  # Configuration class for the Operations API.
395
473
  #
@@ -475,7 +553,7 @@ module Google
475
553
 
476
554
  config_attr :endpoint, "dataproc.googleapis.com", ::String
477
555
  config_attr :credentials, nil do |value|
478
- allowed = [::String, ::Hash, ::Proc, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
556
+ allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
479
557
  allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
480
558
  allowed.any? { |klass| klass === value }
481
559
  end
@@ -515,7 +593,7 @@ module Google
515
593
  # Each configuration object is of type `Gapic::Config::Method` and includes
516
594
  # the following configuration fields:
517
595
  #
518
- # * `timeout` (*type:* `Numeric`) - The call timeout in milliseconds
596
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
519
597
  # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers
520
598
  # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
521
599
  # include the following keys:
@@ -546,6 +624,11 @@ module Google
546
624
  # @return [::Gapic::Config::Method]
547
625
  #
548
626
  attr_reader :cancel_operation
627
+ ##
628
+ # RPC-specific configuration for `wait_operation`
629
+ # @return [::Gapic::Config::Method]
630
+ #
631
+ attr_reader :wait_operation
549
632
 
550
633
  # @private
551
634
  def initialize parent_rpcs = nil
@@ -557,6 +640,8 @@ module Google
557
640
  @delete_operation = ::Gapic::Config::Method.new delete_operation_config
558
641
  cancel_operation_config = parent_rpcs&.cancel_operation if parent_rpcs&.respond_to? :cancel_operation
559
642
  @cancel_operation = ::Gapic::Config::Method.new cancel_operation_config
643
+ wait_operation_config = parent_rpcs&.wait_operation if parent_rpcs&.respond_to? :wait_operation
644
+ @wait_operation = ::Gapic::Config::Method.new wait_operation_config
560
645
 
561
646
  yield self if block_given?
562
647
  end
@@ -34,24 +34,24 @@ module Google
34
34
  self.service_name = 'google.cloud.dataproc.v1.JobController'
35
35
 
36
36
  # Submits a job to a cluster.
37
- rpc :SubmitJob, SubmitJobRequest, Job
37
+ rpc :SubmitJob, ::Google::Cloud::Dataproc::V1::SubmitJobRequest, ::Google::Cloud::Dataproc::V1::Job
38
38
  # Submits job to a cluster.
39
- rpc :SubmitJobAsOperation, SubmitJobRequest, Google::Longrunning::Operation
39
+ rpc :SubmitJobAsOperation, ::Google::Cloud::Dataproc::V1::SubmitJobRequest, ::Google::Longrunning::Operation
40
40
  # Gets the resource representation for a job in a project.
41
- rpc :GetJob, GetJobRequest, Job
41
+ rpc :GetJob, ::Google::Cloud::Dataproc::V1::GetJobRequest, ::Google::Cloud::Dataproc::V1::Job
42
42
  # Lists regions/{region}/jobs in a project.
43
- rpc :ListJobs, ListJobsRequest, ListJobsResponse
43
+ rpc :ListJobs, ::Google::Cloud::Dataproc::V1::ListJobsRequest, ::Google::Cloud::Dataproc::V1::ListJobsResponse
44
44
  # Updates a job in a project.
45
- rpc :UpdateJob, UpdateJobRequest, Job
45
+ rpc :UpdateJob, ::Google::Cloud::Dataproc::V1::UpdateJobRequest, ::Google::Cloud::Dataproc::V1::Job
46
46
  # Starts a job cancellation request. To access the job resource
47
47
  # after cancellation, call
48
48
  # [regions/{region}/jobs.list](https://cloud.google.com/dataproc/docs/reference/rest/v1/projects.regions.jobs/list)
49
49
  # or
50
50
  # [regions/{region}/jobs.get](https://cloud.google.com/dataproc/docs/reference/rest/v1/projects.regions.jobs/get).
51
- rpc :CancelJob, CancelJobRequest, Job
51
+ rpc :CancelJob, ::Google::Cloud::Dataproc::V1::CancelJobRequest, ::Google::Cloud::Dataproc::V1::Job
52
52
  # Deletes the job from the project. If the job is active, the delete fails,
53
53
  # and the response returns `FAILED_PRECONDITION`.
54
- rpc :DeleteJob, DeleteJobRequest, Google::Protobuf::Empty
54
+ rpc :DeleteJob, ::Google::Cloud::Dataproc::V1::DeleteJobRequest, ::Google::Protobuf::Empty
55
55
  end
56
56
 
57
57
  Stub = Service.rpc_stub_class
@@ -21,7 +21,7 @@ module Google
21
21
  module Cloud
22
22
  module Dataproc
23
23
  module V1
24
- VERSION = "0.2.2"
24
+ VERSION = "0.4.0"
25
25
  end
26
26
  end
27
27
  end
@@ -71,7 +71,7 @@ module Google
71
71
  initial_delay: 0.1,
72
72
  max_delay: 60.0,
73
73
  multiplier: 1.3,
74
- retry_codes: ["UNAVAILABLE"]
74
+ retry_codes: [14]
75
75
  }
76
76
 
77
77
  default_config.rpcs.get_workflow_template.timeout = 600.0
@@ -79,7 +79,7 @@ module Google
79
79
  initial_delay: 0.1,
80
80
  max_delay: 60.0,
81
81
  multiplier: 1.3,
82
- retry_codes: ["DEADLINE_EXCEEDED", "INTERNAL", "UNAVAILABLE"]
82
+ retry_codes: [4, 13, 14]
83
83
  }
84
84
 
85
85
  default_config.rpcs.instantiate_workflow_template.timeout = 600.0
@@ -87,7 +87,7 @@ module Google
87
87
  initial_delay: 0.1,
88
88
  max_delay: 60.0,
89
89
  multiplier: 1.3,
90
- retry_codes: ["UNAVAILABLE"]
90
+ retry_codes: [14]
91
91
  }
92
92
 
93
93
  default_config.rpcs.instantiate_inline_workflow_template.timeout = 600.0
@@ -95,7 +95,7 @@ module Google
95
95
  initial_delay: 0.1,
96
96
  max_delay: 60.0,
97
97
  multiplier: 1.3,
98
- retry_codes: ["UNAVAILABLE"]
98
+ retry_codes: [14]
99
99
  }
100
100
 
101
101
  default_config.rpcs.update_workflow_template.timeout = 600.0
@@ -103,7 +103,7 @@ module Google
103
103
  initial_delay: 0.1,
104
104
  max_delay: 60.0,
105
105
  multiplier: 1.3,
106
- retry_codes: ["UNAVAILABLE"]
106
+ retry_codes: [14]
107
107
  }
108
108
 
109
109
  default_config.rpcs.list_workflow_templates.timeout = 600.0
@@ -111,7 +111,7 @@ module Google
111
111
  initial_delay: 0.1,
112
112
  max_delay: 60.0,
113
113
  multiplier: 1.3,
114
- retry_codes: ["DEADLINE_EXCEEDED", "INTERNAL", "UNAVAILABLE"]
114
+ retry_codes: [4, 13, 14]
115
115
  }
116
116
 
117
117
  default_config.rpcs.delete_workflow_template.timeout = 600.0
@@ -119,7 +119,7 @@ module Google
119
119
  initial_delay: 0.1,
120
120
  max_delay: 60.0,
121
121
  multiplier: 1.3,
122
- retry_codes: ["UNAVAILABLE"]
122
+ retry_codes: [14]
123
123
  }
124
124
 
125
125
  default_config
@@ -183,7 +183,13 @@ module Google
183
183
 
184
184
  # Create credentials
185
185
  credentials = @config.credentials
186
- credentials ||= Credentials.default scope: @config.scope
186
+ # Use self-signed JWT if the scope and endpoint are unchanged from default,
187
+ # but only if the default endpoint does not have a region prefix.
188
+ enable_self_signed_jwt = @config.scope == Client.configure.scope &&
189
+ @config.endpoint == Client.configure.endpoint &&
190
+ !@config.endpoint.split(".").first.include?("-")
191
+ credentials ||= Credentials.default scope: @config.scope,
192
+ enable_self_signed_jwt: enable_self_signed_jwt
187
193
  if credentials.is_a?(String) || credentials.is_a?(Hash)
188
194
  credentials = Credentials.new credentials, scope: @config.scope
189
195
  end
@@ -913,7 +919,7 @@ module Google
913
919
 
914
920
  config_attr :endpoint, "dataproc.googleapis.com", ::String
915
921
  config_attr :credentials, nil do |value|
916
- allowed = [::String, ::Hash, ::Proc, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
922
+ allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
917
923
  allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
918
924
  allowed.any? { |klass| klass === value }
919
925
  end
@@ -953,7 +959,7 @@ module Google
953
959
  # Each configuration object is of type `Gapic::Config::Method` and includes
954
960
  # the following configuration fields:
955
961
  #
956
- # * `timeout` (*type:* `Numeric`) - The call timeout in milliseconds
962
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
957
963
  # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers
958
964
  # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
959
965
  # include the following keys:
@@ -103,8 +103,13 @@ module Google
103
103
  # Lists operations that match the specified filter in the request. If the
104
104
  # server doesn't support this method, it returns `UNIMPLEMENTED`.
105
105
  #
106
- # NOTE: the `name` binding below allows API services to override the binding
107
- # to use different resource name schemes, such as `users/*/operations`.
106
+ # NOTE: the `name` binding allows API services to override the binding
107
+ # to use different resource name schemes, such as `users/*/operations`. To
108
+ # override the binding, API services can add a binding such as
109
+ # `"/v1/{name=users/*}/operations"` to their service configuration.
110
+ # For backwards compatibility, the default name includes the operations
111
+ # collection id, however overriding users must ensure the name binding
112
+ # is the parent resource, without the operations collection id.
108
113
  #
109
114
  # @overload list_operations(request, options = nil)
110
115
  # Pass arguments to `list_operations` via a request object, either of type
@@ -122,7 +127,7 @@ module Google
122
127
  # the default parameter values, pass an empty Hash as a request object (see above).
123
128
  #
124
129
  # @param name [::String]
125
- # The name of the operation collection.
130
+ # The name of the operation's parent resource.
126
131
  # @param filter [::String]
127
132
  # The standard list filter.
128
133
  # @param page_size [::Integer]
@@ -390,6 +395,79 @@ module Google
390
395
  raise ::Google::Cloud::Error.from_error(e)
391
396
  end
392
397
 
398
+ ##
399
+ # Waits for the specified long-running operation until it is done or reaches
400
+ # at most a specified timeout, returning the latest state. If the operation
401
+ # is already done, the latest state is immediately returned. If the timeout
402
+ # specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
403
+ # timeout is used. If the server does not support this method, it returns
404
+ # `google.rpc.Code.UNIMPLEMENTED`.
405
+ # Note that this method is on a best-effort basis. It may return the latest
406
+ # state before the specified timeout (including immediately), meaning even an
407
+ # immediate response is no guarantee that the operation is done.
408
+ #
409
+ # @overload wait_operation(request, options = nil)
410
+ # Pass arguments to `wait_operation` via a request object, either of type
411
+ # {::Google::Longrunning::WaitOperationRequest} or an equivalent Hash.
412
+ #
413
+ # @param request [::Google::Longrunning::WaitOperationRequest, ::Hash]
414
+ # A request object representing the call parameters. Required. To specify no
415
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
416
+ # @param options [::Gapic::CallOptions, ::Hash]
417
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
418
+ #
419
+ # @overload wait_operation(name: nil, timeout: nil)
420
+ # Pass arguments to `wait_operation` via keyword arguments. Note that at
421
+ # least one keyword argument is required. To specify no parameters, or to keep all
422
+ # the default parameter values, pass an empty Hash as a request object (see above).
423
+ #
424
+ # @param name [::String]
425
+ # The name of the operation resource to wait on.
426
+ # @param timeout [::Google::Protobuf::Duration, ::Hash]
427
+ # The maximum duration to wait before timing out. If left blank, the wait
428
+ # will be at most the time permitted by the underlying HTTP/RPC protocol.
429
+ # If RPC context deadline is also specified, the shorter one will be used.
430
+ #
431
+ # @yield [response, operation] Access the result along with the RPC operation
432
+ # @yieldparam response [::Gapic::Operation]
433
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
434
+ #
435
+ # @return [::Gapic::Operation]
436
+ #
437
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
438
+ #
439
+ def wait_operation request, options = nil
440
+ raise ::ArgumentError, "request must be provided" if request.nil?
441
+
442
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Longrunning::WaitOperationRequest
443
+
444
+ # Converts hash and nil to an options object
445
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
446
+
447
+ # Customize the options with defaults
448
+ metadata = @config.rpcs.wait_operation.metadata.to_h
449
+
450
+ # Set x-goog-api-client and x-goog-user-project headers
451
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
452
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
453
+ gapic_version: ::Google::Cloud::Dataproc::V1::VERSION
454
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
455
+
456
+ options.apply_defaults timeout: @config.rpcs.wait_operation.timeout,
457
+ metadata: metadata,
458
+ retry_policy: @config.rpcs.wait_operation.retry_policy
459
+ options.apply_defaults metadata: @config.metadata,
460
+ retry_policy: @config.retry_policy
461
+
462
+ @operations_stub.call_rpc :wait_operation, request, options: options do |response, operation|
463
+ response = ::Gapic::Operation.new response, @operations_client, options: options
464
+ yield response, operation if block_given?
465
+ return response
466
+ end
467
+ rescue ::GRPC::BadStatus => e
468
+ raise ::Google::Cloud::Error.from_error(e)
469
+ end
470
+
393
471
  ##
394
472
  # Configuration class for the Operations API.
395
473
  #
@@ -475,7 +553,7 @@ module Google
475
553
 
476
554
  config_attr :endpoint, "dataproc.googleapis.com", ::String
477
555
  config_attr :credentials, nil do |value|
478
- allowed = [::String, ::Hash, ::Proc, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
556
+ allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
479
557
  allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
480
558
  allowed.any? { |klass| klass === value }
481
559
  end
@@ -515,7 +593,7 @@ module Google
515
593
  # Each configuration object is of type `Gapic::Config::Method` and includes
516
594
  # the following configuration fields:
517
595
  #
518
- # * `timeout` (*type:* `Numeric`) - The call timeout in milliseconds
596
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
519
597
  # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers
520
598
  # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
521
599
  # include the following keys:
@@ -546,6 +624,11 @@ module Google
546
624
  # @return [::Gapic::Config::Method]
547
625
  #
548
626
  attr_reader :cancel_operation
627
+ ##
628
+ # RPC-specific configuration for `wait_operation`
629
+ # @return [::Gapic::Config::Method]
630
+ #
631
+ attr_reader :wait_operation
549
632
 
550
633
  # @private
551
634
  def initialize parent_rpcs = nil
@@ -557,6 +640,8 @@ module Google
557
640
  @delete_operation = ::Gapic::Config::Method.new delete_operation_config
558
641
  cancel_operation_config = parent_rpcs&.cancel_operation if parent_rpcs&.respond_to? :cancel_operation
559
642
  @cancel_operation = ::Gapic::Config::Method.new cancel_operation_config
643
+ wait_operation_config = parent_rpcs&.wait_operation if parent_rpcs&.respond_to? :wait_operation
644
+ @wait_operation = ::Gapic::Config::Method.new wait_operation_config
560
645
 
561
646
  yield self if block_given?
562
647
  end