google-cloud-scheduler-v1beta1 0.6.0 → 0.7.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.
@@ -0,0 +1,973 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2023 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+ require "google/cloud/errors"
20
+ require "google/cloud/scheduler/v1beta1/cloudscheduler_pb"
21
+ require "google/cloud/scheduler/v1beta1/cloud_scheduler/rest/service_stub"
22
+ require "google/cloud/location/rest"
23
+
24
+ module Google
25
+ module Cloud
26
+ module Scheduler
27
+ module V1beta1
28
+ module CloudScheduler
29
+ module Rest
30
+ ##
31
+ # REST client for the CloudScheduler service.
32
+ #
33
+ # The Cloud Scheduler API allows external entities to reliably
34
+ # schedule asynchronous jobs.
35
+ #
36
+ class Client
37
+ include Paths
38
+
39
+ # @private
40
+ attr_reader :cloud_scheduler_stub
41
+
42
+ ##
43
+ # Configure the CloudScheduler Client class.
44
+ #
45
+ # See {::Google::Cloud::Scheduler::V1beta1::CloudScheduler::Rest::Client::Configuration}
46
+ # for a description of the configuration fields.
47
+ #
48
+ # @example
49
+ #
50
+ # # Modify the configuration for all CloudScheduler clients
51
+ # ::Google::Cloud::Scheduler::V1beta1::CloudScheduler::Rest::Client.configure do |config|
52
+ # config.timeout = 10.0
53
+ # end
54
+ #
55
+ # @yield [config] Configure the Client client.
56
+ # @yieldparam config [Client::Configuration]
57
+ #
58
+ # @return [Client::Configuration]
59
+ #
60
+ def self.configure
61
+ @configure ||= begin
62
+ namespace = ["Google", "Cloud", "Scheduler", "V1beta1"]
63
+ parent_config = while namespace.any?
64
+ parent_name = namespace.join "::"
65
+ parent_const = const_get parent_name
66
+ break parent_const.configure if parent_const.respond_to? :configure
67
+ namespace.pop
68
+ end
69
+ default_config = Client::Configuration.new parent_config
70
+
71
+ default_config.rpcs.list_jobs.timeout = 600.0
72
+ default_config.rpcs.list_jobs.retry_policy = {
73
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
74
+ }
75
+
76
+ default_config.rpcs.get_job.timeout = 600.0
77
+ default_config.rpcs.get_job.retry_policy = {
78
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
79
+ }
80
+
81
+ default_config.rpcs.create_job.timeout = 600.0
82
+
83
+ default_config.rpcs.update_job.timeout = 600.0
84
+
85
+ default_config.rpcs.delete_job.timeout = 600.0
86
+ default_config.rpcs.delete_job.retry_policy = {
87
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
88
+ }
89
+
90
+ default_config.rpcs.pause_job.timeout = 600.0
91
+ default_config.rpcs.pause_job.retry_policy = {
92
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
93
+ }
94
+
95
+ default_config.rpcs.resume_job.timeout = 600.0
96
+ default_config.rpcs.resume_job.retry_policy = {
97
+ initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [4, 14]
98
+ }
99
+
100
+ default_config.rpcs.run_job.timeout = 600.0
101
+
102
+ default_config
103
+ end
104
+ yield @configure if block_given?
105
+ @configure
106
+ end
107
+
108
+ ##
109
+ # Configure the CloudScheduler Client instance.
110
+ #
111
+ # The configuration is set to the derived mode, meaning that values can be changed,
112
+ # but structural changes (adding new fields, etc.) are not allowed. Structural changes
113
+ # should be made on {Client.configure}.
114
+ #
115
+ # See {::Google::Cloud::Scheduler::V1beta1::CloudScheduler::Rest::Client::Configuration}
116
+ # for a description of the configuration fields.
117
+ #
118
+ # @yield [config] Configure the Client client.
119
+ # @yieldparam config [Client::Configuration]
120
+ #
121
+ # @return [Client::Configuration]
122
+ #
123
+ def configure
124
+ yield @config if block_given?
125
+ @config
126
+ end
127
+
128
+ ##
129
+ # Create a new CloudScheduler REST client object.
130
+ #
131
+ # @example
132
+ #
133
+ # # Create a client using the default configuration
134
+ # client = ::Google::Cloud::Scheduler::V1beta1::CloudScheduler::Rest::Client.new
135
+ #
136
+ # # Create a client using a custom configuration
137
+ # client = ::Google::Cloud::Scheduler::V1beta1::CloudScheduler::Rest::Client.new do |config|
138
+ # config.timeout = 10.0
139
+ # end
140
+ #
141
+ # @yield [config] Configure the CloudScheduler client.
142
+ # @yieldparam config [Client::Configuration]
143
+ #
144
+ def initialize
145
+ # Create the configuration object
146
+ @config = Configuration.new Client.configure
147
+
148
+ # Yield the configuration if needed
149
+ yield @config if block_given?
150
+
151
+ # Create credentials
152
+ credentials = @config.credentials
153
+ # Use self-signed JWT if the endpoint is unchanged from default,
154
+ # but only if the default endpoint does not have a region prefix.
155
+ enable_self_signed_jwt = @config.endpoint == Client.configure.endpoint &&
156
+ !@config.endpoint.split(".").first.include?("-")
157
+ credentials ||= Credentials.default scope: @config.scope,
158
+ enable_self_signed_jwt: enable_self_signed_jwt
159
+ if credentials.is_a?(::String) || credentials.is_a?(::Hash)
160
+ credentials = Credentials.new credentials, scope: @config.scope
161
+ end
162
+
163
+ @quota_project_id = @config.quota_project
164
+ @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
165
+
166
+ @location_client = Google::Cloud::Location::Locations::Rest::Client.new do |config|
167
+ config.credentials = credentials
168
+ config.quota_project = @quota_project_id
169
+ config.endpoint = @config.endpoint
170
+ config.bindings_override = @config.bindings_override
171
+ end
172
+
173
+ @cloud_scheduler_stub = ::Google::Cloud::Scheduler::V1beta1::CloudScheduler::Rest::ServiceStub.new endpoint: @config.endpoint, credentials: credentials
174
+ end
175
+
176
+ ##
177
+ # Get the associated client for mix-in of the Locations.
178
+ #
179
+ # @return [Google::Cloud::Location::Locations::Rest::Client]
180
+ #
181
+ attr_reader :location_client
182
+
183
+ # Service calls
184
+
185
+ ##
186
+ # Lists jobs.
187
+ #
188
+ # @overload list_jobs(request, options = nil)
189
+ # Pass arguments to `list_jobs` via a request object, either of type
190
+ # {::Google::Cloud::Scheduler::V1beta1::ListJobsRequest} or an equivalent Hash.
191
+ #
192
+ # @param request [::Google::Cloud::Scheduler::V1beta1::ListJobsRequest, ::Hash]
193
+ # A request object representing the call parameters. Required. To specify no
194
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
195
+ # @param options [::Gapic::CallOptions, ::Hash]
196
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
197
+ #
198
+ # @overload list_jobs(parent: nil, filter: nil, page_size: nil, page_token: nil, legacy_app_engine_cron: nil)
199
+ # Pass arguments to `list_jobs` via keyword arguments. Note that at
200
+ # least one keyword argument is required. To specify no parameters, or to keep all
201
+ # the default parameter values, pass an empty Hash as a request object (see above).
202
+ #
203
+ # @param parent [::String]
204
+ # Required. The location name. For example:
205
+ # `projects/PROJECT_ID/locations/LOCATION_ID`.
206
+ # @param filter [::String]
207
+ # `filter` can be used to specify a subset of jobs.
208
+ #
209
+ # If `filter` equals `target_config="HttpConfig"`, then the http
210
+ # target jobs are retrieved. If `filter` equals
211
+ # `target_config="PubSubConfig"`, then the Pub/Sub target jobs are
212
+ # retrieved. If `filter` equals `labels.foo=value1
213
+ # labels.foo=value2` then only jobs which are labeled with
214
+ # foo=value1 AND foo=value2 will be returned.
215
+ # @param page_size [::Integer]
216
+ # Requested page size.
217
+ #
218
+ # The maximum page size is 500. If unspecified, the page size will
219
+ # be the maximum. Fewer jobs than requested might be returned,
220
+ # even if more jobs exist; use next_page_token to determine if more
221
+ # jobs exist.
222
+ # @param page_token [::String]
223
+ # A token identifying a page of results the server will return. To
224
+ # request the first page results, page_token must be empty. To
225
+ # request the next page of results, page_token must be the value of
226
+ # {::Google::Cloud::Scheduler::V1beta1::ListJobsResponse#next_page_token next_page_token}
227
+ # returned from the previous call to
228
+ # {::Google::Cloud::Scheduler::V1beta1::CloudScheduler::Rest::Client#list_jobs ListJobs}. It is
229
+ # an error to switch the value of
230
+ # {::Google::Cloud::Scheduler::V1beta1::ListJobsRequest#filter filter} or
231
+ # [order_by][google.cloud.scheduler.v1beta1.ListJobsRequest.order_by] while
232
+ # iterating through pages.
233
+ # @param legacy_app_engine_cron [::Boolean]
234
+ # This field is used to manage the legacy App Engine Cron jobs using the
235
+ # Cloud Scheduler API. If the field is set to true, the jobs in the __cron
236
+ # queue will be listed instead.
237
+ # @yield [result, operation] Access the result along with the TransportOperation object
238
+ # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Scheduler::V1beta1::Job>]
239
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
240
+ #
241
+ # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Scheduler::V1beta1::Job>]
242
+ #
243
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
244
+ def list_jobs request, options = nil
245
+ raise ::ArgumentError, "request must be provided" if request.nil?
246
+
247
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Scheduler::V1beta1::ListJobsRequest
248
+
249
+ # Converts hash and nil to an options object
250
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
251
+
252
+ # Customize the options with defaults
253
+ call_metadata = @config.rpcs.list_jobs.metadata.to_h
254
+
255
+ # Set x-goog-api-client and x-goog-user-project headers
256
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
257
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
258
+ gapic_version: ::Google::Cloud::Scheduler::V1beta1::VERSION,
259
+ transports_version_send: [:rest]
260
+
261
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
262
+
263
+ options.apply_defaults timeout: @config.rpcs.list_jobs.timeout,
264
+ metadata: call_metadata,
265
+ retry_policy: @config.rpcs.list_jobs.retry_policy
266
+
267
+ options.apply_defaults timeout: @config.timeout,
268
+ metadata: @config.metadata,
269
+ retry_policy: @config.retry_policy
270
+
271
+ @cloud_scheduler_stub.list_jobs request, options do |result, operation|
272
+ result = ::Gapic::Rest::PagedEnumerable.new @cloud_scheduler_stub, :list_jobs, "jobs", request, result, options
273
+ yield result, operation if block_given?
274
+ return result
275
+ end
276
+ rescue ::Gapic::Rest::Error => e
277
+ raise ::Google::Cloud::Error.from_error(e)
278
+ end
279
+
280
+ ##
281
+ # Gets a job.
282
+ #
283
+ # @overload get_job(request, options = nil)
284
+ # Pass arguments to `get_job` via a request object, either of type
285
+ # {::Google::Cloud::Scheduler::V1beta1::GetJobRequest} or an equivalent Hash.
286
+ #
287
+ # @param request [::Google::Cloud::Scheduler::V1beta1::GetJobRequest, ::Hash]
288
+ # A request object representing the call parameters. Required. To specify no
289
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
290
+ # @param options [::Gapic::CallOptions, ::Hash]
291
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
292
+ #
293
+ # @overload get_job(name: nil)
294
+ # Pass arguments to `get_job` via keyword arguments. Note that at
295
+ # least one keyword argument is required. To specify no parameters, or to keep all
296
+ # the default parameter values, pass an empty Hash as a request object (see above).
297
+ #
298
+ # @param name [::String]
299
+ # Required. The job name. For example:
300
+ # `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_ID`.
301
+ # @yield [result, operation] Access the result along with the TransportOperation object
302
+ # @yieldparam result [::Google::Cloud::Scheduler::V1beta1::Job]
303
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
304
+ #
305
+ # @return [::Google::Cloud::Scheduler::V1beta1::Job]
306
+ #
307
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
308
+ def get_job request, options = nil
309
+ raise ::ArgumentError, "request must be provided" if request.nil?
310
+
311
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Scheduler::V1beta1::GetJobRequest
312
+
313
+ # Converts hash and nil to an options object
314
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
315
+
316
+ # Customize the options with defaults
317
+ call_metadata = @config.rpcs.get_job.metadata.to_h
318
+
319
+ # Set x-goog-api-client and x-goog-user-project headers
320
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
321
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
322
+ gapic_version: ::Google::Cloud::Scheduler::V1beta1::VERSION,
323
+ transports_version_send: [:rest]
324
+
325
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
326
+
327
+ options.apply_defaults timeout: @config.rpcs.get_job.timeout,
328
+ metadata: call_metadata,
329
+ retry_policy: @config.rpcs.get_job.retry_policy
330
+
331
+ options.apply_defaults timeout: @config.timeout,
332
+ metadata: @config.metadata,
333
+ retry_policy: @config.retry_policy
334
+
335
+ @cloud_scheduler_stub.get_job request, options do |result, operation|
336
+ yield result, operation if block_given?
337
+ return result
338
+ end
339
+ rescue ::Gapic::Rest::Error => e
340
+ raise ::Google::Cloud::Error.from_error(e)
341
+ end
342
+
343
+ ##
344
+ # Creates a job.
345
+ #
346
+ # @overload create_job(request, options = nil)
347
+ # Pass arguments to `create_job` via a request object, either of type
348
+ # {::Google::Cloud::Scheduler::V1beta1::CreateJobRequest} or an equivalent Hash.
349
+ #
350
+ # @param request [::Google::Cloud::Scheduler::V1beta1::CreateJobRequest, ::Hash]
351
+ # A request object representing the call parameters. Required. To specify no
352
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
353
+ # @param options [::Gapic::CallOptions, ::Hash]
354
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
355
+ #
356
+ # @overload create_job(parent: nil, job: nil)
357
+ # Pass arguments to `create_job` via keyword arguments. Note that at
358
+ # least one keyword argument is required. To specify no parameters, or to keep all
359
+ # the default parameter values, pass an empty Hash as a request object (see above).
360
+ #
361
+ # @param parent [::String]
362
+ # Required. The location name. For example:
363
+ # `projects/PROJECT_ID/locations/LOCATION_ID`.
364
+ # @param job [::Google::Cloud::Scheduler::V1beta1::Job, ::Hash]
365
+ # Required. The job to add. The user can optionally specify a name for the
366
+ # job in {::Google::Cloud::Scheduler::V1beta1::Job#name name}.
367
+ # {::Google::Cloud::Scheduler::V1beta1::Job#name name} cannot be the same as an
368
+ # existing job. If a name is not specified then the system will
369
+ # generate a random unique name that will be returned
370
+ # ({::Google::Cloud::Scheduler::V1beta1::Job#name name}) in the response.
371
+ # @yield [result, operation] Access the result along with the TransportOperation object
372
+ # @yieldparam result [::Google::Cloud::Scheduler::V1beta1::Job]
373
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
374
+ #
375
+ # @return [::Google::Cloud::Scheduler::V1beta1::Job]
376
+ #
377
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
378
+ def create_job request, options = nil
379
+ raise ::ArgumentError, "request must be provided" if request.nil?
380
+
381
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Scheduler::V1beta1::CreateJobRequest
382
+
383
+ # Converts hash and nil to an options object
384
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
385
+
386
+ # Customize the options with defaults
387
+ call_metadata = @config.rpcs.create_job.metadata.to_h
388
+
389
+ # Set x-goog-api-client and x-goog-user-project headers
390
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
391
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
392
+ gapic_version: ::Google::Cloud::Scheduler::V1beta1::VERSION,
393
+ transports_version_send: [:rest]
394
+
395
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
396
+
397
+ options.apply_defaults timeout: @config.rpcs.create_job.timeout,
398
+ metadata: call_metadata,
399
+ retry_policy: @config.rpcs.create_job.retry_policy
400
+
401
+ options.apply_defaults timeout: @config.timeout,
402
+ metadata: @config.metadata,
403
+ retry_policy: @config.retry_policy
404
+
405
+ @cloud_scheduler_stub.create_job request, options do |result, operation|
406
+ yield result, operation if block_given?
407
+ return result
408
+ end
409
+ rescue ::Gapic::Rest::Error => e
410
+ raise ::Google::Cloud::Error.from_error(e)
411
+ end
412
+
413
+ ##
414
+ # Updates a job.
415
+ #
416
+ # If successful, the updated {::Google::Cloud::Scheduler::V1beta1::Job Job} is
417
+ # returned. If the job does not exist, `NOT_FOUND` is returned.
418
+ #
419
+ # If UpdateJob does not successfully return, it is possible for the
420
+ # job to be in an
421
+ # {::Google::Cloud::Scheduler::V1beta1::Job::State::UPDATE_FAILED Job.State.UPDATE_FAILED}
422
+ # state. A job in this state may not be executed. If this happens, retry the
423
+ # UpdateJob request until a successful response is received.
424
+ #
425
+ # @overload update_job(request, options = nil)
426
+ # Pass arguments to `update_job` via a request object, either of type
427
+ # {::Google::Cloud::Scheduler::V1beta1::UpdateJobRequest} or an equivalent Hash.
428
+ #
429
+ # @param request [::Google::Cloud::Scheduler::V1beta1::UpdateJobRequest, ::Hash]
430
+ # A request object representing the call parameters. Required. To specify no
431
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
432
+ # @param options [::Gapic::CallOptions, ::Hash]
433
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
434
+ #
435
+ # @overload update_job(job: nil, update_mask: nil)
436
+ # Pass arguments to `update_job` via keyword arguments. Note that at
437
+ # least one keyword argument is required. To specify no parameters, or to keep all
438
+ # the default parameter values, pass an empty Hash as a request object (see above).
439
+ #
440
+ # @param job [::Google::Cloud::Scheduler::V1beta1::Job, ::Hash]
441
+ # Required. The new job properties.
442
+ # {::Google::Cloud::Scheduler::V1beta1::Job#name name} must be specified.
443
+ #
444
+ # Output only fields cannot be modified using UpdateJob.
445
+ # Any value specified for an output only field will be ignored.
446
+ # @param update_mask [::Google::Protobuf::FieldMask, ::Hash]
447
+ # A mask used to specify which fields of the job are being updated.
448
+ # @yield [result, operation] Access the result along with the TransportOperation object
449
+ # @yieldparam result [::Google::Cloud::Scheduler::V1beta1::Job]
450
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
451
+ #
452
+ # @return [::Google::Cloud::Scheduler::V1beta1::Job]
453
+ #
454
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
455
+ def update_job request, options = nil
456
+ raise ::ArgumentError, "request must be provided" if request.nil?
457
+
458
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Scheduler::V1beta1::UpdateJobRequest
459
+
460
+ # Converts hash and nil to an options object
461
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
462
+
463
+ # Customize the options with defaults
464
+ call_metadata = @config.rpcs.update_job.metadata.to_h
465
+
466
+ # Set x-goog-api-client and x-goog-user-project headers
467
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
468
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
469
+ gapic_version: ::Google::Cloud::Scheduler::V1beta1::VERSION,
470
+ transports_version_send: [:rest]
471
+
472
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
473
+
474
+ options.apply_defaults timeout: @config.rpcs.update_job.timeout,
475
+ metadata: call_metadata,
476
+ retry_policy: @config.rpcs.update_job.retry_policy
477
+
478
+ options.apply_defaults timeout: @config.timeout,
479
+ metadata: @config.metadata,
480
+ retry_policy: @config.retry_policy
481
+
482
+ @cloud_scheduler_stub.update_job request, options do |result, operation|
483
+ yield result, operation if block_given?
484
+ return result
485
+ end
486
+ rescue ::Gapic::Rest::Error => e
487
+ raise ::Google::Cloud::Error.from_error(e)
488
+ end
489
+
490
+ ##
491
+ # Deletes a job.
492
+ #
493
+ # @overload delete_job(request, options = nil)
494
+ # Pass arguments to `delete_job` via a request object, either of type
495
+ # {::Google::Cloud::Scheduler::V1beta1::DeleteJobRequest} or an equivalent Hash.
496
+ #
497
+ # @param request [::Google::Cloud::Scheduler::V1beta1::DeleteJobRequest, ::Hash]
498
+ # A request object representing the call parameters. Required. To specify no
499
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
500
+ # @param options [::Gapic::CallOptions, ::Hash]
501
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
502
+ #
503
+ # @overload delete_job(name: nil, legacy_app_engine_cron: nil)
504
+ # Pass arguments to `delete_job` via keyword arguments. Note that at
505
+ # least one keyword argument is required. To specify no parameters, or to keep all
506
+ # the default parameter values, pass an empty Hash as a request object (see above).
507
+ #
508
+ # @param name [::String]
509
+ # Required. The job name. For example:
510
+ # `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_ID`.
511
+ # @param legacy_app_engine_cron [::Boolean]
512
+ # This field is used to manage the legacy App Engine Cron jobs using the
513
+ # Cloud Scheduler API. If the field is set to true, the job in the __cron
514
+ # queue with the corresponding name will be deleted instead.
515
+ # @yield [result, operation] Access the result along with the TransportOperation object
516
+ # @yieldparam result [::Google::Protobuf::Empty]
517
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
518
+ #
519
+ # @return [::Google::Protobuf::Empty]
520
+ #
521
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
522
+ def delete_job request, options = nil
523
+ raise ::ArgumentError, "request must be provided" if request.nil?
524
+
525
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Scheduler::V1beta1::DeleteJobRequest
526
+
527
+ # Converts hash and nil to an options object
528
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
529
+
530
+ # Customize the options with defaults
531
+ call_metadata = @config.rpcs.delete_job.metadata.to_h
532
+
533
+ # Set x-goog-api-client and x-goog-user-project headers
534
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
535
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
536
+ gapic_version: ::Google::Cloud::Scheduler::V1beta1::VERSION,
537
+ transports_version_send: [:rest]
538
+
539
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
540
+
541
+ options.apply_defaults timeout: @config.rpcs.delete_job.timeout,
542
+ metadata: call_metadata,
543
+ retry_policy: @config.rpcs.delete_job.retry_policy
544
+
545
+ options.apply_defaults timeout: @config.timeout,
546
+ metadata: @config.metadata,
547
+ retry_policy: @config.retry_policy
548
+
549
+ @cloud_scheduler_stub.delete_job request, options do |result, operation|
550
+ yield result, operation if block_given?
551
+ return result
552
+ end
553
+ rescue ::Gapic::Rest::Error => e
554
+ raise ::Google::Cloud::Error.from_error(e)
555
+ end
556
+
557
+ ##
558
+ # Pauses a job.
559
+ #
560
+ # If a job is paused then the system will stop executing the job
561
+ # until it is re-enabled via
562
+ # {::Google::Cloud::Scheduler::V1beta1::CloudScheduler::Rest::Client#resume_job ResumeJob}. The
563
+ # state of the job is stored in
564
+ # {::Google::Cloud::Scheduler::V1beta1::Job#state state}; if paused it will be set
565
+ # to {::Google::Cloud::Scheduler::V1beta1::Job::State::PAUSED Job.State.PAUSED}. A
566
+ # job must be in
567
+ # {::Google::Cloud::Scheduler::V1beta1::Job::State::ENABLED Job.State.ENABLED} to be
568
+ # paused.
569
+ #
570
+ # @overload pause_job(request, options = nil)
571
+ # Pass arguments to `pause_job` via a request object, either of type
572
+ # {::Google::Cloud::Scheduler::V1beta1::PauseJobRequest} or an equivalent Hash.
573
+ #
574
+ # @param request [::Google::Cloud::Scheduler::V1beta1::PauseJobRequest, ::Hash]
575
+ # A request object representing the call parameters. Required. To specify no
576
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
577
+ # @param options [::Gapic::CallOptions, ::Hash]
578
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
579
+ #
580
+ # @overload pause_job(name: nil)
581
+ # Pass arguments to `pause_job` via keyword arguments. Note that at
582
+ # least one keyword argument is required. To specify no parameters, or to keep all
583
+ # the default parameter values, pass an empty Hash as a request object (see above).
584
+ #
585
+ # @param name [::String]
586
+ # Required. The job name. For example:
587
+ # `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_ID`.
588
+ # @yield [result, operation] Access the result along with the TransportOperation object
589
+ # @yieldparam result [::Google::Cloud::Scheduler::V1beta1::Job]
590
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
591
+ #
592
+ # @return [::Google::Cloud::Scheduler::V1beta1::Job]
593
+ #
594
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
595
+ def pause_job request, options = nil
596
+ raise ::ArgumentError, "request must be provided" if request.nil?
597
+
598
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Scheduler::V1beta1::PauseJobRequest
599
+
600
+ # Converts hash and nil to an options object
601
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
602
+
603
+ # Customize the options with defaults
604
+ call_metadata = @config.rpcs.pause_job.metadata.to_h
605
+
606
+ # Set x-goog-api-client and x-goog-user-project headers
607
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
608
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
609
+ gapic_version: ::Google::Cloud::Scheduler::V1beta1::VERSION,
610
+ transports_version_send: [:rest]
611
+
612
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
613
+
614
+ options.apply_defaults timeout: @config.rpcs.pause_job.timeout,
615
+ metadata: call_metadata,
616
+ retry_policy: @config.rpcs.pause_job.retry_policy
617
+
618
+ options.apply_defaults timeout: @config.timeout,
619
+ metadata: @config.metadata,
620
+ retry_policy: @config.retry_policy
621
+
622
+ @cloud_scheduler_stub.pause_job request, options do |result, operation|
623
+ yield result, operation if block_given?
624
+ return result
625
+ end
626
+ rescue ::Gapic::Rest::Error => e
627
+ raise ::Google::Cloud::Error.from_error(e)
628
+ end
629
+
630
+ ##
631
+ # Resume a job.
632
+ #
633
+ # This method reenables a job after it has been
634
+ # {::Google::Cloud::Scheduler::V1beta1::Job::State::PAUSED Job.State.PAUSED}. The
635
+ # state of a job is stored in
636
+ # {::Google::Cloud::Scheduler::V1beta1::Job#state Job.state}; after calling this
637
+ # method it will be set to
638
+ # {::Google::Cloud::Scheduler::V1beta1::Job::State::ENABLED Job.State.ENABLED}. A
639
+ # job must be in
640
+ # {::Google::Cloud::Scheduler::V1beta1::Job::State::PAUSED Job.State.PAUSED} to be
641
+ # resumed.
642
+ #
643
+ # @overload resume_job(request, options = nil)
644
+ # Pass arguments to `resume_job` via a request object, either of type
645
+ # {::Google::Cloud::Scheduler::V1beta1::ResumeJobRequest} or an equivalent Hash.
646
+ #
647
+ # @param request [::Google::Cloud::Scheduler::V1beta1::ResumeJobRequest, ::Hash]
648
+ # A request object representing the call parameters. Required. To specify no
649
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
650
+ # @param options [::Gapic::CallOptions, ::Hash]
651
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
652
+ #
653
+ # @overload resume_job(name: nil)
654
+ # Pass arguments to `resume_job` via keyword arguments. Note that at
655
+ # least one keyword argument is required. To specify no parameters, or to keep all
656
+ # the default parameter values, pass an empty Hash as a request object (see above).
657
+ #
658
+ # @param name [::String]
659
+ # Required. The job name. For example:
660
+ # `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_ID`.
661
+ # @yield [result, operation] Access the result along with the TransportOperation object
662
+ # @yieldparam result [::Google::Cloud::Scheduler::V1beta1::Job]
663
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
664
+ #
665
+ # @return [::Google::Cloud::Scheduler::V1beta1::Job]
666
+ #
667
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
668
+ def resume_job request, options = nil
669
+ raise ::ArgumentError, "request must be provided" if request.nil?
670
+
671
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Scheduler::V1beta1::ResumeJobRequest
672
+
673
+ # Converts hash and nil to an options object
674
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
675
+
676
+ # Customize the options with defaults
677
+ call_metadata = @config.rpcs.resume_job.metadata.to_h
678
+
679
+ # Set x-goog-api-client and x-goog-user-project headers
680
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
681
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
682
+ gapic_version: ::Google::Cloud::Scheduler::V1beta1::VERSION,
683
+ transports_version_send: [:rest]
684
+
685
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
686
+
687
+ options.apply_defaults timeout: @config.rpcs.resume_job.timeout,
688
+ metadata: call_metadata,
689
+ retry_policy: @config.rpcs.resume_job.retry_policy
690
+
691
+ options.apply_defaults timeout: @config.timeout,
692
+ metadata: @config.metadata,
693
+ retry_policy: @config.retry_policy
694
+
695
+ @cloud_scheduler_stub.resume_job request, options do |result, operation|
696
+ yield result, operation if block_given?
697
+ return result
698
+ end
699
+ rescue ::Gapic::Rest::Error => e
700
+ raise ::Google::Cloud::Error.from_error(e)
701
+ end
702
+
703
+ ##
704
+ # Forces a job to run now.
705
+ #
706
+ # When this method is called, Cloud Scheduler will dispatch the job, even
707
+ # if the job is already running.
708
+ #
709
+ # @overload run_job(request, options = nil)
710
+ # Pass arguments to `run_job` via a request object, either of type
711
+ # {::Google::Cloud::Scheduler::V1beta1::RunJobRequest} or an equivalent Hash.
712
+ #
713
+ # @param request [::Google::Cloud::Scheduler::V1beta1::RunJobRequest, ::Hash]
714
+ # A request object representing the call parameters. Required. To specify no
715
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
716
+ # @param options [::Gapic::CallOptions, ::Hash]
717
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
718
+ #
719
+ # @overload run_job(name: nil, legacy_app_engine_cron: nil)
720
+ # Pass arguments to `run_job` via keyword arguments. Note that at
721
+ # least one keyword argument is required. To specify no parameters, or to keep all
722
+ # the default parameter values, pass an empty Hash as a request object (see above).
723
+ #
724
+ # @param name [::String]
725
+ # Required. The job name. For example:
726
+ # `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_ID`.
727
+ # @param legacy_app_engine_cron [::Boolean]
728
+ # This field is used to manage the legacy App Engine Cron jobs using the
729
+ # Cloud Scheduler API. If the field is set to true, the job in the __cron
730
+ # queue with the corresponding name will be forced to run instead.
731
+ # @yield [result, operation] Access the result along with the TransportOperation object
732
+ # @yieldparam result [::Google::Cloud::Scheduler::V1beta1::Job]
733
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
734
+ #
735
+ # @return [::Google::Cloud::Scheduler::V1beta1::Job]
736
+ #
737
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
738
+ def run_job request, options = nil
739
+ raise ::ArgumentError, "request must be provided" if request.nil?
740
+
741
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Scheduler::V1beta1::RunJobRequest
742
+
743
+ # Converts hash and nil to an options object
744
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
745
+
746
+ # Customize the options with defaults
747
+ call_metadata = @config.rpcs.run_job.metadata.to_h
748
+
749
+ # Set x-goog-api-client and x-goog-user-project headers
750
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
751
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
752
+ gapic_version: ::Google::Cloud::Scheduler::V1beta1::VERSION,
753
+ transports_version_send: [:rest]
754
+
755
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
756
+
757
+ options.apply_defaults timeout: @config.rpcs.run_job.timeout,
758
+ metadata: call_metadata,
759
+ retry_policy: @config.rpcs.run_job.retry_policy
760
+
761
+ options.apply_defaults timeout: @config.timeout,
762
+ metadata: @config.metadata,
763
+ retry_policy: @config.retry_policy
764
+
765
+ @cloud_scheduler_stub.run_job request, options do |result, operation|
766
+ yield result, operation if block_given?
767
+ return result
768
+ end
769
+ rescue ::Gapic::Rest::Error => e
770
+ raise ::Google::Cloud::Error.from_error(e)
771
+ end
772
+
773
+ ##
774
+ # Configuration class for the CloudScheduler REST API.
775
+ #
776
+ # This class represents the configuration for CloudScheduler REST,
777
+ # providing control over timeouts, retry behavior, logging, transport
778
+ # parameters, and other low-level controls. Certain parameters can also be
779
+ # applied individually to specific RPCs. See
780
+ # {::Google::Cloud::Scheduler::V1beta1::CloudScheduler::Rest::Client::Configuration::Rpcs}
781
+ # for a list of RPCs that can be configured independently.
782
+ #
783
+ # Configuration can be applied globally to all clients, or to a single client
784
+ # on construction.
785
+ #
786
+ # @example
787
+ #
788
+ # # Modify the global config, setting the timeout for
789
+ # # list_jobs to 20 seconds,
790
+ # # and all remaining timeouts to 10 seconds.
791
+ # ::Google::Cloud::Scheduler::V1beta1::CloudScheduler::Rest::Client.configure do |config|
792
+ # config.timeout = 10.0
793
+ # config.rpcs.list_jobs.timeout = 20.0
794
+ # end
795
+ #
796
+ # # Apply the above configuration only to a new client.
797
+ # client = ::Google::Cloud::Scheduler::V1beta1::CloudScheduler::Rest::Client.new do |config|
798
+ # config.timeout = 10.0
799
+ # config.rpcs.list_jobs.timeout = 20.0
800
+ # end
801
+ #
802
+ # @!attribute [rw] endpoint
803
+ # The hostname or hostname:port of the service endpoint.
804
+ # Defaults to `"cloudscheduler.googleapis.com"`.
805
+ # @return [::String]
806
+ # @!attribute [rw] credentials
807
+ # Credentials to send with calls. You may provide any of the following types:
808
+ # * (`String`) The path to a service account key file in JSON format
809
+ # * (`Hash`) A service account key as a Hash
810
+ # * (`Google::Auth::Credentials`) A googleauth credentials object
811
+ # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
812
+ # * (`Signet::OAuth2::Client`) A signet oauth2 client object
813
+ # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
814
+ # * (`nil`) indicating no credentials
815
+ # @return [::Object]
816
+ # @!attribute [rw] scope
817
+ # The OAuth scopes
818
+ # @return [::Array<::String>]
819
+ # @!attribute [rw] lib_name
820
+ # The library name as recorded in instrumentation and logging
821
+ # @return [::String]
822
+ # @!attribute [rw] lib_version
823
+ # The library version as recorded in instrumentation and logging
824
+ # @return [::String]
825
+ # @!attribute [rw] timeout
826
+ # The call timeout in seconds.
827
+ # @return [::Numeric]
828
+ # @!attribute [rw] metadata
829
+ # Additional headers to be sent with the call.
830
+ # @return [::Hash{::Symbol=>::String}]
831
+ # @!attribute [rw] retry_policy
832
+ # The retry policy. The value is a hash with the following keys:
833
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
834
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
835
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
836
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
837
+ # trigger a retry.
838
+ # @return [::Hash]
839
+ # @!attribute [rw] quota_project
840
+ # A separate project against which to charge quota.
841
+ # @return [::String]
842
+ #
843
+ class Configuration
844
+ extend ::Gapic::Config
845
+
846
+ config_attr :endpoint, "cloudscheduler.googleapis.com", ::String
847
+ config_attr :credentials, nil do |value|
848
+ allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
849
+ allowed.any? { |klass| klass === value }
850
+ end
851
+ config_attr :scope, nil, ::String, ::Array, nil
852
+ config_attr :lib_name, nil, ::String, nil
853
+ config_attr :lib_version, nil, ::String, nil
854
+ config_attr :timeout, nil, ::Numeric, nil
855
+ config_attr :metadata, nil, ::Hash, nil
856
+ config_attr :retry_policy, nil, ::Hash, ::Proc, nil
857
+ config_attr :quota_project, nil, ::String, nil
858
+
859
+ # @private
860
+ # Overrides for http bindings for the RPCs of this service
861
+ # are only used when this service is used as mixin, and only
862
+ # by the host service.
863
+ # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}]
864
+ config_attr :bindings_override, {}, ::Hash, nil
865
+
866
+ # @private
867
+ def initialize parent_config = nil
868
+ @parent_config = parent_config unless parent_config.nil?
869
+
870
+ yield self if block_given?
871
+ end
872
+
873
+ ##
874
+ # Configurations for individual RPCs
875
+ # @return [Rpcs]
876
+ #
877
+ def rpcs
878
+ @rpcs ||= begin
879
+ parent_rpcs = nil
880
+ parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs)
881
+ Rpcs.new parent_rpcs
882
+ end
883
+ end
884
+
885
+ ##
886
+ # Configuration RPC class for the CloudScheduler API.
887
+ #
888
+ # Includes fields providing the configuration for each RPC in this service.
889
+ # Each configuration object is of type `Gapic::Config::Method` and includes
890
+ # the following configuration fields:
891
+ #
892
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
893
+ # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers
894
+ # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
895
+ # include the following keys:
896
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
897
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
898
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
899
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
900
+ # trigger a retry.
901
+ #
902
+ class Rpcs
903
+ ##
904
+ # RPC-specific configuration for `list_jobs`
905
+ # @return [::Gapic::Config::Method]
906
+ #
907
+ attr_reader :list_jobs
908
+ ##
909
+ # RPC-specific configuration for `get_job`
910
+ # @return [::Gapic::Config::Method]
911
+ #
912
+ attr_reader :get_job
913
+ ##
914
+ # RPC-specific configuration for `create_job`
915
+ # @return [::Gapic::Config::Method]
916
+ #
917
+ attr_reader :create_job
918
+ ##
919
+ # RPC-specific configuration for `update_job`
920
+ # @return [::Gapic::Config::Method]
921
+ #
922
+ attr_reader :update_job
923
+ ##
924
+ # RPC-specific configuration for `delete_job`
925
+ # @return [::Gapic::Config::Method]
926
+ #
927
+ attr_reader :delete_job
928
+ ##
929
+ # RPC-specific configuration for `pause_job`
930
+ # @return [::Gapic::Config::Method]
931
+ #
932
+ attr_reader :pause_job
933
+ ##
934
+ # RPC-specific configuration for `resume_job`
935
+ # @return [::Gapic::Config::Method]
936
+ #
937
+ attr_reader :resume_job
938
+ ##
939
+ # RPC-specific configuration for `run_job`
940
+ # @return [::Gapic::Config::Method]
941
+ #
942
+ attr_reader :run_job
943
+
944
+ # @private
945
+ def initialize parent_rpcs = nil
946
+ list_jobs_config = parent_rpcs.list_jobs if parent_rpcs.respond_to? :list_jobs
947
+ @list_jobs = ::Gapic::Config::Method.new list_jobs_config
948
+ get_job_config = parent_rpcs.get_job if parent_rpcs.respond_to? :get_job
949
+ @get_job = ::Gapic::Config::Method.new get_job_config
950
+ create_job_config = parent_rpcs.create_job if parent_rpcs.respond_to? :create_job
951
+ @create_job = ::Gapic::Config::Method.new create_job_config
952
+ update_job_config = parent_rpcs.update_job if parent_rpcs.respond_to? :update_job
953
+ @update_job = ::Gapic::Config::Method.new update_job_config
954
+ delete_job_config = parent_rpcs.delete_job if parent_rpcs.respond_to? :delete_job
955
+ @delete_job = ::Gapic::Config::Method.new delete_job_config
956
+ pause_job_config = parent_rpcs.pause_job if parent_rpcs.respond_to? :pause_job
957
+ @pause_job = ::Gapic::Config::Method.new pause_job_config
958
+ resume_job_config = parent_rpcs.resume_job if parent_rpcs.respond_to? :resume_job
959
+ @resume_job = ::Gapic::Config::Method.new resume_job_config
960
+ run_job_config = parent_rpcs.run_job if parent_rpcs.respond_to? :run_job
961
+ @run_job = ::Gapic::Config::Method.new run_job_config
962
+
963
+ yield self if block_given?
964
+ end
965
+ end
966
+ end
967
+ end
968
+ end
969
+ end
970
+ end
971
+ end
972
+ end
973
+ end