google-cloud-redis-v1 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1200 @@
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/redis/v1/cloud_redis_pb"
21
+ require "google/cloud/redis/v1/cloud_redis/rest/service_stub"
22
+
23
+ module Google
24
+ module Cloud
25
+ module Redis
26
+ module V1
27
+ module CloudRedis
28
+ module Rest
29
+ ##
30
+ # REST client for the CloudRedis service.
31
+ #
32
+ # Configures and manages Cloud Memorystore for Redis instances
33
+ #
34
+ # Google Cloud Memorystore for Redis v1
35
+ #
36
+ # The `redis.googleapis.com` service implements the Google Cloud Memorystore
37
+ # for Redis API and defines the following resource model for managing Redis
38
+ # instances:
39
+ # * The service works with a collection of cloud projects, named: `/projects/*`
40
+ # * Each project has a collection of available locations, named: `/locations/*`
41
+ # * Each location has a collection of Redis instances, named: `/instances/*`
42
+ # * As such, Redis instances are resources of the form:
43
+ # `/projects/{project_id}/locations/{location_id}/instances/{instance_id}`
44
+ #
45
+ # Note that location_id must be referring to a GCP `region`; for example:
46
+ # * `projects/redpepper-1290/locations/us-central1/instances/my-redis`
47
+ #
48
+ class Client
49
+ include Paths
50
+
51
+ # @private
52
+ attr_reader :cloud_redis_stub
53
+
54
+ ##
55
+ # Configure the CloudRedis Client class.
56
+ #
57
+ # See {::Google::Cloud::Redis::V1::CloudRedis::Rest::Client::Configuration}
58
+ # for a description of the configuration fields.
59
+ #
60
+ # @example
61
+ #
62
+ # # Modify the configuration for all CloudRedis clients
63
+ # ::Google::Cloud::Redis::V1::CloudRedis::Rest::Client.configure do |config|
64
+ # config.timeout = 10.0
65
+ # end
66
+ #
67
+ # @yield [config] Configure the Client client.
68
+ # @yieldparam config [Client::Configuration]
69
+ #
70
+ # @return [Client::Configuration]
71
+ #
72
+ def self.configure
73
+ @configure ||= begin
74
+ namespace = ["Google", "Cloud", "Redis", "V1"]
75
+ parent_config = while namespace.any?
76
+ parent_name = namespace.join "::"
77
+ parent_const = const_get parent_name
78
+ break parent_const.configure if parent_const.respond_to? :configure
79
+ namespace.pop
80
+ end
81
+ default_config = Client::Configuration.new parent_config
82
+
83
+ default_config.rpcs.list_instances.timeout = 600.0
84
+
85
+ default_config.rpcs.get_instance.timeout = 600.0
86
+
87
+ default_config.rpcs.get_instance_auth_string.timeout = 600.0
88
+
89
+ default_config.rpcs.create_instance.timeout = 600.0
90
+
91
+ default_config.rpcs.update_instance.timeout = 600.0
92
+
93
+ default_config.rpcs.upgrade_instance.timeout = 600.0
94
+
95
+ default_config.rpcs.import_instance.timeout = 600.0
96
+
97
+ default_config.rpcs.export_instance.timeout = 600.0
98
+
99
+ default_config.rpcs.failover_instance.timeout = 600.0
100
+
101
+ default_config.rpcs.delete_instance.timeout = 600.0
102
+
103
+ default_config.rpcs.reschedule_maintenance.timeout = 600.0
104
+
105
+ default_config
106
+ end
107
+ yield @configure if block_given?
108
+ @configure
109
+ end
110
+
111
+ ##
112
+ # Configure the CloudRedis Client instance.
113
+ #
114
+ # The configuration is set to the derived mode, meaning that values can be changed,
115
+ # but structural changes (adding new fields, etc.) are not allowed. Structural changes
116
+ # should be made on {Client.configure}.
117
+ #
118
+ # See {::Google::Cloud::Redis::V1::CloudRedis::Rest::Client::Configuration}
119
+ # for a description of the configuration fields.
120
+ #
121
+ # @yield [config] Configure the Client client.
122
+ # @yieldparam config [Client::Configuration]
123
+ #
124
+ # @return [Client::Configuration]
125
+ #
126
+ def configure
127
+ yield @config if block_given?
128
+ @config
129
+ end
130
+
131
+ ##
132
+ # Create a new CloudRedis REST client object.
133
+ #
134
+ # @example
135
+ #
136
+ # # Create a client using the default configuration
137
+ # client = ::Google::Cloud::Redis::V1::CloudRedis::Rest::Client.new
138
+ #
139
+ # # Create a client using a custom configuration
140
+ # client = ::Google::Cloud::Redis::V1::CloudRedis::Rest::Client.new do |config|
141
+ # config.timeout = 10.0
142
+ # end
143
+ #
144
+ # @yield [config] Configure the CloudRedis client.
145
+ # @yieldparam config [Client::Configuration]
146
+ #
147
+ def initialize
148
+ # Create the configuration object
149
+ @config = Configuration.new Client.configure
150
+
151
+ # Yield the configuration if needed
152
+ yield @config if block_given?
153
+
154
+ # Create credentials
155
+ credentials = @config.credentials
156
+ # Use self-signed JWT if the endpoint is unchanged from default,
157
+ # but only if the default endpoint does not have a region prefix.
158
+ enable_self_signed_jwt = @config.endpoint == Client.configure.endpoint &&
159
+ !@config.endpoint.split(".").first.include?("-")
160
+ credentials ||= Credentials.default scope: @config.scope,
161
+ enable_self_signed_jwt: enable_self_signed_jwt
162
+ if credentials.is_a?(::String) || credentials.is_a?(::Hash)
163
+ credentials = Credentials.new credentials, scope: @config.scope
164
+ end
165
+
166
+ @quota_project_id = @config.quota_project
167
+ @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
168
+
169
+ @operations_client = ::Google::Cloud::Redis::V1::CloudRedis::Rest::Operations.new do |config|
170
+ config.credentials = credentials
171
+ config.quota_project = @quota_project_id
172
+ config.endpoint = @config.endpoint
173
+ end
174
+
175
+ @cloud_redis_stub = ::Google::Cloud::Redis::V1::CloudRedis::Rest::ServiceStub.new endpoint: @config.endpoint, credentials: credentials
176
+ end
177
+
178
+ ##
179
+ # Get the associated client for long-running operations.
180
+ #
181
+ # @return [::Google::Cloud::Redis::V1::CloudRedis::Rest::Operations]
182
+ #
183
+ attr_reader :operations_client
184
+
185
+ # Service calls
186
+
187
+ ##
188
+ # Lists all Redis instances owned by a project in either the specified
189
+ # location (region) or all locations.
190
+ #
191
+ # The location should have the following format:
192
+ #
193
+ # * `projects/{project_id}/locations/{location_id}`
194
+ #
195
+ # If `location_id` is specified as `-` (wildcard), then all regions
196
+ # available to the project are queried, and the results are aggregated.
197
+ #
198
+ # @overload list_instances(request, options = nil)
199
+ # Pass arguments to `list_instances` via a request object, either of type
200
+ # {::Google::Cloud::Redis::V1::ListInstancesRequest} or an equivalent Hash.
201
+ #
202
+ # @param request [::Google::Cloud::Redis::V1::ListInstancesRequest, ::Hash]
203
+ # A request object representing the call parameters. Required. To specify no
204
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
205
+ # @param options [::Gapic::CallOptions, ::Hash]
206
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
207
+ #
208
+ # @overload list_instances(parent: nil, page_size: nil, page_token: nil)
209
+ # Pass arguments to `list_instances` via keyword arguments. Note that at
210
+ # least one keyword argument is required. To specify no parameters, or to keep all
211
+ # the default parameter values, pass an empty Hash as a request object (see above).
212
+ #
213
+ # @param parent [::String]
214
+ # Required. The resource name of the instance location using the form:
215
+ # `projects/{project_id}/locations/{location_id}`
216
+ # where `location_id` refers to a GCP region.
217
+ # @param page_size [::Integer]
218
+ # The maximum number of items to return.
219
+ #
220
+ # If not specified, a default value of 1000 will be used by the service.
221
+ # Regardless of the page_size value, the response may include a partial list
222
+ # and a caller should only rely on response's
223
+ # {::Google::Cloud::Redis::V1::ListInstancesResponse#next_page_token `next_page_token`}
224
+ # to determine if there are more instances left to be queried.
225
+ # @param page_token [::String]
226
+ # The `next_page_token` value returned from a previous
227
+ # {::Google::Cloud::Redis::V1::CloudRedis::Rest::Client#list_instances ListInstances} request, if any.
228
+ # @yield [result, operation] Access the result along with the TransportOperation object
229
+ # @yieldparam result [::Google::Cloud::Redis::V1::ListInstancesResponse]
230
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
231
+ #
232
+ # @return [::Google::Cloud::Redis::V1::ListInstancesResponse]
233
+ #
234
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
235
+ def list_instances request, options = nil
236
+ raise ::ArgumentError, "request must be provided" if request.nil?
237
+
238
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Redis::V1::ListInstancesRequest
239
+
240
+ # Converts hash and nil to an options object
241
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
242
+
243
+ # Customize the options with defaults
244
+ call_metadata = @config.rpcs.list_instances.metadata.to_h
245
+
246
+ # Set x-goog-api-client and x-goog-user-project headers
247
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
248
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
249
+ gapic_version: ::Google::Cloud::Redis::V1::VERSION,
250
+ transports_version_send: [:rest]
251
+
252
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
253
+
254
+ options.apply_defaults timeout: @config.rpcs.list_instances.timeout,
255
+ metadata: call_metadata,
256
+ retry_policy: @config.rpcs.list_instances.retry_policy
257
+
258
+ options.apply_defaults timeout: @config.timeout,
259
+ metadata: @config.metadata,
260
+ retry_policy: @config.retry_policy
261
+
262
+ @cloud_redis_stub.list_instances request, options do |result, operation|
263
+ yield result, operation if block_given?
264
+ return result
265
+ end
266
+ rescue ::Gapic::Rest::Error => e
267
+ raise ::Google::Cloud::Error.from_error(e)
268
+ end
269
+
270
+ ##
271
+ # Gets the details of a specific Redis instance.
272
+ #
273
+ # @overload get_instance(request, options = nil)
274
+ # Pass arguments to `get_instance` via a request object, either of type
275
+ # {::Google::Cloud::Redis::V1::GetInstanceRequest} or an equivalent Hash.
276
+ #
277
+ # @param request [::Google::Cloud::Redis::V1::GetInstanceRequest, ::Hash]
278
+ # A request object representing the call parameters. Required. To specify no
279
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
280
+ # @param options [::Gapic::CallOptions, ::Hash]
281
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
282
+ #
283
+ # @overload get_instance(name: nil)
284
+ # Pass arguments to `get_instance` via keyword arguments. Note that at
285
+ # least one keyword argument is required. To specify no parameters, or to keep all
286
+ # the default parameter values, pass an empty Hash as a request object (see above).
287
+ #
288
+ # @param name [::String]
289
+ # Required. Redis instance resource name using the form:
290
+ # `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
291
+ # where `location_id` refers to a GCP region.
292
+ # @yield [result, operation] Access the result along with the TransportOperation object
293
+ # @yieldparam result [::Google::Cloud::Redis::V1::Instance]
294
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
295
+ #
296
+ # @return [::Google::Cloud::Redis::V1::Instance]
297
+ #
298
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
299
+ def get_instance request, options = nil
300
+ raise ::ArgumentError, "request must be provided" if request.nil?
301
+
302
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Redis::V1::GetInstanceRequest
303
+
304
+ # Converts hash and nil to an options object
305
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
306
+
307
+ # Customize the options with defaults
308
+ call_metadata = @config.rpcs.get_instance.metadata.to_h
309
+
310
+ # Set x-goog-api-client and x-goog-user-project headers
311
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
312
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
313
+ gapic_version: ::Google::Cloud::Redis::V1::VERSION,
314
+ transports_version_send: [:rest]
315
+
316
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
317
+
318
+ options.apply_defaults timeout: @config.rpcs.get_instance.timeout,
319
+ metadata: call_metadata,
320
+ retry_policy: @config.rpcs.get_instance.retry_policy
321
+
322
+ options.apply_defaults timeout: @config.timeout,
323
+ metadata: @config.metadata,
324
+ retry_policy: @config.retry_policy
325
+
326
+ @cloud_redis_stub.get_instance request, options do |result, operation|
327
+ yield result, operation if block_given?
328
+ return result
329
+ end
330
+ rescue ::Gapic::Rest::Error => e
331
+ raise ::Google::Cloud::Error.from_error(e)
332
+ end
333
+
334
+ ##
335
+ # Gets the AUTH string for a Redis instance. If AUTH is not enabled for the
336
+ # instance the response will be empty. This information is not included in
337
+ # the details returned to GetInstance.
338
+ #
339
+ # @overload get_instance_auth_string(request, options = nil)
340
+ # Pass arguments to `get_instance_auth_string` via a request object, either of type
341
+ # {::Google::Cloud::Redis::V1::GetInstanceAuthStringRequest} or an equivalent Hash.
342
+ #
343
+ # @param request [::Google::Cloud::Redis::V1::GetInstanceAuthStringRequest, ::Hash]
344
+ # A request object representing the call parameters. Required. To specify no
345
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
346
+ # @param options [::Gapic::CallOptions, ::Hash]
347
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
348
+ #
349
+ # @overload get_instance_auth_string(name: nil)
350
+ # Pass arguments to `get_instance_auth_string` via keyword arguments. Note that at
351
+ # least one keyword argument is required. To specify no parameters, or to keep all
352
+ # the default parameter values, pass an empty Hash as a request object (see above).
353
+ #
354
+ # @param name [::String]
355
+ # Required. Redis instance resource name using the form:
356
+ # `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
357
+ # where `location_id` refers to a GCP region.
358
+ # @yield [result, operation] Access the result along with the TransportOperation object
359
+ # @yieldparam result [::Google::Cloud::Redis::V1::InstanceAuthString]
360
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
361
+ #
362
+ # @return [::Google::Cloud::Redis::V1::InstanceAuthString]
363
+ #
364
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
365
+ def get_instance_auth_string request, options = nil
366
+ raise ::ArgumentError, "request must be provided" if request.nil?
367
+
368
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Redis::V1::GetInstanceAuthStringRequest
369
+
370
+ # Converts hash and nil to an options object
371
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
372
+
373
+ # Customize the options with defaults
374
+ call_metadata = @config.rpcs.get_instance_auth_string.metadata.to_h
375
+
376
+ # Set x-goog-api-client and x-goog-user-project headers
377
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
378
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
379
+ gapic_version: ::Google::Cloud::Redis::V1::VERSION,
380
+ transports_version_send: [:rest]
381
+
382
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
383
+
384
+ options.apply_defaults timeout: @config.rpcs.get_instance_auth_string.timeout,
385
+ metadata: call_metadata,
386
+ retry_policy: @config.rpcs.get_instance_auth_string.retry_policy
387
+
388
+ options.apply_defaults timeout: @config.timeout,
389
+ metadata: @config.metadata,
390
+ retry_policy: @config.retry_policy
391
+
392
+ @cloud_redis_stub.get_instance_auth_string request, options do |result, operation|
393
+ yield result, operation if block_given?
394
+ return result
395
+ end
396
+ rescue ::Gapic::Rest::Error => e
397
+ raise ::Google::Cloud::Error.from_error(e)
398
+ end
399
+
400
+ ##
401
+ # Creates a Redis instance based on the specified tier and memory size.
402
+ #
403
+ # By default, the instance is accessible from the project's
404
+ # [default network](https://cloud.google.com/vpc/docs/vpc).
405
+ #
406
+ # The creation is executed asynchronously and callers may check the returned
407
+ # operation to track its progress. Once the operation is completed the Redis
408
+ # instance will be fully functional. Completed longrunning.Operation will
409
+ # contain the new instance object in the response field.
410
+ #
411
+ # The returned operation is automatically deleted after a few hours, so there
412
+ # is no need to call DeleteOperation.
413
+ #
414
+ # @overload create_instance(request, options = nil)
415
+ # Pass arguments to `create_instance` via a request object, either of type
416
+ # {::Google::Cloud::Redis::V1::CreateInstanceRequest} or an equivalent Hash.
417
+ #
418
+ # @param request [::Google::Cloud::Redis::V1::CreateInstanceRequest, ::Hash]
419
+ # A request object representing the call parameters. Required. To specify no
420
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
421
+ # @param options [::Gapic::CallOptions, ::Hash]
422
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
423
+ #
424
+ # @overload create_instance(parent: nil, instance_id: nil, instance: nil)
425
+ # Pass arguments to `create_instance` via keyword arguments. Note that at
426
+ # least one keyword argument is required. To specify no parameters, or to keep all
427
+ # the default parameter values, pass an empty Hash as a request object (see above).
428
+ #
429
+ # @param parent [::String]
430
+ # Required. The resource name of the instance location using the form:
431
+ # `projects/{project_id}/locations/{location_id}`
432
+ # where `location_id` refers to a GCP region.
433
+ # @param instance_id [::String]
434
+ # Required. The logical name of the Redis instance in the customer project
435
+ # with the following restrictions:
436
+ #
437
+ # * Must contain only lowercase letters, numbers, and hyphens.
438
+ # * Must start with a letter.
439
+ # * Must be between 1-40 characters.
440
+ # * Must end with a number or a letter.
441
+ # * Must be unique within the customer project / location
442
+ # @param instance [::Google::Cloud::Redis::V1::Instance, ::Hash]
443
+ # Required. A Redis [Instance] resource
444
+ # @yield [result, operation] Access the result along with the TransportOperation object
445
+ # @yieldparam result [::Gapic::Operation]
446
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
447
+ #
448
+ # @return [::Gapic::Operation]
449
+ #
450
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
451
+ def create_instance request, options = nil
452
+ raise ::ArgumentError, "request must be provided" if request.nil?
453
+
454
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Redis::V1::CreateInstanceRequest
455
+
456
+ # Converts hash and nil to an options object
457
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
458
+
459
+ # Customize the options with defaults
460
+ call_metadata = @config.rpcs.create_instance.metadata.to_h
461
+
462
+ # Set x-goog-api-client and x-goog-user-project headers
463
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
464
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
465
+ gapic_version: ::Google::Cloud::Redis::V1::VERSION,
466
+ transports_version_send: [:rest]
467
+
468
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
469
+
470
+ options.apply_defaults timeout: @config.rpcs.create_instance.timeout,
471
+ metadata: call_metadata,
472
+ retry_policy: @config.rpcs.create_instance.retry_policy
473
+
474
+ options.apply_defaults timeout: @config.timeout,
475
+ metadata: @config.metadata,
476
+ retry_policy: @config.retry_policy
477
+
478
+ @cloud_redis_stub.create_instance request, options do |result, operation|
479
+ result = ::Gapic::Operation.new result, @operations_client, options: options
480
+ yield result, operation if block_given?
481
+ return result
482
+ end
483
+ rescue ::Gapic::Rest::Error => e
484
+ raise ::Google::Cloud::Error.from_error(e)
485
+ end
486
+
487
+ ##
488
+ # Updates the metadata and configuration of a specific Redis instance.
489
+ #
490
+ # Completed longrunning.Operation will contain the new instance object
491
+ # in the response field. The returned operation is automatically deleted
492
+ # after a few hours, so there is no need to call DeleteOperation.
493
+ #
494
+ # @overload update_instance(request, options = nil)
495
+ # Pass arguments to `update_instance` via a request object, either of type
496
+ # {::Google::Cloud::Redis::V1::UpdateInstanceRequest} or an equivalent Hash.
497
+ #
498
+ # @param request [::Google::Cloud::Redis::V1::UpdateInstanceRequest, ::Hash]
499
+ # A request object representing the call parameters. Required. To specify no
500
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
501
+ # @param options [::Gapic::CallOptions, ::Hash]
502
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
503
+ #
504
+ # @overload update_instance(update_mask: nil, instance: nil)
505
+ # Pass arguments to `update_instance` via keyword arguments. Note that at
506
+ # least one keyword argument is required. To specify no parameters, or to keep all
507
+ # the default parameter values, pass an empty Hash as a request object (see above).
508
+ #
509
+ # @param update_mask [::Google::Protobuf::FieldMask, ::Hash]
510
+ # Required. Mask of fields to update. At least one path must be supplied in
511
+ # this field. The elements of the repeated paths field may only include these
512
+ # fields from {::Google::Cloud::Redis::V1::Instance Instance}:
513
+ #
514
+ # * `displayName`
515
+ # * `labels`
516
+ # * `memorySizeGb`
517
+ # * `redisConfig`
518
+ # * `replica_count`
519
+ # @param instance [::Google::Cloud::Redis::V1::Instance, ::Hash]
520
+ # Required. Update description.
521
+ # Only fields specified in update_mask are updated.
522
+ # @yield [result, operation] Access the result along with the TransportOperation object
523
+ # @yieldparam result [::Gapic::Operation]
524
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
525
+ #
526
+ # @return [::Gapic::Operation]
527
+ #
528
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
529
+ def update_instance request, options = nil
530
+ raise ::ArgumentError, "request must be provided" if request.nil?
531
+
532
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Redis::V1::UpdateInstanceRequest
533
+
534
+ # Converts hash and nil to an options object
535
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
536
+
537
+ # Customize the options with defaults
538
+ call_metadata = @config.rpcs.update_instance.metadata.to_h
539
+
540
+ # Set x-goog-api-client and x-goog-user-project headers
541
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
542
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
543
+ gapic_version: ::Google::Cloud::Redis::V1::VERSION,
544
+ transports_version_send: [:rest]
545
+
546
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
547
+
548
+ options.apply_defaults timeout: @config.rpcs.update_instance.timeout,
549
+ metadata: call_metadata,
550
+ retry_policy: @config.rpcs.update_instance.retry_policy
551
+
552
+ options.apply_defaults timeout: @config.timeout,
553
+ metadata: @config.metadata,
554
+ retry_policy: @config.retry_policy
555
+
556
+ @cloud_redis_stub.update_instance request, options do |result, operation|
557
+ result = ::Gapic::Operation.new result, @operations_client, options: options
558
+ yield result, operation if block_given?
559
+ return result
560
+ end
561
+ rescue ::Gapic::Rest::Error => e
562
+ raise ::Google::Cloud::Error.from_error(e)
563
+ end
564
+
565
+ ##
566
+ # Upgrades Redis instance to the newer Redis version specified in the
567
+ # request.
568
+ #
569
+ # @overload upgrade_instance(request, options = nil)
570
+ # Pass arguments to `upgrade_instance` via a request object, either of type
571
+ # {::Google::Cloud::Redis::V1::UpgradeInstanceRequest} or an equivalent Hash.
572
+ #
573
+ # @param request [::Google::Cloud::Redis::V1::UpgradeInstanceRequest, ::Hash]
574
+ # A request object representing the call parameters. Required. To specify no
575
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
576
+ # @param options [::Gapic::CallOptions, ::Hash]
577
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
578
+ #
579
+ # @overload upgrade_instance(name: nil, redis_version: nil)
580
+ # Pass arguments to `upgrade_instance` via keyword arguments. Note that at
581
+ # least one keyword argument is required. To specify no parameters, or to keep all
582
+ # the default parameter values, pass an empty Hash as a request object (see above).
583
+ #
584
+ # @param name [::String]
585
+ # Required. Redis instance resource name using the form:
586
+ # `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
587
+ # where `location_id` refers to a GCP region.
588
+ # @param redis_version [::String]
589
+ # Required. Specifies the target version of Redis software to upgrade to.
590
+ # @yield [result, operation] Access the result along with the TransportOperation object
591
+ # @yieldparam result [::Gapic::Operation]
592
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
593
+ #
594
+ # @return [::Gapic::Operation]
595
+ #
596
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
597
+ def upgrade_instance request, options = nil
598
+ raise ::ArgumentError, "request must be provided" if request.nil?
599
+
600
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Redis::V1::UpgradeInstanceRequest
601
+
602
+ # Converts hash and nil to an options object
603
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
604
+
605
+ # Customize the options with defaults
606
+ call_metadata = @config.rpcs.upgrade_instance.metadata.to_h
607
+
608
+ # Set x-goog-api-client and x-goog-user-project headers
609
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
610
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
611
+ gapic_version: ::Google::Cloud::Redis::V1::VERSION,
612
+ transports_version_send: [:rest]
613
+
614
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
615
+
616
+ options.apply_defaults timeout: @config.rpcs.upgrade_instance.timeout,
617
+ metadata: call_metadata,
618
+ retry_policy: @config.rpcs.upgrade_instance.retry_policy
619
+
620
+ options.apply_defaults timeout: @config.timeout,
621
+ metadata: @config.metadata,
622
+ retry_policy: @config.retry_policy
623
+
624
+ @cloud_redis_stub.upgrade_instance request, options do |result, operation|
625
+ result = ::Gapic::Operation.new result, @operations_client, options: options
626
+ yield result, operation if block_given?
627
+ return result
628
+ end
629
+ rescue ::Gapic::Rest::Error => e
630
+ raise ::Google::Cloud::Error.from_error(e)
631
+ end
632
+
633
+ ##
634
+ # Import a Redis RDB snapshot file from Cloud Storage into a Redis instance.
635
+ #
636
+ # Redis may stop serving during this operation. Instance state will be
637
+ # IMPORTING for entire operation. When complete, the instance will contain
638
+ # only data from the imported file.
639
+ #
640
+ # The returned operation is automatically deleted after a few hours, so
641
+ # there is no need to call DeleteOperation.
642
+ #
643
+ # @overload import_instance(request, options = nil)
644
+ # Pass arguments to `import_instance` via a request object, either of type
645
+ # {::Google::Cloud::Redis::V1::ImportInstanceRequest} or an equivalent Hash.
646
+ #
647
+ # @param request [::Google::Cloud::Redis::V1::ImportInstanceRequest, ::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 import_instance(name: nil, input_config: nil)
654
+ # Pass arguments to `import_instance` 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. Redis instance resource name using the form:
660
+ # `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
661
+ # where `location_id` refers to a GCP region.
662
+ # @param input_config [::Google::Cloud::Redis::V1::InputConfig, ::Hash]
663
+ # Required. Specify data to be imported.
664
+ # @yield [result, operation] Access the result along with the TransportOperation object
665
+ # @yieldparam result [::Gapic::Operation]
666
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
667
+ #
668
+ # @return [::Gapic::Operation]
669
+ #
670
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
671
+ def import_instance request, options = nil
672
+ raise ::ArgumentError, "request must be provided" if request.nil?
673
+
674
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Redis::V1::ImportInstanceRequest
675
+
676
+ # Converts hash and nil to an options object
677
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
678
+
679
+ # Customize the options with defaults
680
+ call_metadata = @config.rpcs.import_instance.metadata.to_h
681
+
682
+ # Set x-goog-api-client and x-goog-user-project headers
683
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
684
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
685
+ gapic_version: ::Google::Cloud::Redis::V1::VERSION,
686
+ transports_version_send: [:rest]
687
+
688
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
689
+
690
+ options.apply_defaults timeout: @config.rpcs.import_instance.timeout,
691
+ metadata: call_metadata,
692
+ retry_policy: @config.rpcs.import_instance.retry_policy
693
+
694
+ options.apply_defaults timeout: @config.timeout,
695
+ metadata: @config.metadata,
696
+ retry_policy: @config.retry_policy
697
+
698
+ @cloud_redis_stub.import_instance request, options do |result, operation|
699
+ result = ::Gapic::Operation.new result, @operations_client, options: options
700
+ yield result, operation if block_given?
701
+ return result
702
+ end
703
+ rescue ::Gapic::Rest::Error => e
704
+ raise ::Google::Cloud::Error.from_error(e)
705
+ end
706
+
707
+ ##
708
+ # Export Redis instance data into a Redis RDB format file in Cloud Storage.
709
+ #
710
+ # Redis will continue serving during this operation.
711
+ #
712
+ # The returned operation is automatically deleted after a few hours, so
713
+ # there is no need to call DeleteOperation.
714
+ #
715
+ # @overload export_instance(request, options = nil)
716
+ # Pass arguments to `export_instance` via a request object, either of type
717
+ # {::Google::Cloud::Redis::V1::ExportInstanceRequest} or an equivalent Hash.
718
+ #
719
+ # @param request [::Google::Cloud::Redis::V1::ExportInstanceRequest, ::Hash]
720
+ # A request object representing the call parameters. Required. To specify no
721
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
722
+ # @param options [::Gapic::CallOptions, ::Hash]
723
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
724
+ #
725
+ # @overload export_instance(name: nil, output_config: nil)
726
+ # Pass arguments to `export_instance` via keyword arguments. Note that at
727
+ # least one keyword argument is required. To specify no parameters, or to keep all
728
+ # the default parameter values, pass an empty Hash as a request object (see above).
729
+ #
730
+ # @param name [::String]
731
+ # Required. Redis instance resource name using the form:
732
+ # `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
733
+ # where `location_id` refers to a GCP region.
734
+ # @param output_config [::Google::Cloud::Redis::V1::OutputConfig, ::Hash]
735
+ # Required. Specify data to be exported.
736
+ # @yield [result, operation] Access the result along with the TransportOperation object
737
+ # @yieldparam result [::Gapic::Operation]
738
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
739
+ #
740
+ # @return [::Gapic::Operation]
741
+ #
742
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
743
+ def export_instance request, options = nil
744
+ raise ::ArgumentError, "request must be provided" if request.nil?
745
+
746
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Redis::V1::ExportInstanceRequest
747
+
748
+ # Converts hash and nil to an options object
749
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
750
+
751
+ # Customize the options with defaults
752
+ call_metadata = @config.rpcs.export_instance.metadata.to_h
753
+
754
+ # Set x-goog-api-client and x-goog-user-project headers
755
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
756
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
757
+ gapic_version: ::Google::Cloud::Redis::V1::VERSION,
758
+ transports_version_send: [:rest]
759
+
760
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
761
+
762
+ options.apply_defaults timeout: @config.rpcs.export_instance.timeout,
763
+ metadata: call_metadata,
764
+ retry_policy: @config.rpcs.export_instance.retry_policy
765
+
766
+ options.apply_defaults timeout: @config.timeout,
767
+ metadata: @config.metadata,
768
+ retry_policy: @config.retry_policy
769
+
770
+ @cloud_redis_stub.export_instance request, options do |result, operation|
771
+ result = ::Gapic::Operation.new result, @operations_client, options: options
772
+ yield result, operation if block_given?
773
+ return result
774
+ end
775
+ rescue ::Gapic::Rest::Error => e
776
+ raise ::Google::Cloud::Error.from_error(e)
777
+ end
778
+
779
+ ##
780
+ # Initiates a failover of the primary node to current replica node for a
781
+ # specific STANDARD tier Cloud Memorystore for Redis instance.
782
+ #
783
+ # @overload failover_instance(request, options = nil)
784
+ # Pass arguments to `failover_instance` via a request object, either of type
785
+ # {::Google::Cloud::Redis::V1::FailoverInstanceRequest} or an equivalent Hash.
786
+ #
787
+ # @param request [::Google::Cloud::Redis::V1::FailoverInstanceRequest, ::Hash]
788
+ # A request object representing the call parameters. Required. To specify no
789
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
790
+ # @param options [::Gapic::CallOptions, ::Hash]
791
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
792
+ #
793
+ # @overload failover_instance(name: nil, data_protection_mode: nil)
794
+ # Pass arguments to `failover_instance` via keyword arguments. Note that at
795
+ # least one keyword argument is required. To specify no parameters, or to keep all
796
+ # the default parameter values, pass an empty Hash as a request object (see above).
797
+ #
798
+ # @param name [::String]
799
+ # Required. Redis instance resource name using the form:
800
+ # `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
801
+ # where `location_id` refers to a GCP region.
802
+ # @param data_protection_mode [::Google::Cloud::Redis::V1::FailoverInstanceRequest::DataProtectionMode]
803
+ # Optional. Available data protection modes that the user can choose. If it's
804
+ # unspecified, data protection mode will be LIMITED_DATA_LOSS by default.
805
+ # @yield [result, operation] Access the result along with the TransportOperation object
806
+ # @yieldparam result [::Gapic::Operation]
807
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
808
+ #
809
+ # @return [::Gapic::Operation]
810
+ #
811
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
812
+ def failover_instance request, options = nil
813
+ raise ::ArgumentError, "request must be provided" if request.nil?
814
+
815
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Redis::V1::FailoverInstanceRequest
816
+
817
+ # Converts hash and nil to an options object
818
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
819
+
820
+ # Customize the options with defaults
821
+ call_metadata = @config.rpcs.failover_instance.metadata.to_h
822
+
823
+ # Set x-goog-api-client and x-goog-user-project headers
824
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
825
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
826
+ gapic_version: ::Google::Cloud::Redis::V1::VERSION,
827
+ transports_version_send: [:rest]
828
+
829
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
830
+
831
+ options.apply_defaults timeout: @config.rpcs.failover_instance.timeout,
832
+ metadata: call_metadata,
833
+ retry_policy: @config.rpcs.failover_instance.retry_policy
834
+
835
+ options.apply_defaults timeout: @config.timeout,
836
+ metadata: @config.metadata,
837
+ retry_policy: @config.retry_policy
838
+
839
+ @cloud_redis_stub.failover_instance request, options do |result, operation|
840
+ result = ::Gapic::Operation.new result, @operations_client, options: options
841
+ yield result, operation if block_given?
842
+ return result
843
+ end
844
+ rescue ::Gapic::Rest::Error => e
845
+ raise ::Google::Cloud::Error.from_error(e)
846
+ end
847
+
848
+ ##
849
+ # Deletes a specific Redis instance. Instance stops serving and data is
850
+ # deleted.
851
+ #
852
+ # @overload delete_instance(request, options = nil)
853
+ # Pass arguments to `delete_instance` via a request object, either of type
854
+ # {::Google::Cloud::Redis::V1::DeleteInstanceRequest} or an equivalent Hash.
855
+ #
856
+ # @param request [::Google::Cloud::Redis::V1::DeleteInstanceRequest, ::Hash]
857
+ # A request object representing the call parameters. Required. To specify no
858
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
859
+ # @param options [::Gapic::CallOptions, ::Hash]
860
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
861
+ #
862
+ # @overload delete_instance(name: nil)
863
+ # Pass arguments to `delete_instance` via keyword arguments. Note that at
864
+ # least one keyword argument is required. To specify no parameters, or to keep all
865
+ # the default parameter values, pass an empty Hash as a request object (see above).
866
+ #
867
+ # @param name [::String]
868
+ # Required. Redis instance resource name using the form:
869
+ # `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
870
+ # where `location_id` refers to a GCP region.
871
+ # @yield [result, operation] Access the result along with the TransportOperation object
872
+ # @yieldparam result [::Gapic::Operation]
873
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
874
+ #
875
+ # @return [::Gapic::Operation]
876
+ #
877
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
878
+ def delete_instance request, options = nil
879
+ raise ::ArgumentError, "request must be provided" if request.nil?
880
+
881
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Redis::V1::DeleteInstanceRequest
882
+
883
+ # Converts hash and nil to an options object
884
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
885
+
886
+ # Customize the options with defaults
887
+ call_metadata = @config.rpcs.delete_instance.metadata.to_h
888
+
889
+ # Set x-goog-api-client and x-goog-user-project headers
890
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
891
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
892
+ gapic_version: ::Google::Cloud::Redis::V1::VERSION,
893
+ transports_version_send: [:rest]
894
+
895
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
896
+
897
+ options.apply_defaults timeout: @config.rpcs.delete_instance.timeout,
898
+ metadata: call_metadata,
899
+ retry_policy: @config.rpcs.delete_instance.retry_policy
900
+
901
+ options.apply_defaults timeout: @config.timeout,
902
+ metadata: @config.metadata,
903
+ retry_policy: @config.retry_policy
904
+
905
+ @cloud_redis_stub.delete_instance request, options do |result, operation|
906
+ result = ::Gapic::Operation.new result, @operations_client, options: options
907
+ yield result, operation if block_given?
908
+ return result
909
+ end
910
+ rescue ::Gapic::Rest::Error => e
911
+ raise ::Google::Cloud::Error.from_error(e)
912
+ end
913
+
914
+ ##
915
+ # Reschedule maintenance for a given instance in a given project and
916
+ # location.
917
+ #
918
+ # @overload reschedule_maintenance(request, options = nil)
919
+ # Pass arguments to `reschedule_maintenance` via a request object, either of type
920
+ # {::Google::Cloud::Redis::V1::RescheduleMaintenanceRequest} or an equivalent Hash.
921
+ #
922
+ # @param request [::Google::Cloud::Redis::V1::RescheduleMaintenanceRequest, ::Hash]
923
+ # A request object representing the call parameters. Required. To specify no
924
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
925
+ # @param options [::Gapic::CallOptions, ::Hash]
926
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
927
+ #
928
+ # @overload reschedule_maintenance(name: nil, reschedule_type: nil, schedule_time: nil)
929
+ # Pass arguments to `reschedule_maintenance` via keyword arguments. Note that at
930
+ # least one keyword argument is required. To specify no parameters, or to keep all
931
+ # the default parameter values, pass an empty Hash as a request object (see above).
932
+ #
933
+ # @param name [::String]
934
+ # Required. Redis instance resource name using the form:
935
+ # `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
936
+ # where `location_id` refers to a GCP region.
937
+ # @param reschedule_type [::Google::Cloud::Redis::V1::RescheduleMaintenanceRequest::RescheduleType]
938
+ # Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as well.
939
+ # @param schedule_time [::Google::Protobuf::Timestamp, ::Hash]
940
+ # Optional. Timestamp when the maintenance shall be rescheduled to if
941
+ # reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for
942
+ # example `2012-11-15T16:19:00.094Z`.
943
+ # @yield [result, operation] Access the result along with the TransportOperation object
944
+ # @yieldparam result [::Gapic::Operation]
945
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
946
+ #
947
+ # @return [::Gapic::Operation]
948
+ #
949
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
950
+ def reschedule_maintenance request, options = nil
951
+ raise ::ArgumentError, "request must be provided" if request.nil?
952
+
953
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Redis::V1::RescheduleMaintenanceRequest
954
+
955
+ # Converts hash and nil to an options object
956
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
957
+
958
+ # Customize the options with defaults
959
+ call_metadata = @config.rpcs.reschedule_maintenance.metadata.to_h
960
+
961
+ # Set x-goog-api-client and x-goog-user-project headers
962
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
963
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
964
+ gapic_version: ::Google::Cloud::Redis::V1::VERSION,
965
+ transports_version_send: [:rest]
966
+
967
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
968
+
969
+ options.apply_defaults timeout: @config.rpcs.reschedule_maintenance.timeout,
970
+ metadata: call_metadata,
971
+ retry_policy: @config.rpcs.reschedule_maintenance.retry_policy
972
+
973
+ options.apply_defaults timeout: @config.timeout,
974
+ metadata: @config.metadata,
975
+ retry_policy: @config.retry_policy
976
+
977
+ @cloud_redis_stub.reschedule_maintenance request, options do |result, operation|
978
+ result = ::Gapic::Operation.new result, @operations_client, options: options
979
+ yield result, operation if block_given?
980
+ return result
981
+ end
982
+ rescue ::Gapic::Rest::Error => e
983
+ raise ::Google::Cloud::Error.from_error(e)
984
+ end
985
+
986
+ ##
987
+ # Configuration class for the CloudRedis REST API.
988
+ #
989
+ # This class represents the configuration for CloudRedis REST,
990
+ # providing control over timeouts, retry behavior, logging, transport
991
+ # parameters, and other low-level controls. Certain parameters can also be
992
+ # applied individually to specific RPCs. See
993
+ # {::Google::Cloud::Redis::V1::CloudRedis::Rest::Client::Configuration::Rpcs}
994
+ # for a list of RPCs that can be configured independently.
995
+ #
996
+ # Configuration can be applied globally to all clients, or to a single client
997
+ # on construction.
998
+ #
999
+ # @example
1000
+ #
1001
+ # # Modify the global config, setting the timeout for
1002
+ # # list_instances to 20 seconds,
1003
+ # # and all remaining timeouts to 10 seconds.
1004
+ # ::Google::Cloud::Redis::V1::CloudRedis::Rest::Client.configure do |config|
1005
+ # config.timeout = 10.0
1006
+ # config.rpcs.list_instances.timeout = 20.0
1007
+ # end
1008
+ #
1009
+ # # Apply the above configuration only to a new client.
1010
+ # client = ::Google::Cloud::Redis::V1::CloudRedis::Rest::Client.new do |config|
1011
+ # config.timeout = 10.0
1012
+ # config.rpcs.list_instances.timeout = 20.0
1013
+ # end
1014
+ #
1015
+ # @!attribute [rw] endpoint
1016
+ # The hostname or hostname:port of the service endpoint.
1017
+ # Defaults to `"redis.googleapis.com"`.
1018
+ # @return [::String]
1019
+ # @!attribute [rw] credentials
1020
+ # Credentials to send with calls. You may provide any of the following types:
1021
+ # * (`String`) The path to a service account key file in JSON format
1022
+ # * (`Hash`) A service account key as a Hash
1023
+ # * (`Google::Auth::Credentials`) A googleauth credentials object
1024
+ # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
1025
+ # * (`Signet::OAuth2::Client`) A signet oauth2 client object
1026
+ # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
1027
+ # * (`nil`) indicating no credentials
1028
+ # @return [::Object]
1029
+ # @!attribute [rw] scope
1030
+ # The OAuth scopes
1031
+ # @return [::Array<::String>]
1032
+ # @!attribute [rw] lib_name
1033
+ # The library name as recorded in instrumentation and logging
1034
+ # @return [::String]
1035
+ # @!attribute [rw] lib_version
1036
+ # The library version as recorded in instrumentation and logging
1037
+ # @return [::String]
1038
+ # @!attribute [rw] timeout
1039
+ # The call timeout in seconds.
1040
+ # @return [::Numeric]
1041
+ # @!attribute [rw] metadata
1042
+ # Additional headers to be sent with the call.
1043
+ # @return [::Hash{::Symbol=>::String}]
1044
+ # @!attribute [rw] retry_policy
1045
+ # The retry policy. The value is a hash with the following keys:
1046
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
1047
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
1048
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
1049
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
1050
+ # trigger a retry.
1051
+ # @return [::Hash]
1052
+ # @!attribute [rw] quota_project
1053
+ # A separate project against which to charge quota.
1054
+ # @return [::String]
1055
+ #
1056
+ class Configuration
1057
+ extend ::Gapic::Config
1058
+
1059
+ config_attr :endpoint, "redis.googleapis.com", ::String
1060
+ config_attr :credentials, nil do |value|
1061
+ allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
1062
+ allowed.any? { |klass| klass === value }
1063
+ end
1064
+ config_attr :scope, nil, ::String, ::Array, nil
1065
+ config_attr :lib_name, nil, ::String, nil
1066
+ config_attr :lib_version, nil, ::String, nil
1067
+ config_attr :timeout, nil, ::Numeric, nil
1068
+ config_attr :metadata, nil, ::Hash, nil
1069
+ config_attr :retry_policy, nil, ::Hash, ::Proc, nil
1070
+ config_attr :quota_project, nil, ::String, nil
1071
+
1072
+ # @private
1073
+ def initialize parent_config = nil
1074
+ @parent_config = parent_config unless parent_config.nil?
1075
+
1076
+ yield self if block_given?
1077
+ end
1078
+
1079
+ ##
1080
+ # Configurations for individual RPCs
1081
+ # @return [Rpcs]
1082
+ #
1083
+ def rpcs
1084
+ @rpcs ||= begin
1085
+ parent_rpcs = nil
1086
+ parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs)
1087
+ Rpcs.new parent_rpcs
1088
+ end
1089
+ end
1090
+
1091
+ ##
1092
+ # Configuration RPC class for the CloudRedis API.
1093
+ #
1094
+ # Includes fields providing the configuration for each RPC in this service.
1095
+ # Each configuration object is of type `Gapic::Config::Method` and includes
1096
+ # the following configuration fields:
1097
+ #
1098
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
1099
+ # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers
1100
+ # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
1101
+ # include the following keys:
1102
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
1103
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
1104
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
1105
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
1106
+ # trigger a retry.
1107
+ #
1108
+ class Rpcs
1109
+ ##
1110
+ # RPC-specific configuration for `list_instances`
1111
+ # @return [::Gapic::Config::Method]
1112
+ #
1113
+ attr_reader :list_instances
1114
+ ##
1115
+ # RPC-specific configuration for `get_instance`
1116
+ # @return [::Gapic::Config::Method]
1117
+ #
1118
+ attr_reader :get_instance
1119
+ ##
1120
+ # RPC-specific configuration for `get_instance_auth_string`
1121
+ # @return [::Gapic::Config::Method]
1122
+ #
1123
+ attr_reader :get_instance_auth_string
1124
+ ##
1125
+ # RPC-specific configuration for `create_instance`
1126
+ # @return [::Gapic::Config::Method]
1127
+ #
1128
+ attr_reader :create_instance
1129
+ ##
1130
+ # RPC-specific configuration for `update_instance`
1131
+ # @return [::Gapic::Config::Method]
1132
+ #
1133
+ attr_reader :update_instance
1134
+ ##
1135
+ # RPC-specific configuration for `upgrade_instance`
1136
+ # @return [::Gapic::Config::Method]
1137
+ #
1138
+ attr_reader :upgrade_instance
1139
+ ##
1140
+ # RPC-specific configuration for `import_instance`
1141
+ # @return [::Gapic::Config::Method]
1142
+ #
1143
+ attr_reader :import_instance
1144
+ ##
1145
+ # RPC-specific configuration for `export_instance`
1146
+ # @return [::Gapic::Config::Method]
1147
+ #
1148
+ attr_reader :export_instance
1149
+ ##
1150
+ # RPC-specific configuration for `failover_instance`
1151
+ # @return [::Gapic::Config::Method]
1152
+ #
1153
+ attr_reader :failover_instance
1154
+ ##
1155
+ # RPC-specific configuration for `delete_instance`
1156
+ # @return [::Gapic::Config::Method]
1157
+ #
1158
+ attr_reader :delete_instance
1159
+ ##
1160
+ # RPC-specific configuration for `reschedule_maintenance`
1161
+ # @return [::Gapic::Config::Method]
1162
+ #
1163
+ attr_reader :reschedule_maintenance
1164
+
1165
+ # @private
1166
+ def initialize parent_rpcs = nil
1167
+ list_instances_config = parent_rpcs.list_instances if parent_rpcs.respond_to? :list_instances
1168
+ @list_instances = ::Gapic::Config::Method.new list_instances_config
1169
+ get_instance_config = parent_rpcs.get_instance if parent_rpcs.respond_to? :get_instance
1170
+ @get_instance = ::Gapic::Config::Method.new get_instance_config
1171
+ get_instance_auth_string_config = parent_rpcs.get_instance_auth_string if parent_rpcs.respond_to? :get_instance_auth_string
1172
+ @get_instance_auth_string = ::Gapic::Config::Method.new get_instance_auth_string_config
1173
+ create_instance_config = parent_rpcs.create_instance if parent_rpcs.respond_to? :create_instance
1174
+ @create_instance = ::Gapic::Config::Method.new create_instance_config
1175
+ update_instance_config = parent_rpcs.update_instance if parent_rpcs.respond_to? :update_instance
1176
+ @update_instance = ::Gapic::Config::Method.new update_instance_config
1177
+ upgrade_instance_config = parent_rpcs.upgrade_instance if parent_rpcs.respond_to? :upgrade_instance
1178
+ @upgrade_instance = ::Gapic::Config::Method.new upgrade_instance_config
1179
+ import_instance_config = parent_rpcs.import_instance if parent_rpcs.respond_to? :import_instance
1180
+ @import_instance = ::Gapic::Config::Method.new import_instance_config
1181
+ export_instance_config = parent_rpcs.export_instance if parent_rpcs.respond_to? :export_instance
1182
+ @export_instance = ::Gapic::Config::Method.new export_instance_config
1183
+ failover_instance_config = parent_rpcs.failover_instance if parent_rpcs.respond_to? :failover_instance
1184
+ @failover_instance = ::Gapic::Config::Method.new failover_instance_config
1185
+ delete_instance_config = parent_rpcs.delete_instance if parent_rpcs.respond_to? :delete_instance
1186
+ @delete_instance = ::Gapic::Config::Method.new delete_instance_config
1187
+ reschedule_maintenance_config = parent_rpcs.reschedule_maintenance if parent_rpcs.respond_to? :reschedule_maintenance
1188
+ @reschedule_maintenance = ::Gapic::Config::Method.new reschedule_maintenance_config
1189
+
1190
+ yield self if block_given?
1191
+ end
1192
+ end
1193
+ end
1194
+ end
1195
+ end
1196
+ end
1197
+ end
1198
+ end
1199
+ end
1200
+ end