google-cloud-memcache-v1 0.3.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,963 @@
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/memcache/v1/cloud_memcache_pb"
21
+ require "google/cloud/memcache/v1/cloud_memcache/rest/service_stub"
22
+ require "google/cloud/location/rest"
23
+
24
+ module Google
25
+ module Cloud
26
+ module Memcache
27
+ module V1
28
+ module CloudMemcache
29
+ module Rest
30
+ ##
31
+ # REST client for the CloudMemcache service.
32
+ #
33
+ # Configures and manages Cloud Memorystore for Memcached instances.
34
+ #
35
+ #
36
+ # The `memcache.googleapis.com` service implements the Google Cloud Memorystore
37
+ # for Memcached API and defines the following resource model for managing
38
+ # Memorystore Memcached (also called Memcached below) 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 Memcached instances, named:
42
+ # `/instances/*`
43
+ # * As such, Memcached instances are resources of the form:
44
+ # `/projects/{project_id}/locations/{location_id}/instances/{instance_id}`
45
+ #
46
+ # Note that location_id must be a GCP `region`; for example:
47
+ # * `projects/my-memcached-project/locations/us-central1/instances/my-memcached`
48
+ #
49
+ class Client
50
+ include Paths
51
+
52
+ # @private
53
+ attr_reader :cloud_memcache_stub
54
+
55
+ ##
56
+ # Configure the CloudMemcache Client class.
57
+ #
58
+ # See {::Google::Cloud::Memcache::V1::CloudMemcache::Rest::Client::Configuration}
59
+ # for a description of the configuration fields.
60
+ #
61
+ # @example
62
+ #
63
+ # # Modify the configuration for all CloudMemcache clients
64
+ # ::Google::Cloud::Memcache::V1::CloudMemcache::Rest::Client.configure do |config|
65
+ # config.timeout = 10.0
66
+ # end
67
+ #
68
+ # @yield [config] Configure the Client client.
69
+ # @yieldparam config [Client::Configuration]
70
+ #
71
+ # @return [Client::Configuration]
72
+ #
73
+ def self.configure
74
+ @configure ||= begin
75
+ namespace = ["Google", "Cloud", "Memcache", "V1"]
76
+ parent_config = while namespace.any?
77
+ parent_name = namespace.join "::"
78
+ parent_const = const_get parent_name
79
+ break parent_const.configure if parent_const.respond_to? :configure
80
+ namespace.pop
81
+ end
82
+ default_config = Client::Configuration.new parent_config
83
+
84
+ default_config.rpcs.list_instances.timeout = 1200.0
85
+
86
+ default_config.rpcs.get_instance.timeout = 1200.0
87
+
88
+ default_config.rpcs.create_instance.timeout = 1200.0
89
+
90
+ default_config.rpcs.update_instance.timeout = 1200.0
91
+
92
+ default_config.rpcs.update_parameters.timeout = 1200.0
93
+
94
+ default_config.rpcs.delete_instance.timeout = 1200.0
95
+
96
+ default_config.rpcs.apply_parameters.timeout = 1200.0
97
+
98
+ default_config.rpcs.reschedule_maintenance.timeout = 1200.0
99
+
100
+ default_config
101
+ end
102
+ yield @configure if block_given?
103
+ @configure
104
+ end
105
+
106
+ ##
107
+ # Configure the CloudMemcache Client instance.
108
+ #
109
+ # The configuration is set to the derived mode, meaning that values can be changed,
110
+ # but structural changes (adding new fields, etc.) are not allowed. Structural changes
111
+ # should be made on {Client.configure}.
112
+ #
113
+ # See {::Google::Cloud::Memcache::V1::CloudMemcache::Rest::Client::Configuration}
114
+ # for a description of the configuration fields.
115
+ #
116
+ # @yield [config] Configure the Client client.
117
+ # @yieldparam config [Client::Configuration]
118
+ #
119
+ # @return [Client::Configuration]
120
+ #
121
+ def configure
122
+ yield @config if block_given?
123
+ @config
124
+ end
125
+
126
+ ##
127
+ # Create a new CloudMemcache REST client object.
128
+ #
129
+ # @example
130
+ #
131
+ # # Create a client using the default configuration
132
+ # client = ::Google::Cloud::Memcache::V1::CloudMemcache::Rest::Client.new
133
+ #
134
+ # # Create a client using a custom configuration
135
+ # client = ::Google::Cloud::Memcache::V1::CloudMemcache::Rest::Client.new do |config|
136
+ # config.timeout = 10.0
137
+ # end
138
+ #
139
+ # @yield [config] Configure the CloudMemcache client.
140
+ # @yieldparam config [Client::Configuration]
141
+ #
142
+ def initialize
143
+ # Create the configuration object
144
+ @config = Configuration.new Client.configure
145
+
146
+ # Yield the configuration if needed
147
+ yield @config if block_given?
148
+
149
+ # Create credentials
150
+ credentials = @config.credentials
151
+ # Use self-signed JWT if the endpoint is unchanged from default,
152
+ # but only if the default endpoint does not have a region prefix.
153
+ enable_self_signed_jwt = @config.endpoint == Client.configure.endpoint &&
154
+ !@config.endpoint.split(".").first.include?("-")
155
+ credentials ||= Credentials.default scope: @config.scope,
156
+ enable_self_signed_jwt: enable_self_signed_jwt
157
+ if credentials.is_a?(::String) || credentials.is_a?(::Hash)
158
+ credentials = Credentials.new credentials, scope: @config.scope
159
+ end
160
+
161
+ @quota_project_id = @config.quota_project
162
+ @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
163
+
164
+ @operations_client = ::Google::Cloud::Memcache::V1::CloudMemcache::Rest::Operations.new do |config|
165
+ config.credentials = credentials
166
+ config.quota_project = @quota_project_id
167
+ config.endpoint = @config.endpoint
168
+ end
169
+
170
+ @location_client = Google::Cloud::Location::Locations::Rest::Client.new do |config|
171
+ config.credentials = credentials
172
+ config.quota_project = @quota_project_id
173
+ config.endpoint = @config.endpoint
174
+ config.bindings_override = @config.bindings_override
175
+ end
176
+
177
+ @cloud_memcache_stub = ::Google::Cloud::Memcache::V1::CloudMemcache::Rest::ServiceStub.new endpoint: @config.endpoint, credentials: credentials
178
+ end
179
+
180
+ ##
181
+ # Get the associated client for long-running operations.
182
+ #
183
+ # @return [::Google::Cloud::Memcache::V1::CloudMemcache::Rest::Operations]
184
+ #
185
+ attr_reader :operations_client
186
+
187
+ ##
188
+ # Get the associated client for mix-in of the Locations.
189
+ #
190
+ # @return [Google::Cloud::Location::Locations::Rest::Client]
191
+ #
192
+ attr_reader :location_client
193
+
194
+ # Service calls
195
+
196
+ ##
197
+ # Lists Instances in a given location.
198
+ #
199
+ # @overload list_instances(request, options = nil)
200
+ # Pass arguments to `list_instances` via a request object, either of type
201
+ # {::Google::Cloud::Memcache::V1::ListInstancesRequest} or an equivalent Hash.
202
+ #
203
+ # @param request [::Google::Cloud::Memcache::V1::ListInstancesRequest, ::Hash]
204
+ # A request object representing the call parameters. Required. To specify no
205
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
206
+ # @param options [::Gapic::CallOptions, ::Hash]
207
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
208
+ #
209
+ # @overload list_instances(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil)
210
+ # Pass arguments to `list_instances` via keyword arguments. Note that at
211
+ # least one keyword argument is required. To specify no parameters, or to keep all
212
+ # the default parameter values, pass an empty Hash as a request object (see above).
213
+ #
214
+ # @param parent [::String]
215
+ # Required. The resource name of the instance location using the form:
216
+ # `projects/{project_id}/locations/{location_id}`
217
+ # where `location_id` refers to a GCP region
218
+ # @param page_size [::Integer]
219
+ # The maximum number of items to return.
220
+ #
221
+ # If not specified, a default value of 1000 will be used by the service.
222
+ # Regardless of the `page_size` value, the response may include a partial
223
+ # list and a caller should only rely on response's
224
+ # {::Google::Cloud::Memcache::V1::ListInstancesResponse#next_page_token `next_page_token`}
225
+ # to determine if there are more instances left to be queried.
226
+ # @param page_token [::String]
227
+ # The `next_page_token` value returned from a previous List request, if any.
228
+ # @param filter [::String]
229
+ # List filter. For example, exclude all Memcached instances with name as
230
+ # my-instance by specifying `"name != my-instance"`.
231
+ # @param order_by [::String]
232
+ # Sort results. Supported values are "name", "name desc" or "" (unsorted).
233
+ # @yield [result, operation] Access the result along with the TransportOperation object
234
+ # @yieldparam result [::Google::Cloud::Memcache::V1::ListInstancesResponse]
235
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
236
+ #
237
+ # @return [::Google::Cloud::Memcache::V1::ListInstancesResponse]
238
+ #
239
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
240
+ def list_instances request, options = nil
241
+ raise ::ArgumentError, "request must be provided" if request.nil?
242
+
243
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Memcache::V1::ListInstancesRequest
244
+
245
+ # Converts hash and nil to an options object
246
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
247
+
248
+ # Customize the options with defaults
249
+ call_metadata = @config.rpcs.list_instances.metadata.to_h
250
+
251
+ # Set x-goog-api-client and x-goog-user-project headers
252
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
253
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
254
+ gapic_version: ::Google::Cloud::Memcache::V1::VERSION,
255
+ transports_version_send: [:rest]
256
+
257
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
258
+
259
+ options.apply_defaults timeout: @config.rpcs.list_instances.timeout,
260
+ metadata: call_metadata,
261
+ retry_policy: @config.rpcs.list_instances.retry_policy
262
+
263
+ options.apply_defaults timeout: @config.timeout,
264
+ metadata: @config.metadata,
265
+ retry_policy: @config.retry_policy
266
+
267
+ @cloud_memcache_stub.list_instances request, options do |result, operation|
268
+ yield result, operation if block_given?
269
+ return result
270
+ end
271
+ rescue ::Gapic::Rest::Error => e
272
+ raise ::Google::Cloud::Error.from_error(e)
273
+ end
274
+
275
+ ##
276
+ # Gets details of a single Instance.
277
+ #
278
+ # @overload get_instance(request, options = nil)
279
+ # Pass arguments to `get_instance` via a request object, either of type
280
+ # {::Google::Cloud::Memcache::V1::GetInstanceRequest} or an equivalent Hash.
281
+ #
282
+ # @param request [::Google::Cloud::Memcache::V1::GetInstanceRequest, ::Hash]
283
+ # A request object representing the call parameters. Required. To specify no
284
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
285
+ # @param options [::Gapic::CallOptions, ::Hash]
286
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
287
+ #
288
+ # @overload get_instance(name: nil)
289
+ # Pass arguments to `get_instance` via keyword arguments. Note that at
290
+ # least one keyword argument is required. To specify no parameters, or to keep all
291
+ # the default parameter values, pass an empty Hash as a request object (see above).
292
+ #
293
+ # @param name [::String]
294
+ # Required. Memcached instance resource name in the format:
295
+ # `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
296
+ # where `location_id` refers to a GCP region
297
+ # @yield [result, operation] Access the result along with the TransportOperation object
298
+ # @yieldparam result [::Google::Cloud::Memcache::V1::Instance]
299
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
300
+ #
301
+ # @return [::Google::Cloud::Memcache::V1::Instance]
302
+ #
303
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
304
+ def get_instance request, options = nil
305
+ raise ::ArgumentError, "request must be provided" if request.nil?
306
+
307
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Memcache::V1::GetInstanceRequest
308
+
309
+ # Converts hash and nil to an options object
310
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
311
+
312
+ # Customize the options with defaults
313
+ call_metadata = @config.rpcs.get_instance.metadata.to_h
314
+
315
+ # Set x-goog-api-client and x-goog-user-project headers
316
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
317
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
318
+ gapic_version: ::Google::Cloud::Memcache::V1::VERSION,
319
+ transports_version_send: [:rest]
320
+
321
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
322
+
323
+ options.apply_defaults timeout: @config.rpcs.get_instance.timeout,
324
+ metadata: call_metadata,
325
+ retry_policy: @config.rpcs.get_instance.retry_policy
326
+
327
+ options.apply_defaults timeout: @config.timeout,
328
+ metadata: @config.metadata,
329
+ retry_policy: @config.retry_policy
330
+
331
+ @cloud_memcache_stub.get_instance request, options do |result, operation|
332
+ yield result, operation if block_given?
333
+ return result
334
+ end
335
+ rescue ::Gapic::Rest::Error => e
336
+ raise ::Google::Cloud::Error.from_error(e)
337
+ end
338
+
339
+ ##
340
+ # Creates a new Instance in a given location.
341
+ #
342
+ # @overload create_instance(request, options = nil)
343
+ # Pass arguments to `create_instance` via a request object, either of type
344
+ # {::Google::Cloud::Memcache::V1::CreateInstanceRequest} or an equivalent Hash.
345
+ #
346
+ # @param request [::Google::Cloud::Memcache::V1::CreateInstanceRequest, ::Hash]
347
+ # A request object representing the call parameters. Required. To specify no
348
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
349
+ # @param options [::Gapic::CallOptions, ::Hash]
350
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
351
+ #
352
+ # @overload create_instance(parent: nil, instance_id: nil, instance: nil)
353
+ # Pass arguments to `create_instance` via keyword arguments. Note that at
354
+ # least one keyword argument is required. To specify no parameters, or to keep all
355
+ # the default parameter values, pass an empty Hash as a request object (see above).
356
+ #
357
+ # @param parent [::String]
358
+ # Required. The resource name of the instance location using the form:
359
+ # `projects/{project_id}/locations/{location_id}`
360
+ # where `location_id` refers to a GCP region
361
+ # @param instance_id [::String]
362
+ # Required. The logical name of the Memcached instance in the user
363
+ # project with the following restrictions:
364
+ #
365
+ # * Must contain only lowercase letters, numbers, and hyphens.
366
+ # * Must start with a letter.
367
+ # * Must be between 1-40 characters.
368
+ # * Must end with a number or a letter.
369
+ # * Must be unique within the user project / location.
370
+ #
371
+ # If any of the above are not met, the API raises an invalid argument error.
372
+ # @param instance [::Google::Cloud::Memcache::V1::Instance, ::Hash]
373
+ # Required. A Memcached Instance
374
+ # @yield [result, operation] Access the result along with the TransportOperation object
375
+ # @yieldparam result [::Gapic::Operation]
376
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
377
+ #
378
+ # @return [::Gapic::Operation]
379
+ #
380
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
381
+ def create_instance request, options = nil
382
+ raise ::ArgumentError, "request must be provided" if request.nil?
383
+
384
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Memcache::V1::CreateInstanceRequest
385
+
386
+ # Converts hash and nil to an options object
387
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
388
+
389
+ # Customize the options with defaults
390
+ call_metadata = @config.rpcs.create_instance.metadata.to_h
391
+
392
+ # Set x-goog-api-client and x-goog-user-project headers
393
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
394
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
395
+ gapic_version: ::Google::Cloud::Memcache::V1::VERSION,
396
+ transports_version_send: [:rest]
397
+
398
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
399
+
400
+ options.apply_defaults timeout: @config.rpcs.create_instance.timeout,
401
+ metadata: call_metadata,
402
+ retry_policy: @config.rpcs.create_instance.retry_policy
403
+
404
+ options.apply_defaults timeout: @config.timeout,
405
+ metadata: @config.metadata,
406
+ retry_policy: @config.retry_policy
407
+
408
+ @cloud_memcache_stub.create_instance request, options do |result, operation|
409
+ result = ::Gapic::Operation.new result, @operations_client, options: options
410
+ yield result, operation if block_given?
411
+ return result
412
+ end
413
+ rescue ::Gapic::Rest::Error => e
414
+ raise ::Google::Cloud::Error.from_error(e)
415
+ end
416
+
417
+ ##
418
+ # Updates an existing Instance in a given project and location.
419
+ #
420
+ # @overload update_instance(request, options = nil)
421
+ # Pass arguments to `update_instance` via a request object, either of type
422
+ # {::Google::Cloud::Memcache::V1::UpdateInstanceRequest} or an equivalent Hash.
423
+ #
424
+ # @param request [::Google::Cloud::Memcache::V1::UpdateInstanceRequest, ::Hash]
425
+ # A request object representing the call parameters. Required. To specify no
426
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
427
+ # @param options [::Gapic::CallOptions, ::Hash]
428
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
429
+ #
430
+ # @overload update_instance(update_mask: nil, instance: nil)
431
+ # Pass arguments to `update_instance` via keyword arguments. Note that at
432
+ # least one keyword argument is required. To specify no parameters, or to keep all
433
+ # the default parameter values, pass an empty Hash as a request object (see above).
434
+ #
435
+ # @param update_mask [::Google::Protobuf::FieldMask, ::Hash]
436
+ # Required. Mask of fields to update.
437
+ #
438
+ # * `displayName`
439
+ # @param instance [::Google::Cloud::Memcache::V1::Instance, ::Hash]
440
+ # Required. A Memcached Instance.
441
+ # Only fields specified in update_mask are updated.
442
+ # @yield [result, operation] Access the result along with the TransportOperation object
443
+ # @yieldparam result [::Gapic::Operation]
444
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
445
+ #
446
+ # @return [::Gapic::Operation]
447
+ #
448
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
449
+ def update_instance request, options = nil
450
+ raise ::ArgumentError, "request must be provided" if request.nil?
451
+
452
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Memcache::V1::UpdateInstanceRequest
453
+
454
+ # Converts hash and nil to an options object
455
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
456
+
457
+ # Customize the options with defaults
458
+ call_metadata = @config.rpcs.update_instance.metadata.to_h
459
+
460
+ # Set x-goog-api-client and x-goog-user-project headers
461
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
462
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
463
+ gapic_version: ::Google::Cloud::Memcache::V1::VERSION,
464
+ transports_version_send: [:rest]
465
+
466
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
467
+
468
+ options.apply_defaults timeout: @config.rpcs.update_instance.timeout,
469
+ metadata: call_metadata,
470
+ retry_policy: @config.rpcs.update_instance.retry_policy
471
+
472
+ options.apply_defaults timeout: @config.timeout,
473
+ metadata: @config.metadata,
474
+ retry_policy: @config.retry_policy
475
+
476
+ @cloud_memcache_stub.update_instance request, options do |result, operation|
477
+ result = ::Gapic::Operation.new result, @operations_client, options: options
478
+ yield result, operation if block_given?
479
+ return result
480
+ end
481
+ rescue ::Gapic::Rest::Error => e
482
+ raise ::Google::Cloud::Error.from_error(e)
483
+ end
484
+
485
+ ##
486
+ # Updates the defined Memcached parameters for an existing instance.
487
+ # This method only stages the parameters, it must be followed by
488
+ # `ApplyParameters` to apply the parameters to nodes of the Memcached
489
+ # instance.
490
+ #
491
+ # @overload update_parameters(request, options = nil)
492
+ # Pass arguments to `update_parameters` via a request object, either of type
493
+ # {::Google::Cloud::Memcache::V1::UpdateParametersRequest} or an equivalent Hash.
494
+ #
495
+ # @param request [::Google::Cloud::Memcache::V1::UpdateParametersRequest, ::Hash]
496
+ # A request object representing the call parameters. Required. To specify no
497
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
498
+ # @param options [::Gapic::CallOptions, ::Hash]
499
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
500
+ #
501
+ # @overload update_parameters(name: nil, update_mask: nil, parameters: nil)
502
+ # Pass arguments to `update_parameters` via keyword arguments. Note that at
503
+ # least one keyword argument is required. To specify no parameters, or to keep all
504
+ # the default parameter values, pass an empty Hash as a request object (see above).
505
+ #
506
+ # @param name [::String]
507
+ # Required. Resource name of the Memcached instance for which the parameters should be
508
+ # updated.
509
+ # @param update_mask [::Google::Protobuf::FieldMask, ::Hash]
510
+ # Required. Mask of fields to update.
511
+ # @param parameters [::Google::Cloud::Memcache::V1::MemcacheParameters, ::Hash]
512
+ # The parameters to apply to the instance.
513
+ # @yield [result, operation] Access the result along with the TransportOperation object
514
+ # @yieldparam result [::Gapic::Operation]
515
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
516
+ #
517
+ # @return [::Gapic::Operation]
518
+ #
519
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
520
+ def update_parameters request, options = nil
521
+ raise ::ArgumentError, "request must be provided" if request.nil?
522
+
523
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Memcache::V1::UpdateParametersRequest
524
+
525
+ # Converts hash and nil to an options object
526
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
527
+
528
+ # Customize the options with defaults
529
+ call_metadata = @config.rpcs.update_parameters.metadata.to_h
530
+
531
+ # Set x-goog-api-client and x-goog-user-project headers
532
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
533
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
534
+ gapic_version: ::Google::Cloud::Memcache::V1::VERSION,
535
+ transports_version_send: [:rest]
536
+
537
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
538
+
539
+ options.apply_defaults timeout: @config.rpcs.update_parameters.timeout,
540
+ metadata: call_metadata,
541
+ retry_policy: @config.rpcs.update_parameters.retry_policy
542
+
543
+ options.apply_defaults timeout: @config.timeout,
544
+ metadata: @config.metadata,
545
+ retry_policy: @config.retry_policy
546
+
547
+ @cloud_memcache_stub.update_parameters request, options do |result, operation|
548
+ result = ::Gapic::Operation.new result, @operations_client, options: options
549
+ yield result, operation if block_given?
550
+ return result
551
+ end
552
+ rescue ::Gapic::Rest::Error => e
553
+ raise ::Google::Cloud::Error.from_error(e)
554
+ end
555
+
556
+ ##
557
+ # Deletes a single Instance.
558
+ #
559
+ # @overload delete_instance(request, options = nil)
560
+ # Pass arguments to `delete_instance` via a request object, either of type
561
+ # {::Google::Cloud::Memcache::V1::DeleteInstanceRequest} or an equivalent Hash.
562
+ #
563
+ # @param request [::Google::Cloud::Memcache::V1::DeleteInstanceRequest, ::Hash]
564
+ # A request object representing the call parameters. Required. To specify no
565
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
566
+ # @param options [::Gapic::CallOptions, ::Hash]
567
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
568
+ #
569
+ # @overload delete_instance(name: nil)
570
+ # Pass arguments to `delete_instance` via keyword arguments. Note that at
571
+ # least one keyword argument is required. To specify no parameters, or to keep all
572
+ # the default parameter values, pass an empty Hash as a request object (see above).
573
+ #
574
+ # @param name [::String]
575
+ # Required. Memcached instance resource name in the format:
576
+ # `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
577
+ # where `location_id` refers to a GCP region
578
+ # @yield [result, operation] Access the result along with the TransportOperation object
579
+ # @yieldparam result [::Gapic::Operation]
580
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
581
+ #
582
+ # @return [::Gapic::Operation]
583
+ #
584
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
585
+ def delete_instance request, options = nil
586
+ raise ::ArgumentError, "request must be provided" if request.nil?
587
+
588
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Memcache::V1::DeleteInstanceRequest
589
+
590
+ # Converts hash and nil to an options object
591
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
592
+
593
+ # Customize the options with defaults
594
+ call_metadata = @config.rpcs.delete_instance.metadata.to_h
595
+
596
+ # Set x-goog-api-client and x-goog-user-project headers
597
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
598
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
599
+ gapic_version: ::Google::Cloud::Memcache::V1::VERSION,
600
+ transports_version_send: [:rest]
601
+
602
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
603
+
604
+ options.apply_defaults timeout: @config.rpcs.delete_instance.timeout,
605
+ metadata: call_metadata,
606
+ retry_policy: @config.rpcs.delete_instance.retry_policy
607
+
608
+ options.apply_defaults timeout: @config.timeout,
609
+ metadata: @config.metadata,
610
+ retry_policy: @config.retry_policy
611
+
612
+ @cloud_memcache_stub.delete_instance request, options do |result, operation|
613
+ result = ::Gapic::Operation.new result, @operations_client, options: options
614
+ yield result, operation if block_given?
615
+ return result
616
+ end
617
+ rescue ::Gapic::Rest::Error => e
618
+ raise ::Google::Cloud::Error.from_error(e)
619
+ end
620
+
621
+ ##
622
+ # `ApplyParameters` restarts the set of specified nodes in order to update
623
+ # them to the current set of parameters for the Memcached Instance.
624
+ #
625
+ # @overload apply_parameters(request, options = nil)
626
+ # Pass arguments to `apply_parameters` via a request object, either of type
627
+ # {::Google::Cloud::Memcache::V1::ApplyParametersRequest} or an equivalent Hash.
628
+ #
629
+ # @param request [::Google::Cloud::Memcache::V1::ApplyParametersRequest, ::Hash]
630
+ # A request object representing the call parameters. Required. To specify no
631
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
632
+ # @param options [::Gapic::CallOptions, ::Hash]
633
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
634
+ #
635
+ # @overload apply_parameters(name: nil, node_ids: nil, apply_all: nil)
636
+ # Pass arguments to `apply_parameters` via keyword arguments. Note that at
637
+ # least one keyword argument is required. To specify no parameters, or to keep all
638
+ # the default parameter values, pass an empty Hash as a request object (see above).
639
+ #
640
+ # @param name [::String]
641
+ # Required. Resource name of the Memcached instance for which parameter group updates
642
+ # should be applied.
643
+ # @param node_ids [::Array<::String>]
644
+ # Nodes to which the instance-level parameter group is applied.
645
+ # @param apply_all [::Boolean]
646
+ # Whether to apply instance-level parameter group to all nodes. If set to
647
+ # true, users are restricted from specifying individual nodes, and
648
+ # `ApplyParameters` updates all nodes within the instance.
649
+ # @yield [result, operation] Access the result along with the TransportOperation object
650
+ # @yieldparam result [::Gapic::Operation]
651
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
652
+ #
653
+ # @return [::Gapic::Operation]
654
+ #
655
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
656
+ def apply_parameters request, options = nil
657
+ raise ::ArgumentError, "request must be provided" if request.nil?
658
+
659
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Memcache::V1::ApplyParametersRequest
660
+
661
+ # Converts hash and nil to an options object
662
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
663
+
664
+ # Customize the options with defaults
665
+ call_metadata = @config.rpcs.apply_parameters.metadata.to_h
666
+
667
+ # Set x-goog-api-client and x-goog-user-project headers
668
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
669
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
670
+ gapic_version: ::Google::Cloud::Memcache::V1::VERSION,
671
+ transports_version_send: [:rest]
672
+
673
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
674
+
675
+ options.apply_defaults timeout: @config.rpcs.apply_parameters.timeout,
676
+ metadata: call_metadata,
677
+ retry_policy: @config.rpcs.apply_parameters.retry_policy
678
+
679
+ options.apply_defaults timeout: @config.timeout,
680
+ metadata: @config.metadata,
681
+ retry_policy: @config.retry_policy
682
+
683
+ @cloud_memcache_stub.apply_parameters request, options do |result, operation|
684
+ result = ::Gapic::Operation.new result, @operations_client, options: options
685
+ yield result, operation if block_given?
686
+ return result
687
+ end
688
+ rescue ::Gapic::Rest::Error => e
689
+ raise ::Google::Cloud::Error.from_error(e)
690
+ end
691
+
692
+ ##
693
+ # Reschedules upcoming maintenance event.
694
+ #
695
+ # @overload reschedule_maintenance(request, options = nil)
696
+ # Pass arguments to `reschedule_maintenance` via a request object, either of type
697
+ # {::Google::Cloud::Memcache::V1::RescheduleMaintenanceRequest} or an equivalent Hash.
698
+ #
699
+ # @param request [::Google::Cloud::Memcache::V1::RescheduleMaintenanceRequest, ::Hash]
700
+ # A request object representing the call parameters. Required. To specify no
701
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
702
+ # @param options [::Gapic::CallOptions, ::Hash]
703
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
704
+ #
705
+ # @overload reschedule_maintenance(instance: nil, reschedule_type: nil, schedule_time: nil)
706
+ # Pass arguments to `reschedule_maintenance` via keyword arguments. Note that at
707
+ # least one keyword argument is required. To specify no parameters, or to keep all
708
+ # the default parameter values, pass an empty Hash as a request object (see above).
709
+ #
710
+ # @param instance [::String]
711
+ # Required. Memcache instance resource name using the form:
712
+ # `projects/{project_id}/locations/{location_id}/instances/{instance_id}`
713
+ # where `location_id` refers to a GCP region.
714
+ # @param reschedule_type [::Google::Cloud::Memcache::V1::RescheduleMaintenanceRequest::RescheduleType]
715
+ # Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as well.
716
+ # @param schedule_time [::Google::Protobuf::Timestamp, ::Hash]
717
+ # Timestamp when the maintenance shall be rescheduled to if
718
+ # reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for
719
+ # example `2012-11-15T16:19:00.094Z`.
720
+ # @yield [result, operation] Access the result along with the TransportOperation object
721
+ # @yieldparam result [::Gapic::Operation]
722
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
723
+ #
724
+ # @return [::Gapic::Operation]
725
+ #
726
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
727
+ def reschedule_maintenance request, options = nil
728
+ raise ::ArgumentError, "request must be provided" if request.nil?
729
+
730
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Memcache::V1::RescheduleMaintenanceRequest
731
+
732
+ # Converts hash and nil to an options object
733
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
734
+
735
+ # Customize the options with defaults
736
+ call_metadata = @config.rpcs.reschedule_maintenance.metadata.to_h
737
+
738
+ # Set x-goog-api-client and x-goog-user-project headers
739
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
740
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
741
+ gapic_version: ::Google::Cloud::Memcache::V1::VERSION,
742
+ transports_version_send: [:rest]
743
+
744
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
745
+
746
+ options.apply_defaults timeout: @config.rpcs.reschedule_maintenance.timeout,
747
+ metadata: call_metadata,
748
+ retry_policy: @config.rpcs.reschedule_maintenance.retry_policy
749
+
750
+ options.apply_defaults timeout: @config.timeout,
751
+ metadata: @config.metadata,
752
+ retry_policy: @config.retry_policy
753
+
754
+ @cloud_memcache_stub.reschedule_maintenance request, options do |result, operation|
755
+ result = ::Gapic::Operation.new result, @operations_client, options: options
756
+ yield result, operation if block_given?
757
+ return result
758
+ end
759
+ rescue ::Gapic::Rest::Error => e
760
+ raise ::Google::Cloud::Error.from_error(e)
761
+ end
762
+
763
+ ##
764
+ # Configuration class for the CloudMemcache REST API.
765
+ #
766
+ # This class represents the configuration for CloudMemcache REST,
767
+ # providing control over timeouts, retry behavior, logging, transport
768
+ # parameters, and other low-level controls. Certain parameters can also be
769
+ # applied individually to specific RPCs. See
770
+ # {::Google::Cloud::Memcache::V1::CloudMemcache::Rest::Client::Configuration::Rpcs}
771
+ # for a list of RPCs that can be configured independently.
772
+ #
773
+ # Configuration can be applied globally to all clients, or to a single client
774
+ # on construction.
775
+ #
776
+ # @example
777
+ #
778
+ # # Modify the global config, setting the timeout for
779
+ # # list_instances to 20 seconds,
780
+ # # and all remaining timeouts to 10 seconds.
781
+ # ::Google::Cloud::Memcache::V1::CloudMemcache::Rest::Client.configure do |config|
782
+ # config.timeout = 10.0
783
+ # config.rpcs.list_instances.timeout = 20.0
784
+ # end
785
+ #
786
+ # # Apply the above configuration only to a new client.
787
+ # client = ::Google::Cloud::Memcache::V1::CloudMemcache::Rest::Client.new do |config|
788
+ # config.timeout = 10.0
789
+ # config.rpcs.list_instances.timeout = 20.0
790
+ # end
791
+ #
792
+ # @!attribute [rw] endpoint
793
+ # The hostname or hostname:port of the service endpoint.
794
+ # Defaults to `"memcache.googleapis.com"`.
795
+ # @return [::String]
796
+ # @!attribute [rw] credentials
797
+ # Credentials to send with calls. You may provide any of the following types:
798
+ # * (`String`) The path to a service account key file in JSON format
799
+ # * (`Hash`) A service account key as a Hash
800
+ # * (`Google::Auth::Credentials`) A googleauth credentials object
801
+ # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
802
+ # * (`Signet::OAuth2::Client`) A signet oauth2 client object
803
+ # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
804
+ # * (`nil`) indicating no credentials
805
+ # @return [::Object]
806
+ # @!attribute [rw] scope
807
+ # The OAuth scopes
808
+ # @return [::Array<::String>]
809
+ # @!attribute [rw] lib_name
810
+ # The library name as recorded in instrumentation and logging
811
+ # @return [::String]
812
+ # @!attribute [rw] lib_version
813
+ # The library version as recorded in instrumentation and logging
814
+ # @return [::String]
815
+ # @!attribute [rw] timeout
816
+ # The call timeout in seconds.
817
+ # @return [::Numeric]
818
+ # @!attribute [rw] metadata
819
+ # Additional headers to be sent with the call.
820
+ # @return [::Hash{::Symbol=>::String}]
821
+ # @!attribute [rw] retry_policy
822
+ # The retry policy. The value is a hash with the following keys:
823
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
824
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
825
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
826
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
827
+ # trigger a retry.
828
+ # @return [::Hash]
829
+ # @!attribute [rw] quota_project
830
+ # A separate project against which to charge quota.
831
+ # @return [::String]
832
+ #
833
+ class Configuration
834
+ extend ::Gapic::Config
835
+
836
+ config_attr :endpoint, "memcache.googleapis.com", ::String
837
+ config_attr :credentials, nil do |value|
838
+ allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
839
+ allowed.any? { |klass| klass === value }
840
+ end
841
+ config_attr :scope, nil, ::String, ::Array, nil
842
+ config_attr :lib_name, nil, ::String, nil
843
+ config_attr :lib_version, nil, ::String, nil
844
+ config_attr :timeout, nil, ::Numeric, nil
845
+ config_attr :metadata, nil, ::Hash, nil
846
+ config_attr :retry_policy, nil, ::Hash, ::Proc, nil
847
+ config_attr :quota_project, nil, ::String, nil
848
+
849
+ # @private
850
+ # Overrides for http bindings for the RPCs of this service
851
+ # are only used when this service is used as mixin, and only
852
+ # by the host service.
853
+ # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}]
854
+ config_attr :bindings_override, {}, ::Hash, nil
855
+
856
+ # @private
857
+ def initialize parent_config = nil
858
+ @parent_config = parent_config unless parent_config.nil?
859
+
860
+ yield self if block_given?
861
+ end
862
+
863
+ ##
864
+ # Configurations for individual RPCs
865
+ # @return [Rpcs]
866
+ #
867
+ def rpcs
868
+ @rpcs ||= begin
869
+ parent_rpcs = nil
870
+ parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs)
871
+ Rpcs.new parent_rpcs
872
+ end
873
+ end
874
+
875
+ ##
876
+ # Configuration RPC class for the CloudMemcache API.
877
+ #
878
+ # Includes fields providing the configuration for each RPC in this service.
879
+ # Each configuration object is of type `Gapic::Config::Method` and includes
880
+ # the following configuration fields:
881
+ #
882
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
883
+ # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers
884
+ # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
885
+ # include the following keys:
886
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
887
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
888
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
889
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
890
+ # trigger a retry.
891
+ #
892
+ class Rpcs
893
+ ##
894
+ # RPC-specific configuration for `list_instances`
895
+ # @return [::Gapic::Config::Method]
896
+ #
897
+ attr_reader :list_instances
898
+ ##
899
+ # RPC-specific configuration for `get_instance`
900
+ # @return [::Gapic::Config::Method]
901
+ #
902
+ attr_reader :get_instance
903
+ ##
904
+ # RPC-specific configuration for `create_instance`
905
+ # @return [::Gapic::Config::Method]
906
+ #
907
+ attr_reader :create_instance
908
+ ##
909
+ # RPC-specific configuration for `update_instance`
910
+ # @return [::Gapic::Config::Method]
911
+ #
912
+ attr_reader :update_instance
913
+ ##
914
+ # RPC-specific configuration for `update_parameters`
915
+ # @return [::Gapic::Config::Method]
916
+ #
917
+ attr_reader :update_parameters
918
+ ##
919
+ # RPC-specific configuration for `delete_instance`
920
+ # @return [::Gapic::Config::Method]
921
+ #
922
+ attr_reader :delete_instance
923
+ ##
924
+ # RPC-specific configuration for `apply_parameters`
925
+ # @return [::Gapic::Config::Method]
926
+ #
927
+ attr_reader :apply_parameters
928
+ ##
929
+ # RPC-specific configuration for `reschedule_maintenance`
930
+ # @return [::Gapic::Config::Method]
931
+ #
932
+ attr_reader :reschedule_maintenance
933
+
934
+ # @private
935
+ def initialize parent_rpcs = nil
936
+ list_instances_config = parent_rpcs.list_instances if parent_rpcs.respond_to? :list_instances
937
+ @list_instances = ::Gapic::Config::Method.new list_instances_config
938
+ get_instance_config = parent_rpcs.get_instance if parent_rpcs.respond_to? :get_instance
939
+ @get_instance = ::Gapic::Config::Method.new get_instance_config
940
+ create_instance_config = parent_rpcs.create_instance if parent_rpcs.respond_to? :create_instance
941
+ @create_instance = ::Gapic::Config::Method.new create_instance_config
942
+ update_instance_config = parent_rpcs.update_instance if parent_rpcs.respond_to? :update_instance
943
+ @update_instance = ::Gapic::Config::Method.new update_instance_config
944
+ update_parameters_config = parent_rpcs.update_parameters if parent_rpcs.respond_to? :update_parameters
945
+ @update_parameters = ::Gapic::Config::Method.new update_parameters_config
946
+ delete_instance_config = parent_rpcs.delete_instance if parent_rpcs.respond_to? :delete_instance
947
+ @delete_instance = ::Gapic::Config::Method.new delete_instance_config
948
+ apply_parameters_config = parent_rpcs.apply_parameters if parent_rpcs.respond_to? :apply_parameters
949
+ @apply_parameters = ::Gapic::Config::Method.new apply_parameters_config
950
+ reschedule_maintenance_config = parent_rpcs.reschedule_maintenance if parent_rpcs.respond_to? :reschedule_maintenance
951
+ @reschedule_maintenance = ::Gapic::Config::Method.new reschedule_maintenance_config
952
+
953
+ yield self if block_given?
954
+ end
955
+ end
956
+ end
957
+ end
958
+ end
959
+ end
960
+ end
961
+ end
962
+ end
963
+ end